資料介紹
描述
所以,我一直渴望在家里做一個小小的 IoT 項目。我做的最后一件事是一個小小的“信息輻射器”告訴我們公共汽車離開之前還有多長時間(這里)。現在我想做一些有趣和有用的事情。
所以在我們家的地下室里,我們有一個地熱供暖泵。當水變暖并在泵內膨脹時,它必須處理它。我們地窖的那部分沒有地漏,所以它把水排到一個罐子里。當它滿了我會清空它然后放回去。
為了讓我不必定期檢查它是否已滿,我整理了以下解決方案。當水位達到某個閾值時,我應該會收到一條短信,告訴我時間到了。
使用的零件
所需零件
1 Particle Photon 微控制器- 一個 arduinoish 微控制器,芯片上有 wifi 和周圍一些簡潔的云服務,如果你愿意,你可以使用,我認為他們讓我的解決方案有點更容易,所以我使用了他們的云。我家里有一個。
1用于 arduino 的水傳感器- 根據水位返回不同電壓的便宜簡單的東西。
1 個particle.io帳戶 - 用于設置 webhooks
Particle CLI 工具?——用它來注冊 webhook 并從設備獲取數據。所以你可能沒有它也能繼續,但我將在本文中使用它。
帶 4 根導線的模塊電纜- 你可以使用任何電纜,我從早期的項目中得到了這種電纜。
焊接裝置 - 您可能可以在不使用夾具或實驗室跨接電纜的情況下使其工作。
不需要但使用過的零件
實驗板 - 您可以使用面包板或將電線焊接到引腳和其他電線上。
PBC 連接器 - 同樣,您可以將其焊接到引腳上。
收縮管 - 我曾經固定一些業余焊接。
拉鏈領帶 - 只是為了把一些東西放在一起
構建硬件
我實際上使用 Arduino Uno、面包板和一些跨接電纜證明了這個概念。但是當我開始制作“真正的東西”時,我開始將電纜的連接器焊接到水傳感器上。跟蹤顏色!我用紅色表示電源,黑色表示接地,綠色表示信號(信號根據水位提供不同的電壓)。然后我穿上一些收縮塑料來固定焊接。

我決定在原型電路板上放置一個 PBC 連接器,這樣我就可以簡單地更改用于水位傳感器的電線的長度或類型。

所以要澄清布局:

這是我第一次看到粗略的原型。

我讓它看起來更精致了一點。


軟件
所以這個解決方案中有幾個部分。由于 particle.io 有云服務與他們的設備一起工作,并且 particle.io 上提供了SDK 。我選擇使用它而不是直接從 Particle Photon 到 Twilio 進行 HTTP 調用,以更快地完成它。下面是解決方案的概述。

設置 Twilio
首先,您需要在https://www.twilio.com/上設置一個 twilio 帳戶。登錄后,您需要存入一些錢才能使用 Twilio。然后你需要獲得一個啟用短信的電話號碼。

您需要您的 twilio number 、accounted sid和auth token 。

