Satura rādītājs:
- 1. darbība. Atruna
- 2. darbība. Iestatiet bezmaksas IFTTT kontu
- 3. darbība: izveidojiet IFTTT sīklietotni
- 4. darbība: konfigurējiet šo sīklietotnes daļu
- 5. darbība. Pievienojiet WebHooks pakalpojumu savam sīklietotnei
- 6. darbība: iestatiet tīmekļa pieprasījuma saņemšanas aktivizētāju
- 7. darbība. Norādiet notikuma nosaukumu
- 8. solis: konfigurējiet sīklietotnes “šo” daļu
- 9. darbība: iestatiet darbības pakalpojumu
- 10. darbība: izveidojiet savienojumu ar Google izklājlapām
- 11. darbība: izvēlieties darbību
- 12. darbība: iestatiet darbību
- 13. darbība. Pārskatiet un pabeidziet savu sīklietotni
- 14. darbība. Izgūstiet vēlāk nepieciešamo konfigurācijas informāciju
- 15. darbība: pārejiet pie API atslēgas Webhooks dokumentācijas
- 16. darbība: saglabājiet API atslēgu
- 17. darbība: apkopojiet komponentus
- 18. darbība: salieciet komponentus
- 19. solis: uzrakstiet Arduino kodu
- 20. darbība. Rezultāti
- 21. darbība. Kredīti
Video: Durvju un temperatūras statusa reģistrēšanas projekts: 21 solis
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Šajā pamācībā tiks parādīts, kā izveidot vienkāršu durvju un temperatūras statusa reģistrētāju par USD 10,00, izmantojot ESP8266 NodeMCU, DHT11 temperatūras un mitruma sensoru, durvju/logu niedru slēdzi, 10 K omu rezistoru un dažus savienojuma vadus.
Šī projekta ģenēze radās no manas vēlmes vairāk veikt mājas automatizāciju, izmantojot Arduino plati. Tā kā es daudz lasīju par Arduino saderīgo EPS8266 NodeMCU, es nolēmu, ka šī dēlis būs ideāla zemo izmaksu dēlis, ar ko eksperimentēt. Pēc interneta meklēšanas mājas automatizācijas projektiem, izmantojot ESP8266 plates, es nolēmu savam pirmajam mēģinājumam apvienot temperatūras un durvju statusa reģistrētāju. Galu galā šis projekts tiks apvienots ar servo, mitruma sensoriem un citu elektroniku, lai automatizētu nelielu zaļo māju, kuru mans vectēvs projektēja un uzcēla pirms 50 gadiem. Temperatūras sensors tiks izmantots, lai noteiktu, vai apkures sistēma ir jāieslēdz vai jāatvieno, kā arī signalizē servos, lai vajadzības gadījumā atver un aizver ventilācijas sistēmu. Ventilācijas sistēmas stāvokli uzraudzīs, izmantojot magnētiskos niedru slēdžus. Visbeidzot, mitruma sensori tiks izmantoti, lai automatizētu laistīšanas sistēmu.
1. darbība. Atruna
Tikai ātra atruna, lai paziņotu, ka mēs neuzņemamies atbildību par visu, kas notiek šo norādījumu ievērošanas rezultātā. Veidojot kaut ko, vienmēr vislabāk ir ievērot ražotāja norādījumus un drošības lapas, tāpēc, lūdzu, iepazīstieties ar šiem dokumentiem par visām detaļām un rīkiem, ko izmantojat, lai izveidotu savu. Mēs vienkārši sniedzam tikai informāciju par soļiem, ko izmantojām, lai izveidotu savu. Mēs neesam profesionāļi. Faktiski 2 no 3 personām, kas piedalījās šajā būvniecībā, ir bērni.
2. darbība. Iestatiet bezmaksas IFTTT kontu
Ja jums tāda vēl nav, tagad ir īstais laiks izveidot bezmaksas IFTTT kontu, apmeklējot viņu mājas lapu. ļauj izmantot šos pakalpojumus jaunā veidā. Šim projektam mēs izmantosim IFTTT, lai ļautu ESP8266 reģistrēt durvju statusu, izmantojot niedru slēdzi, un temperatūru un mitrumu, izmantojot DHT11 sensoru Google izklājlapu dokumentā.
3. darbība: izveidojiet IFTTT sīklietotni
Kamēr vēl izmantojat IFTTT, pārejiet uz sadaļu “Mani sīpoli” un izveidojiet jaunu sīklietotni, noklikšķinot uz pogas “Jauna sīklietotne”.
4. darbība: konfigurējiet šo sīklietotnes daļu
Noklikšķiniet uz šī vārda, kas ir zilā krāsā - kā uzsvērts attēlā iepriekš.
5. darbība. Pievienojiet WebHooks pakalpojumu savam sīklietotnei
Meklēšanas joslā atrodiet pakalpojumu “Webhooks” un atlasiet Webhooks ikonu.
Kad esat atradis pakalpojumu "Webhooks", noklikšķiniet uz tā.
6. darbība: iestatiet tīmekļa pieprasījuma saņemšanas aktivizētāju
Izvēlieties aktivizētāju “Saņemt tīmekļa pieprasījumu”.
7. darbība. Norādiet notikuma nosaukumu
Tekstlodziņā norādiet jauno sīklietotni ar notikuma nosaukumu. Es izvēlējos "Datu reģistrētājs", bet jūs varat izvēlēties visu, kas jums patīk.
8. solis: konfigurējiet sīklietotnes “šo” daļu
Noklikšķiniet uz vārda “tas”, kas ir zilā krāsā - kā uzsvērts iepriekš redzamajā attēlā.
9. darbība: iestatiet darbības pakalpojumu
Meklēšanas lodziņā meklējiet pakalpojumu “Google izklājlapas” un noklikšķiniet uz Google izklājlapu ikonas.
10. darbība: izveidojiet savienojumu ar Google izklājlapām
Ja vēl neesat to izdarījis, IFTTT konts nav jāpievieno Google izklājlapām. Nospiediet iepriekš redzamo pogu Savienot un izpildiet ekrānā redzamos norādījumus.
11. darbība: izvēlieties darbību
Noklikšķiniet uz "Pievienot izklājlapai rindu".
12. darbība: iestatiet darbību
Tekstlodziņā "Izklājlapas nosaukums" norādiet nosaukumu. Es izvēlos izmantot "Data_Logger", lai nodrošinātu konsekvenci. Atstājiet pārējo iestatījumu mierā (varat eksperimentēt ar šiem iestatījumiem citā laikā) un pēc tam nospiediet pogu "Izveidot darbību" ekrāna apakšdaļā.
13. darbība. Pārskatiet un pabeidziet savu sīklietotni
Kad esat apmierināts ar sīklietotnes konfigurāciju, nospiediet pogu "Pabeigt".
14. darbība. Izgūstiet vēlāk nepieciešamo konfigurācijas informāciju
Noklikšķiniet uz "Webhooks", kā uzsvērts iepriekš.
15. darbība: pārejiet pie API atslēgas Webhooks dokumentācijas
Tas var šķist dīvaini, taču augšējā labajā stūrī noklikšķiniet uz saites Dokumentācija, lai pārietu uz lapu ar savu unikālo API atslēgu.
16. darbība: saglabājiet API atslēgu
Dokumentācijas ekrāna pirmajā rindā tiek parādīta jūsu unikālā API atslēga. Kopējiet un saglabājiet šo atslēgu izmantošanai vēlāk.
Ir arī laba ideja pārbaudīt sīklietotni šeit. Neaizmirstiet mainīt notikumu {event} uz Data_Logger vai jebkuru citu notikuma nosaukumu un pievienot dažus datus 3 tukšajām vērtībām, pēc tam noklikšķiniet uz pogas “Pārbaudīt” lapas apakšdaļā. Jums vajadzētu redzēt zaļu ziņojumu “Notikums ir aktivizēts”. Ja tā, pārejiet uz pakalpojumu Google dokumenti un apstipriniet, ka testa lapā ievadītie dati tika parādīti Google izklājlapu dokumentā.
17. darbība: apkopojiet komponentus
Jums būs nepieciešamas tikai dažas detaļas.
1) ESP8266 NodeMcu attīstības padome
2) DHT11 temperatūras/mitruma sensors
3) Durvju/logu niedru slēdzis
4) 10k omu rezistors
5) Hookup Wire
18. darbība: salieciet komponentus
1) Pievienojiet vienu no ESV8266 3v3 tapām DHT11 vcc tapai.
2) Pievienojiet vienu no ESP8266 zemējuma tapām DHT11 zemējuma tapai.
3) Savienojiet ESP8266 tapu D4 (pazīstams arī kā 2. kontaktdakša IDE) ar DHT11 datu tapu.
4) Pievienojiet vēl vienu 3v3 tapu uz ESP8266 durvju/logu niedru slēdža vienā pusē.
5) Pievienojiet ESP8266 tapu D5 (pazīstams arī kā 14. tapa IDE) durvju/logu niedru slēdža otrā pusē, kā arī pievienojiet to 10 k omu rezistora vienai pusei.
6) Pievienojiet 10 kΩ pretestības otru pusi pie citas ESP8266 zemējuma tapas.
Lai izvēlētos ESP8266 tapas, lūdzu, skatiet šo noderīgo diagrammu vai ļoti noderīgo video.
19. solis: uzrakstiet Arduino kodu
Kopējiet un ielīmējiet zemāk esošo kodu savā Arduino IDE.
#iekļaut #iekļaut #iekļaut "DHT.h"
#define DHTPIN 2 // ar kādu ciparu tapu esam savienoti
#define DOORPIN 14 // kāda digitālā tapa ir ieslēgta durvju slēdzim.
#define DHTTYPE DHT11 // DHT 11
DHT dht (DHTPIN, DHTTYPE);
int skaits = 1;
const char* ssid = "daži_ssid"; // mainiet to, lai izmantotu savu ssid const char* password = "some_password"; // mainiet to, lai izmantotu savu paroli int sleepTime = 100;
// Maker Webhooks IFTTT
const char* serveris = "maker.ifttt.com";
// IFTTT URL resurss
const char* resource = "/trigger/SOME_SERVICE_NAME/ar/key/SOME_API_KEY"; // Noteikti izmantojiet sava pakalpojuma nosaukumu un API atslēgu.
String doorStatus = "Slēgts";
gaistošs bool stateChanged = false;
// Ja guļat stundas, tad iestatiet intervālu par h * 60 minūtēm * 60 sekundēm * 1000 milisekundēm
const ilgs intervāls = 1,0 * 60 * 60 * 1000; // 1 stunda neparakstīta ilgi iepriekšMillis = 0 - (2 * intervāls);
void setup () {
Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DURVA, IEEJA); // Durvju sensors dht.begin (); WiFi.begin (ssid, parole);
Serial.print ("\ nSavienojums..");
while (WiFi.status ()! = WL_CONNECTED) {kavēšanās (1000); Sērijas nospiedums ("."); } Serial.print ("\ n"); }
void eventTriggered () {
stateChanged = true; Serial.println ("Durvju pārbaude!"); if (digitalRead (DOORPIN) == HIGH) // Pārbaudiet, vai durvis ir atvērtas {Serial.println ("Durvis ir aizvērtas!"); doorStatus = "Slēgts"; } else {Serial.println ("Durvis ir atvērtas!"); doorStatus = "Atvērts"; }}
void checkStatus () {
ja (WiFi.status () == WL_CONNECTED) {// Pārbaudiet WiFi savienojuma statusu // Temperatūras vai mitruma nolasīšana prasa apmēram 250 milisekundes! // Sensora rādījumi var būt arī līdz 2 sekundēm veci (tas ir ļoti lēns sensors) float h = dht.readHumidity (); // Temperatūras lasīšana pēc Celsija (noklusējuma) float t = dht.readTemperature (); // Lasīt temperatūru kā Fārenheita (isFahrenheit = true) float f = dht.readTemperature (true); // Pārbaudiet, vai kāda nolasīšana neizdevās, un izejiet agri (lai mēģinātu vēlreiz). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Neizdevās nolasīt no DHT sensora!"); //Sērijas.druka ("."); // Neizdevās nolasīt no DHT sensora! atgriešanās; } // Aprēķināt siltuma indeksu pēc Fārenheita (noklusējuma) float hif = dht.computeHeatIndex (f, h); // Aprēķināt siltuma indeksu pēc Celsija (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);
Serial.print ("\ n");
Serial.print ("Temperatūra:"); Sērijas nospiedums (f); Serial.print (" *F ("); Serial.print (t); Serial.print (" *C)"); Serial.print ("\ t"); Serial.print ("Siltuma indekss:"); Sērijas nospiedums (hif); Serial.print (" *F ("); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print ("Mitrums:"); Sērijas.println (h);
if (digitalRead (DOORPIN) == HIGH) // Pārbaudiet, vai durvis ir atvērtas
{Serial.println ("Durvis ir aizvērtas!"); doorStatus = "Slēgts"; } else {Serial.println ("Durvis ir atvērtas!"); doorStatus = "Atvērts"; } String jsonObject = String ("{" value1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" value2 / ": \" " + h +" / ", \" value3 / ": \" " + doorStatus +" / "}"; HTTP klients http; String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (serveris); http.addHeader ("Content-Type", "application/json"); http. POST (jsonObject); http.writeToStream (& Serial); http.end (); // Aizvērt savienojumu
stateChanged = nepatiess;
int sleepTimeInMinutes = intervāls / 1000/60; Serial.print ("\ n / nIet gulēt"); Serial.print (sleepTimeInMinutes); Serial.println ("minūte (-s) …"); }}
void loop () {
neparakstīta garā strāvaMillis = millis (); kavēšanās (4000); // Ja mēs pārsniedzām pagājušo laiku, piespiediet pārbaudīt durvis un temp. if (currentMillis - previousMillis> = intervāls) {stateChanged = true; previousMillis = currentMillis; Sērijas nospiedums (skaits ++); Serial.println (") Pārbaude pagājušā laika dēļ!"); } cits if (stateChanged) {Serial.print (skaits ++); Serial.println (") Pārbauda stāvokļa maiņas dēļ!"); }
// Ja stāvoklis ir mainījies, pārbaudiet durvis un temp.
if (stateChanged) {checkStatus (); }
kavēšanās (miega laiks);
}
20. darbība. Rezultāti
Kad augšupielādējat avota kodu iepriekšējā darbībā, jums vajadzētu iegūt tādus rezultātus kā iepriekš parādītais piemērs.
21. darbība. Kredīti
Es atradu daudz noderīgu padomu un padomu no Random Nerd Tutorials un vēlos viņiem pateikties par visu palīdzību. Īpaši viņu izcilā apmācība par ESP32 ESP8266 Publicēt sensora lasījumus Google izklājlapās, uz kurām balstās šīs pamācības galvenās daļas.
Turklāt TheCircuit DHT11 Instructable palīdzēja man saprast, kā izmantot šo ļoti lēto, bet interesanto mazo sensoru.
Turklāt ir daudz pamācību, kas nodarbojas ar jūsu durvju uzraudzību, piemēram, garāžas durvju monitors un vēl viena no Random Nerd Tutorials. Es izmantoju to gabalus, lai palīdzētu man saprast, kā panākt, lai mans niedru slēdzis darbotos pareizi.
Visbeidzot, ar šo informāciju, kā arī citu informāciju, ko atradu internetā, es varēju izveidot sistēmu, kas atbilda manām vajadzībām. Es ceru, ka jums šī instrukcija ir noderīga un izveidojat savu.
Ieteicams:
Durvju zvana palīgslēdzis: 21 solis
Durvju zvana palīgslēdzis: Durvju zvana palīgslēdzis ir palīgtehnoloģijas piemērs, izmantojot ikdienas materiālus. Tas ir slēdzis, kas pārveido parasto durvju zvana slēdzi, lai tas bērniem ar īpašām vajadzībām ļautu izmantot ikdienas priekšmetus
Pielāgots durvju paklājs Aktivizēts durvju zvans: 6 soļi
Pielāgots durvju paklājs, kas iedarbināja durvju zvanu: Sveiki! Mani sauc Džastins, es esmu juniors vidusskolā, un šī pamācība parādīs, kā izveidot durvju zvanu, kas tiek aktivizēts, kad kāds uzkāpj uz jūsu durvju paklājiņa, un tas var būt jebkura melodija vai dziesma, kuru vēlaties! Tā kā durvju paklājiņš iedarbina durvis
Garāžas durvju statusa gaismas uzlaušana: 3 soļi
Garāžas durvju statusa gaismas uzlaušana: Es dzīvoju mājā, kur nav viegli redzēt, vai garāžas durvis ir atvērtas vai aizvērtas. Mums mājās ir poga, bet durvis nav redzamas. Doma par sava veida slēdža un strāvas padeves projektēšanu nebija vēlama augsto
Arduino datu reģistrēšanas vairoga mazais projekts: 4 soļi
Arduino datu reģistrēšanas vairoga mazais projekts: Sveiki, puiši! Šodien es jums parādīšu vienu vienkāršu piemēru ar Arduino datu reģistrēšanas vairogu. Šo projektu ir ļoti viegli izveidot, un jums nav vajadzīgas tik daudz detaļu. Projekts ir par temperatūras un mitruma mērīšanu ar dht sensoru. Šis projekts
Pārvērtiet vadu durvju zvanu par viedo durvju zvanu, izmantojot IFTTT: 8 soļi
Pārvērtiet savu vadu durvju zvanu par viedo durvju zvanu, izmantojot IFTTT: WiFi durvju zvans pārvērš jūsu esošo vadu durvju zvanu par gudru durvju zvanu. https://www.fireflyelectronix.com/product/wifidoor