電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>水位通知器家庭物聯(lián)網(wǎng)開源案例

水位通知器家庭物聯(lián)網(wǎng)開源案例

2022-12-22 | zip | 0.26 MB | 次下載 | 免費

資料介紹

描述

所以,我一直渴望在家里做一個小小的 IoT 項目。我做的最后一件事是一個小小的“信息輻射器”告訴我們公共汽車離開之前還有多長時間(這里)。現(xiàn)在我想做一些有趣和有用的事情。

所以在我們家的地下室里,我們有一個地?zé)峁┡谩?/font>當(dāng)水變暖并在泵內(nèi)膨脹時,它必須處理它。我們地窖的那部分沒有地漏,所以它把水排到一個罐子里。當(dāng)它滿了我會清空它然后放回去。

為了讓我不必定期檢查它是否已滿,我整理了以下解決方案。當(dāng)水位達(dá)到某個閾值時,我應(yīng)該會收到一條短信,告訴我時間到了。

使用的零件

所需零件

1 Particle Photon 微控制器- 一個 arduinoish 微控制器,芯片上有 wifi 和周圍一些簡潔的云服務(wù),如果你愿意,你可以使用,我認(rèn)為他們讓我的解決方案有點更容易,所以我使用了他們的云。我家里有一個。

1用于 arduino 的水傳感器- 根據(jù)水位返回不同電壓的便宜簡單的東西。

1 個particle.io帳戶 - 用于設(shè)置 webhooks

Particle CLI 工具?——用它來注冊 webhook 并從設(shè)備獲取數(shù)據(jù)。所以你可能沒有它也能繼續(xù),但我將在本文中使用它。

帶 4 根導(dǎo)線的模塊電纜- 你可以使用任何電纜,我從早期的項目中得到了這種電纜。

焊接裝置 - 您可能可以在不使用夾具或?qū)嶒炇铱缃与娎|的情況下使其工作。

不需要但使用過的零件

實驗板 - 您可以使用面包板或?qū)㈦娋€焊接到引腳和其他電線上。

PBC 連接器 - 同樣,您可以將其焊接到引腳上。

收縮管 - 我曾經(jīng)固定一些業(yè)余焊接。

拉鏈領(lǐng)帶 - 只是為了把一些東西放在一起

構(gòu)建硬件

我實際上使用 Arduino Uno、面包板和一些跨接電纜證明了這個概念。但是當(dāng)我開始制作“真正的東西”時,我開始將電纜的連接器焊接到水傳感器上。跟蹤顏色!我用紅色表示電源,黑色表示接地,綠色表示信號(信號根據(jù)水位提供不同的電壓)。然后我穿上一些收縮塑料來固定焊接。

?
poYBAGOjtfGAF6mdAACfoEZT6GE73.jpeg
?

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

?
poYBAGOjtfSAeToKAAEGO2TNTvc68.jpeg
?

所以要澄清布局:

?
pYYBAGOjtfmAGh2JAADV5GRfGys70.jpeg
?

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

?
pYYBAGOjtfyAVKVJAAD_MOfMFWk272.png
?

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

?
poYBAGOjtgKAexjVAAGBl4FUqRk17.jpeg
?
?
pYYBAGOjthCAa6uGAAHSGqxIyLc41.jpeg
?

軟件

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

?
poYBAGOjthKAKdJKAABOajc2HqY163.png
?

設(shè)置 Twilio

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

?
poYBAGOjtheAXJXJAABPuUDLWzg894.png
?

您需要您的 twilio number 、accounted sidauth token 。

?
pYYBAGOjthmAUHMbAAAsgAg0hg0903.png
?

創(chuàng)建 Webhook

現(xiàn)在,當(dāng)我們要在我們的 Particle.io 帳戶中創(chuàng)建一個 webhook 時,我們將使用 Twilio 信息。粒子 webhook 是一種云服務(wù),充當(dāng)粒子與世界其他地方之間的橋梁。Particle SDK 為這些提供了很好的實用程序抽象。所以你在你的代碼中所要做的(我們稍后會看到)就是調(diào)用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
}

像這樣創(chuàng)建一個名為 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

現(xiàn)在我們已經(jīng)設(shè)置好了一切,需要一些代碼來讓它運行 :)。所有代碼都可以在https://github.com/nippe/waterlevel-notifier-particleio/tree/blogpost獲得。

設(shè)備上的代碼

首先,我聲明了一些變量和一個方法。

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是調(diào)用 webhook 的方法,waterLevelPin定義了我將水位傳感器連接到哪個模擬端口以及水位的一些值和跟蹤短信狀態(tài)。接下來,設(shè)置:

void setup() { 
    Particle.variable(“waterLevel”, waterLevel); 
    Particle.function(“sendSms”, sendSms);
    pinMode(waterLevelPin, INPUT); 
    delay(1000);
}

使用Particle.variableParticle.function向 Particle 云服務(wù)公開變量和方法,用于測試目的。使用pinMode(..)將水位引腳的模式設(shè)置為輸入。

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 對其進(jìn)行監(jiān)控。

checkWaterLevel() 進(jìn)行實際檢查并在當(dāng)前值高于閾值且未發(fā)送消息時發(fā)送 SMS。

所以沒有火箭科學(xué),而是一個有趣的小項目。

然后我最終對它進(jìn)行了一些調(diào)整,添加了一些 LED 和其他東西只是為了好玩。

?
pYYBAGOjthCAa6uGAAHSGqxIyLc41.jpeg
?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費