創建 Webhook
現在,當我們要在我們的 Particle.io 帳戶中創建一個 webhook 時,我們將使用 Twilio 信息。粒子 webhook 是一種云服務,充當粒子與世界其他地方之間的橋梁。Particle SDK 為這些提供了很好的實用程序抽象。所以你在你的代碼中所要做的(我們稍后會看到)就是調用Particle.publish(“webhook-name”, “message”, 60, PRIVATE); 這有點整潔。
Webhook 文件非常簡單。
{
“eventName”:
“url”: “https://api.twilio.com/2010-04-01/Accounts//Messages",
“requestType”: “POST”,
“auth”: {
“username”: “”,
“password”: “”
},
“form”: {
“From” : “number>”,
“To” : “<to number>”,
“Body” : “{{SPARK_EVENT_VALUE}}”
},
“mydevices”: true
}
像這樣創建一個名為 twilio-webhook.json 的文件。
$ particle webhook create twilio-hook.json
Using settings from the file twilio-hook.json
Sending webhook request
{
uri: ‘/v1/webhooks’,
method: ‘POST’,
json: {
event: ‘twilio’,
url: ‘https://api.twilio.com/2010-04-01/Accounts//Messages',
deviceid: undefined,
requestType: ‘POST’,
mydevices: true,
eventName: ‘twilio’,
auth: {
username: ‘’,
password: ‘’
},
form: {
From: ‘’,
To: ‘’,
Body: ‘{{SPARK_EVENT_VALUE}}’
}
},
headers: {
Authorization: ‘Bearer 7d90b34725afede88ce0b6ec824712121212121212’
}
}
Successfully created webhook with ID 573069bd3f3354c212121
現在我們已經設置好了一切,需要一些代碼來讓它運行 :)。所有代碼都可以在https://github.com/nippe/waterlevel-notifier-particleio/tree/blogpost獲得。
設備上的代碼
首先,我聲明了一些變量和一個方法。
int sendSms(String command);
const int DELAY_IN_SECONDS = 10*60; // 10 minutes
bool isMessageSent = false;
int waterThreshold = 2880;
int waterLevelPin = A1;
int waterLevel = 0;
DELAY_IN_SECONDS是檢查水位的頻率。sendSms是調用 webhook 的方法,waterLevelPin定義了我將水位傳感器連接到哪個模擬端口以及水位的一些值和跟蹤短信狀態。接下來,設置:
void setup() {
Particle.variable(“waterLevel”, waterLevel);
Particle.function(“sendSms”, sendSms);
pinMode(waterLevelPin, INPUT);
delay(1000);
}
使用Particle.variable和Particle.function向 Particle 云服務公開變量和方法,用于測試目的。使用pinMode(..)將水位引腳的模式設置為輸入。
void loop() {
getWaterLevel();
checkWaterLevel();
delay(DELAY_IN_SECONDS * 1000);
}
int getWaterLevel() {
waterLevel = analogRead(waterLevelPin);
return waterLevel;
}
int sendSms(String command) {
if(command.length() > 0){
Particle.publish(“twilio”, command, 60, PRIVATE);
}
return 0;
}
void checkWaterLevel() {
int currentLevel = analogRead(waterLevelPin);
if(currentLevel > waterThreshold) {
if(!isMessageSent){
char msg[255];
snprintf(msg, sizeof(msg), “Dags att t?mma vatten i k?llarn! Niv?: %d”, waterLevel);
sendSms(msg);
isMessageSent = true;
}
}
if(isMessageSent && (currentLevel < waterThreshold)) {
isMessageSent = false;
sendSms(“Du har t?mt ser jag, lysande polarn!”);
}
這次的代碼塊更大。getWaterLevel() 獲取值并將其放入全局變量中,這樣我就可以通過粒子 cli 對其進行監控。
checkWaterLevel() 進行實際檢查并在當前值高于閾值且未發送消息時發送 SMS。
所以沒有火箭科學,而是一個有趣的小項目。
然后我最終對它進行了一些調整,添加了一些 LED 和其他東西只是為了好玩。

?
- 物聯網自動喂狗器開源分享
- 物聯網濕度傳感器開源
- Lytograph物聯網顯示器開源
- 物聯網衣柜控制器開源分享
- 移動水位跟蹤器開源分享
- 植物水分通知器開源分享
- 物聯網家庭安全模型開源分享
- 物聯網電腦控制器開源分享
- 水位指示器開源分享
- DIY水位傳感器開源
- 水位指示器開源項目
- 自動水位控制器開源分享
- 如何使用物聯網操作系統Zephyr實現“連續集成”開源軟件的詳細說明
- 10大物聯網開源軟件的介紹 7次下載
- 基于家庭照明與物聯網連接的解決方案 4次下載
- 物聯網智能寵物管理系統 2427次閱讀
- 水位控制器的工作原理 水位控制器電路圖分享 1.7w次閱讀
- 水位傳感器怎么調水位高低 3659次閱讀
- 基于物聯網的智慧家庭健康管理系統 4587次閱讀
- 缺水報警如何選擇水位傳感器 4427次閱讀
- 水位開關工作原理_水位開關如何判斷好壞 1.6w次閱讀
- HU16磁敏傳感器構成的水位控制電路 3247次閱讀
- dfrobot光子物聯網開發板簡介 2232次閱讀
- 水位傳感器原理_水位傳感器在哪里 1.5w次閱讀
- 水位傳感器壞了的表現_判斷水位傳感器好壞方法 10.7w次閱讀
- 物聯網十大經典開源操作系統 1w次閱讀
- 如何使用物聯網水位傳感器監測水位? 1w次閱讀
- 交流檢測水位報警器電路 2862次閱讀
- 電子式水位報警器電路 3416次閱讀
- 水位定時器電路圖 3175次閱讀
下載排行
本周
- 1蘇泊爾電磁爐線路的電路原理圖資料合集
- 2.02 MB | 286次下載 | 5 積分
- 2長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
- 0.46 MB | 87次下載 | 5 積分
- 3AO4803A雙P通道增強型場效應晶體管的數據手冊
- 0.11 MB | 28次下載 | 2 積分
- 4長虹液晶彩電LS29機芯的技術資料說明
- 3.42 MB | 16次下載 | 2 積分
- 5AI智能眼鏡產業鏈分析
- 4.43 MB | 14次下載 | 免費
- 6TP4055 500mA線性鋰離子電池充電器中文手冊
- 0.75 MB | 9次下載 | 免費
- 7TP4054 400mA線性鋰離子電池充電器中文手冊
- 0.70 MB | 2次下載 | 免費
- 8TP4057X 500mA線性鋰離子電池充電器中文手冊
- 0.74 MB | 2次下載 | 免費
本月
- 1人形機器人電機驅動和傳感報告
- 4.27 MB | 475次下載 | 免費
- 2蘇泊爾電磁爐線路的電路原理圖資料合集
- 2.02 MB | 286次下載 | 5 積分
- 3長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
- 0.46 MB | 87次下載 | 5 積分
- 4U盤一鍵制作
- 23.84 MB | 41次下載 | 免費
- 5AO4803A雙P通道增強型場效應晶體管的數據手冊
- 0.11 MB | 28次下載 | 2 積分
- 6Altium Designer元件庫
- 17.11 MB | 26次下載 | 免費
- 7長虹液晶彩電LS29機芯的技術資料說明
- 3.42 MB | 16次下載 | 2 積分
- 8AI智能眼鏡產業鏈分析
- 4.43 MB | 14次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191382次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81586次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論