Satura rādītājs:

MQTT/Google mājas plūdu/ūdens WIFI sensors ar ESP-01: 7 soļi
MQTT/Google mājas plūdu/ūdens WIFI sensors ar ESP-01: 7 soļi

Video: MQTT/Google mājas plūdu/ūdens WIFI sensors ar ESP-01: 7 soļi

Video: MQTT/Google mājas plūdu/ūdens WIFI sensors ar ESP-01: 7 soļi
Video: Система мониторинга солнечных панелей Home Assistant 2024, Maijs
Anonim
MQTT/Google mājas plūdu/ūdens WIFI sensors ar ESP-01
MQTT/Google mājas plūdu/ūdens WIFI sensors ar ESP-01

Šajā pamācībā es jums parādīšu, kā ar minimālām izmaksām izveidot wifi plūdu/ūdens sensoru. Viss projekts man maksā mazāk par USD 8 par detaļām, kuras es iegādājos no ebay, un manām esošajām rezerves daļām.

Šajā projektā mēs izmantosim ESP-01, lai nodrošinātu Wifi un MQTT klientu, lai noteiktu ūdens klātbūtni, un pēc izvēles izmantosim tieši pievienotu skaļruni/skaņas signālu, lai nodrošinātu lokālu trauksmi.

Mans īpašais pieteikums projektam ir atklāt plūdus/ūdeni manā sūkņa urbumā, ja sūkņa atteice ir bojāta. Kad ūdens tiek atklāts ar diviem atvērtiem vadiem, tas nosūtīs ziņojumu MQTT brokerim. Pēc tam MQTT brokeris nodos ziņojumu NodeRED. Saņemot MQTT ziņojumu, NodeRED nosūtītu paziņojumu vairākām Google mājas ierīcēm, kā arī pēc izvēles nosūtītu ziņojumu uz mobilo tālruni/pārlūkprogrammu, izmantojot pushbullet

Protams, šis projekts darbosies tikai tad, ja mājas elektrība būs ieslēgta. Nākamajā pamācībā es integrēšu akumulatora rezerves ķēdi. Bet, ja barošanas avotu veidojat tāpat kā es, akumulatora dublēšanai varat vienkārši pievienot USB barošanas banku. Ja jums ir jaudas banka, kas ļauj vienlaikus uzlādēt un piegādāt strāvu, viss ir gatavs.

Es izmantoju RaspberryPi ZeroW, lai mitinātu Mosquitto MQTT serveri un NodeRED. Tas darbojas vairāk nekā gadu bez problēmām.

Atsauces: Raspberry Pi: https://www.switchdoc.com/2016/02/tutorial-installi… Instalējiet NodeRED Raspberry Pi:

1. darbība. Daļas, kas jums būs nepieciešamas

Daļas, kas jums būs nepieciešamas
Daļas, kas jums būs nepieciešamas
Daļas, kas jums būs nepieciešamas
Daļas, kas jums būs nepieciešamas
Daļas, kas jums būs nepieciešamas
Daļas, kas jums būs nepieciešamas

Detaļu saraksts:

(1) ESP-01

(2) 10K omu rezistors

(1) mazs signāla vispārējs NPN tranzistors (es izmantoju 2N3904)

(2) gari vadi

(1) 5V vispārējs barošanas avots (šai shēmai nepieciešama strāva mazāka par 300 mA)

(1) 3.3V regulatora modulis AMS1117

(1) Mikro-USB līdz DIP adaptera sieviešu savienotāja PCB pārveidotāja DIY komplekts

(1) USB-A līdz MicroUSB kabelis.

(1) 8 kontaktu IC ligzda-var izlaist, ja vēlaties lodēt ESP-01 tieši pie shēmas plates. Izgrieziet plastmasas tiltus, kas veido atstarpi starp rindām, un pēc tam pielīmējiet 2 rindas kopā, skatiet fotoattēlu.

(1) Neliels iežogojums projektam

Tālāk ir norādītas papildu detaļas, ja nepieciešama lokalizēta trauksme, izmantojot skaļruni/skaņas signālu

(1) Vispārējais PNP tranzistors, izvēlieties atbilstoši skaļruņa/skaņas signāla strāvas/jaudas prasībām. Manā gadījumā es izmantoju 2N2907, jo mans skaļrunis ir tikai 0,3 W (8 omi), tas nodrošinātu pietiekami daudz jaudas, lai vadītu skaļruni. Ja vēlaties skaļāku skaņu, varat izvēlēties lielāku tranzistoru un skaļruni.

(1) Skaļrunis, skatīt piezīmi par PNP tranzistoru iepriekš

(1) 100 - 110 omu rezistors

2. darbība: shēmas shēma

Ķēdes diagramma
Ķēdes diagramma

Pirmais solis būtu izveidot shēmu, kas parādīta diagrammā.

Es izveidoju 3.3VDC barošanas avotu, izmantojot veco 5V mobilā tālruņa lādētāju kopā ar AMS1117 3.3VDC regulatoru. ESP-01 ligzdai es izmantoju 8 kontaktu standarta IC kontaktligzdu un sagriežot plastmasas tiltus, kas veido atstarpi starp rindām, un pēc tam pielīmējiet 2 rindas kopā.

Manis izstrādātā ķēde ir uztvert ūdens klātbūtni starp diviem vadiem. Kad ūdens sasniedz abu vadu galu, tas radītu aptuveni 10K līdz 20K omu pretestību. Tad sērijveidā ar 10K omu R1 tas nodrošina nelielu strāvu Q1 pamatnei, izraisot Q1 piesātinājumu, piestiprinot GPIO-2 pie zemes. R1 ir nepieciešams, lai nodrošinātu Q1 aizsardzību gadījuma gadījumā, ja uztveres vados notiktu nejaušs īssavienojums.

R2 ir pievilkšanas rezistors, kas ļauj ESP-01 iedarbināt no zibspuldzes.

Tagad par papildu skaļruni/skaņas signālu, ja jums vienkārši nepieciešams ESP-01, lai runātu MQTT, un nevēlaties ieviest šo lokalizēto trauksmi, varat noņemt R2, Q2, skaļruni un novietot 10K pievilkšanas rezistoru starp GPIO-0 un VCC.

Ja nejūtat nepieciešamību izmantot sieviešu Micro-USB-DIP adapteri, varat pielodēt vadus starp 5 V PS un 3.3 V regulatora moduli. Es gribētu izmantot sieviešu MicroUSB adapteri, lai es varētu izmantot jebkuru vispārēju mobilā tālruņa lādētāju un MicroUSB kabeli.

3. solis: ķēdes izveide

Ķēdes veidošana
Ķēdes veidošana
Ķēdes veidošana
Ķēdes veidošana
Ķēdes veidošana
Ķēdes veidošana

Lodējiet visas sastāvdaļas un detaļas PCB saskaņā ar shēmu iepriekšējā lapā un sagrieziet PCB pēc izmēra.

Ievietojiet PCB korpusā, kas atbilst PCB un papildu skaļrunim. Manā gadījumā visas detaļas ietilptu nelielā tālruņa kontaktligzdā, lai gan man ir nedaudz jāsasilda vāks, lai izveidotu izliekumu, lai ESP-01 modulis ietilptu.

4. darbība. ESP-01 mirgošana

Šajā solī mēs mirgosim ESP-01 ar arduino skici. Ja jūs nekad neesat mirgojis ESP-01 moduli, varat sekot manam norādījumam, lai sāktu darbu:

Manu skici varat atrast manā github lapā:

Skicē vismaz ir jāmaina šāda informācija, kas attiecas uz jūsu mājas tīklu/iestatīšanu:

#define MQTT_SERVER "10.0.0.30" const char* ssid1 = "SSID"; const char* password1 = "MYSSIDpassword"; const char* ssid2 = "SSID1"; const char* password2 = "MYSSIDparole";

Manā mājas tīklā man ir 2 dažādi piekļuves punkti, kas pārraida 2 dažādus SSID, un šī skice ļautu dublēt, izveidojot savienojumu ar nākamo SSID, ja tiek pārtraukta saziņa ar pašreizējo AP. Ja jums ir tikai viens SSID, aizpildiet gan ssid1, gan ssid2 ar vienādu vērtību.

Kad esat veicis izmaiņas, augšupielādējiet skici ESP-01 un pievienojiet ESP-01 saskarnes panelī.

5. darbība. Testa izpilde

Lai pārbaudītu, vai mūsu projekts darbojas, vienkāršākais būtu uzraudzīt MQTT ziņojumus tīklā. Lai to izdarītu, jums ir jāatver SSH sesija moskītu brokerim un jāizdod šāda komanda:

mosquitto_sub -v -t '#'

Iepriekš minētā komanda ļaus mums redzēt visus MQTT ziņojumus, kas nonāk brokerī.

Tagad ieslēdziet mūsu ķēdi, un, ja viss darbojas, pēc dažām sekundēm jums vajadzētu redzēt vismaz šādu MQTT ziņojumu:

stat/SumpWaterSensor/LWT tiešsaistē

Tagad pārbaudiet ūdens sensoru, iegremdējot divus sensora vadus ūdens glāzē, un jums vajadzētu redzēt šo ziņojumu:

tele/SumpWaterSensor WET

Un, ja jūs izņemat vadus no ūdens, jums vajadzētu redzēt šo ziņojumu:

tele/SumpWaterSensor DRY

Ja redzat šos ziņojumus, jūsu projekts ir veiksmīgs.

Skicē es iekļāvu arī vairākas noderīgas MQTT tēmas, kuras varat izmantot:

"stat/SumpWaterSensorInfo": šis ziņojums tiek nosūtīts katru minūti, lai sniegtu darbības laiku un citu informāciju.

"cmnd/SumpWaterSensorInfo": ESP-01 izsūtīs informāciju, ja saņems šo tēmu ar vērtību "1" (ascii = 49)

"cmnd/SumpWaterSensorCPUrestart": ESP-01 tiks restartēts, ja saņems šo tēmu ar vērtību "1" (ascii = 49)

"cmnd/SumpWaterSensorBeep": ESP-01 atskaņos skaļruni, ja tas saņems šo tēmu ar vērtību "1" (ascii = 49)

"cmnd/SumpWaterSensorBeepFreq": iestata skaļruņa trauksmes frekvenci, noklusējuma = 900 (Hz)

"cmnd/SumpWaterSensorDebug": iespējojiet un iestatiet sērijas atkļūdošanas līmeni (noklusējums ir 0 - nav atkļūdošanas)

6. darbība: uzstādiet sensoru

Uzstādiet sensoru
Uzstādiet sensoru
Uzstādiet sensoru
Uzstādiet sensoru

Savā pieteikumā es vēlos uzraudzīt ūdens līmeni manā sūkņa urbumā un paziņot man, ja ūdens sasniedz virs tvertnes sūkņa pludiņa slēdža, kas nozīmē, ka mans sūkņa sūknis nedarbojas. Es vadīju vadus un izmantoju stiepļu saites, lai to nostiprinātu gar drenāžas cauruli.

7. solis: pēdējais pieskāriens

Pēdējais pieskāriens
Pēdējais pieskāriens

Tagad, kad projekts ir darbojies un mēs varam publicēt MQTT ziņojumu brokerim, nākamais solis ir izdomāt, ko ar to darīt.

Savā projektā es izmantoju Node-RED, lai klausītos/abonētu "tele/SumpWaterSensor" MQTT tēmu un paziņotu vairākiem Google mājas skaļruņiem, ja tiek konstatēts ūdens. Papildus tam es arī saistīju plūsmu ar pushbullet mezglu, lai nosūtītu paziņojumu uz savu Android tālruni.

Es arī izveidoju tīmekļa saskarni, lai redzētu sensora statusu (ieslēgts/bezsaistē, darbības laiks utt.). Dažreiz es redzēju, ka vienas nedēļas laikā tas dažkārt tiek izslēgts bez statistikas, daudz reižu tas ir saistīts ar ESP-01 atvienošanu no wifi vai MQTT. Bet ne pārāk uztraucieties, manā skicē ir iekļauta rutīna ESP-01 restartēšanai, ja tā turpina neizdoties, mēģinot izveidot savienojumu ar WIFI un/vai MQTT brokeri.

Attēlā šajā solī ir redzama mezgla-SARKANĀ plūsma, lai to paveiktu. Jūs varat arī ielīmēt plūsmu no manas github lapas savā mezglā RED:

Google mājas paziņojums ir tikai viens piemērs šim projektam, taču, manuprāt, tas ir visnoderīgākais un praktiskākais. Jūs vienmēr varat izveidot saskarni ar citu MQTT klausītāju vai pat izmantot IFTTT, lai vadītu citas ierīces, kad tiek konstatēts ūdens.

Izklaidējieties…

Ieteicams: