Talaan ng mga Nilalaman:

Project ng Logger ng Katayuan ng Pinto at Temperatura: 21 Mga Hakbang
Project ng Logger ng Katayuan ng Pinto at Temperatura: 21 Mga Hakbang

Video: Project ng Logger ng Katayuan ng Pinto at Temperatura: 21 Mga Hakbang

Video: Project ng Logger ng Katayuan ng Pinto at Temperatura: 21 Mga Hakbang
Video: The Immortal Hulk: Full Story (The Big Spill) 2024, Nobyembre
Anonim
Proyekto ng Logger ng Katayuan ng Pinto at Temperatura
Proyekto ng Logger ng Katayuan ng Pinto at Temperatura

Ipapakita sa iyo ng Instructable na ito kung paano gumawa ng isang simpleng logger ng katayuan ng pinto at temperatura na mas mababa sa $ 10.00 gamit ang isang ESP8266 NodeMCU, isang sensor ng temperatura at halumigmig na DHT11, isang switch ng pintuan / bintana na tambo, isang resistor na 10K ohm at ilang hookup wire.

Ang pagsisimula ng proyektong ito ay nagmula sa aking pagnanais na gumawa ng mas maraming automation sa bahay kasama ang lupon ng Arduino, Dahil marami akong binabasa tungkol sa katugmang Arduino EPS8266 NodeMCU, napagpasyahan kong ang lupon na ito ay ang perpektong board na may mababang gastos upang gumawa ng ilang eksperimento. Matapos maghanap sa Internet para sa mga proyekto sa pag-automate ng bahay gamit ang mga board ng ESP8266, naayos ko ang pagsasama ng isang temperatura at logger ng katayuan ng pinto para sa aking unang pagtatangka. Sa kalaunan ang proyektong ito ay isasama sa mga servos, kahalumigmigan sensor at iba pang electronics upang i-automate ang isang maliit na berdeng bahay na dinisenyo at itinayo ng aking lolo 50 taon na ang nakakaraan. Gagamitin ang sensor ng temperatura upang matukoy kung ang sistema ng pag-init ay dapat na makisali o magwala pati na rin ang signal ng mga servo upang buksan at isara ang venting system kung kinakailangan. Ang estado ng sistema ng venting ay susubaybayan ng paggamit ng mga switch ng magnetic reed. Panghuli, ang mga sensor ng kahalumigmigan ay gagamitin upang i-automate ang isang sistema ng pagtutubig.

Hakbang 1: Pagwawaksi

Isang mabilis na pagtanggi lamang upang sabihin na HINDI namin responsibilidad para sa anumang bagay na nangyari bilang isang resulta ng pagsunod sa itinuturo na ito. Palaging pinakamahusay na sundin ang mga tagubilin ng tagagawa at mga sheet ng kaligtasan kapag nagtatayo ng anupaman kaya mangyaring kumunsulta sa mga dokumentong iyon para sa alinman sa mga bahagi at tool na ginagamit mo upang makabuo ng iyong sarili. Nagbibigay lamang kami ng impormasyon sa mga hakbang na ginamit namin upang likhain ang amin. Hindi kami propesyonal. Bilang isang bagay na katotohanan, 2 sa 3 ng mga indibidwal na lumahok sa pagbuo na ito ay mga bata.

Hakbang 2: I-setup ang Libreng IFTTT Account

I-setup ang Libreng IFTTT Account
I-setup ang Libreng IFTTT Account

Kung wala ka pa, ngayon ay ang oras upang mag-set up ng isang libreng IFTTT account sa pamamagitan ng pagpunta sa kanilang home page.. Ang IFTTT ay nangangahulugang If This Then That at isang libreng platform na nagbibigay-daan sa iyong ikonekta ang mga serbisyong nakabatay sa internet sa mga bagong paraan upang paganahin kang magamit ang mga serbisyong iyon sa mga bagong paraan. Para sa proyektong ito gagamitin namin ang IFTTT upang pahintulutan ang isang ESP8266 na i-log ang katayuan ng isang pintuan sa pamamagitan ng isang tambo switch at temperatura at halumigmig sa pamamagitan ng sensor ng DHT11 sa isang dokumento ng Google Sheets.

Hakbang 3: Lumikha ng isang IFTTT Applet

Lumikha ng isang IFTTT Applet
Lumikha ng isang IFTTT Applet

Habang nasa IFTTT pa rin, magpatuloy sa seksyong "Aking Mga Applet" at lumikha ng isang bagong applet sa pamamagitan ng pag-click sa pindutang "Bagong Applet".

Hakbang 4: I-configure ang "ito" na Bahagi ng Iyong Applet

I-configure ang
I-configure ang

Mag-click sa salitang "ito" na nasa isang asul na kulay - tulad ng naka-highlight sa figure sa itaas.

Hakbang 5: Idagdag ang Serbisyo sa WebHooks sa Iyong Applet

Idagdag ang Serbisyo ng WebHooks sa Iyong Applet
Idagdag ang Serbisyo ng WebHooks sa Iyong Applet

Sa search bar, hanapin ang serbisyo na "Webhooks" at piliin ang icon ng Webhooks.

Kapag nahanap mo ang serbisyo na "Webhooks", mag-click dito.

Hakbang 6: I-set up ang Tumanggap ng isang Trigger ng Kahilingan sa Web

I-set up ang Tumanggap ng isang Trigger ng Kahilingan sa Web
I-set up ang Tumanggap ng isang Trigger ng Kahilingan sa Web

Piliin ang gatilyo na "Tumanggap ng isang kahilingan sa web."

Hakbang 7: Magbigay ng Pangalan ng Kaganapan

Magbigay ng Pangalan ng Kaganapan
Magbigay ng Pangalan ng Kaganapan

Sa text box ibigay ang iyong bagong applet na may pangalan ng kaganapan. Pinili ko ang "Data Logger" ngunit maaari kang pumili ng kahit anong gusto mo.

Hakbang 8: I-configure ang "na" Bahagi ng Iyong Applet

I-configure ang
I-configure ang

Mag-click sa salitang "iyon" na nasa isang asul na kulay - tulad ng naka-highlight sa figure sa itaas.

Hakbang 9: Mag-set up ng isang Serbisyo sa Pagkilos

Mag-set up ng isang Serbisyo sa Pagkilos
Mag-set up ng isang Serbisyo sa Pagkilos

Sa box para sa paghahanap, hanapin ang serbisyo na "Google Sheets", at i-click ang icon ng Google Sheets.

Hakbang 10: Kumonekta sa Google Sheets

Kumonekta sa Google Sheets
Kumonekta sa Google Sheets

Kung hindi mo pa nagagawa ito, kakailanganin mong ikonekta ang iyong IFTTT account sa Google Sheets. Pindutin ang pindutang Connect na ipinakita sa itaas at sundin ang mga tagubilin sa screen.

Hakbang 11: Pumili ng isang Aksyon

Pumili ng isang Aksyon
Pumili ng isang Aksyon

Mag-click sa "Magdagdag ng Hilera sa Spreadsheet".

Hakbang 12: I-setup ang Pagkilos

I-setup ang Pagkilos
I-setup ang Pagkilos

Magbigay ng isang pangalan sa text box na "Pangalan ng Spreadsheet". Pinili kong gamitin ang "Data_Logger" para sa pagkakapare-pareho. Iwanan ang natitirang setting lamang (maaari kang mag-eksperimento sa mga setting na iyon sa ibang oras) at pagkatapos ay pindutin ang pindutang "Lumikha ng Pagkilos" sa ilalim ng screen.

Hakbang 13: Suriin at Tapusin ang Iyong Applet

Suriin at Tapusin ang Iyong Applet
Suriin at Tapusin ang Iyong Applet

Kapag nasiyahan sa iyong pag-configure ng applet pindutin ang pindutang "Tapusin".

Hakbang 14: Kunin ang Impormasyon sa Pag-configure na Kinakailangan Mamaya

Kunin ang Impormasyon sa Pag-configure na Kinakailangan Mamaya
Kunin ang Impormasyon sa Pag-configure na Kinakailangan Mamaya

Mag-click sa "Webhooks" tulad ng naka-highlight sa itaas.

Hakbang 15: Magpatuloy sa Dokumentasyon ng Webhooks para sa API Key

Magpatuloy sa Dokumentasyon ng Webhooks para sa API Key
Magpatuloy sa Dokumentasyon ng Webhooks para sa API Key

Maaaring mukhang kakaiba ngunit mag-click sa link ng Dokumentasyon sa kanang itaas upang magpatuloy sa pahina gamit ang iyong natatanging API Key.

Hakbang 16: I-save ang API Key

I-save ang API Key
I-save ang API Key
I-save ang API Key
I-save ang API Key

Ipinapakita ng unang linya ng screen ng Dokumentasyon ang iyong natatanging Key ng API. Kopyahin at I-save ang key na ito para magamit sa paglaon.

Magandang ideya din na subukan dito ang applet. Tandaang baguhin ang {kaganapan} sa Data_Logger o anumang pinangalanan mo sa iyong kaganapan at magdagdag ng ilang data sa 3 walang laman na halaga pagkatapos ay i-click ang pindutang "Subukan Ito" sa ilalim ng pahina. Dapat mong makita ang isang berdeng mensahe na nagsasabing "Na-trigger ang kaganapan". Kung gayon, magpatuloy sa Google Docs at kumpirmahing ang data na inilagay mo sa pahina ng pagsubok ay ipinakita sa dokumento ng Google Sheets.

Hakbang 17: Ipunin ang Mga Bahagi

Ipunin ang Mga Sangkap
Ipunin ang Mga Sangkap
Ipunin ang Mga Sangkap
Ipunin ang Mga Sangkap
Ipunin ang Mga Sangkap
Ipunin ang Mga Sangkap

Kakailanganin mo lamang ng ilang mga bahagi.

1) ESP8266 NodeMcu Development Board

2) Sensor ng Temperatura / Humidity ng DHT11

3) Lumipat / Window Reed Switch

4) 10k Ohm Resistor

5) Hookup Wire

Hakbang 18: Ipunin ang Mga Bahagi

1) Ikonekta ang isa sa 3v3 pin sa ESP8266 sa vcc pin sa DHT11.

2) Ikonekta ang isa sa mga ground pin sa ESP8266 sa ground pin sa DHT11.

3) Ikonekta ang pin D4 (a.k.a. pin 2 sa IDE) sa ESP8266 sa data pin sa DHT11.

4) Ikonekta ang isa pang 3v3 pin sa ESP8266 sa isang gilid ng pinto / window reed switch.

5) Ikonekta ang pin D5 (a.k.a. pin 14 sa IDE) sa ESP8266 sa kabilang panig ng pinto / window reed switch at ikonekta din ito sa isang bahagi ng 10k ohm resistor.

6) Ikonekta ang iba pang bahagi ng 10k ohm risistor sa isa pang ground pin sa ESP8266.

Para sa mga pagpipilian ng pin na ESP8266 mangyaring sumangguni sa kapaki-pakinabang na diagram na ito o ang napaka kapaki-pakinabang na video.

Hakbang 19: Isulat ang Arduino Code

Isulat ang Arduino Code
Isulat ang Arduino Code

Kopyahin at i-paste ang code sa ibaba sa iyong Arduino IDE.

#include #include #include "DHT.h"

#define DHTPIN 2 // kung anong digital pin ang nakakonekta sa amin

#define DOORPIN 14 // kung anong digital pin ang switch ng pinto.

# tukuyin ang DHTTYPE DHT11 // DHT 11

DHT dht (DHTPIN, DHTTYPE);

int count = 1;

const char * ssid = "ilang_ssid"; // baguhin ito upang magamit ang iyong ssid const char * password = "some_password"; // baguhin ito upang magamit ang iyong password int sleepTime = 100;

// Maker Webhooks IFTTT

const char * server = "maker.ifttt.com";

// mapagkukunan ng IFTTT URL

const char * resource = "/ trigger / SOME_SERVICE_NAME / with / key / SOME_API_KEY"; // Tiyaking gagamitin ang iyong pangalan ng serbisyo at ang iyong api key.

String doorStatus = "Sarado";

pabagu-bago ng loob bool stateChanged = false;

// Kung natutulog nang maraming oras pagkatapos ay magtakda ng agwat ng oras * 60 minuto * 60 segundo * 1000 milliseconds

Const long interval = 1.0 * 60 * 60 * 1000; // 1 hour unsigned long nakaraangMillis = 0 - (2 * agwat);

walang bisa ang pag-setup () {

Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DOORPIN, INPUT); // Door Sensor dht.begin (); WiFi.begin (ssid, password);

Serial.print ("\ nConnect..");

habang (WiFi.status ()! = WL_CONNected) {pagkaantala (1000); Serial.print ("."); } Serial.print ("\ n"); }

walang bisa na eventTriggered () {

stateChanged = totoo; Serial.println ("Sinusuri ang pinto!"); kung (digitalRead (DOORPIN) == MATAAS) // Suriin upang makita kung bukas ang pinto {Serial.println ("Ang pinto ay sarado!"); doorStatus = "Sarado"; } iba pa {Serial.println ("Bukas ang Pinto!"); doorStatus = "Binuksan"; }}

walang bisa ang checkStatus () {

kung (WiFi.status () == WL_CONNected) {// Suriin ang katayuan sa koneksyon sa WiFi // Ang temperatura sa pagbabasa o halumigmig ay tumatagal ng halos 250 milliseconds! // Ang mga pagbasa ng sensor ay maaari ring hanggang sa 2 segundo 'old' (ito ay isang napakabagal ng sensor) float h = dht.readHumidity (); // Basahin ang temperatura bilang Celsius (ang default) float t = dht.readTemperature (); // Basahin ang temperatura bilang Fahrenheit (isFahrenheit = totoo) float f = dht.readTemperature (totoo); // Suriin kung may nabasa na nabigo at lumabas nang maaga (upang subukang muli). kung (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Nabigong basahin mula sa sensor ng DHT!"); //Serial.print ("."); // Nabigong basahin mula sa sensor ng DHT! bumalik; } // Compute heat index sa Fahrenheit (ang default) float hif = dht.computeHeatIndex (f, h); // Compute heat index in Celsius (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);

Serial.print ("\ n");

Serial.print ("Temperatura:"); Serial.print (f); Serial.print ("* F ("); Serial.print (t); Serial.print ("* C)"); Serial.print ("\ t"); Serial.print ("Heat index:"); Serial.print (hif); Serial.print ("* F ("); Serial.print (hic); Serial.print ("* C)%"); Serial.print ("\ t"); Serial.print ("Humidity:"); Serial.println (h);

kung (digitalRead (DOORPIN) == TAAS) // Suriin upang makita kung ang pinto ay bukas

{Serial.println ("Sarado ang pinto!"); doorStatus = "Sarado"; } iba pa {Serial.println ("Bukas ang Pinto!"); doorStatus = "Binuksan"; } String jsonObject = String ("{" value1 / ": \" ") + f +" * F ("+ t +" * C) / "+ hif +" * F ("+ hic +" * C) "+" / ", \" value2 / ": \" "+ h +" / ", \" value3 / ": \" "+ doorStatus +" / "}"; HTTPClient http; String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (server); http.addHeader ("Uri ng Nilalaman", "application / json"); http. POST (jsonObject); http.writeToStream (& Serial); http.end (); // Isara ang koneksyon

stateChanged = false;

int sleepTimeInMinutes = agwat / 1000/60; Serial.print ("\ n / nMatulog para sa"); Serial.print (sleepTimeInMinutes); Serial.println ("(mga minuto) …"); }}

void loop () {

unsigned long currentMillis = millis (); pagkaantala (4000); // Kung nadaig natin ang lumipas na oras pagkatapos ay pilitin ang isang tseke ng pinto at temp. kung (currentMillis - nakaraangMillis> = agwat) {stateChanged = true; nakaraangMillis = kasalukuyangMillis; Serial.print (bilang ++); Serial.println (") Sinusuri dahil sa lumipas na oras!"); } iba pa kung (stateChanged) {Serial.print (count ++); Serial.println (") Sinusuri dahil sa pagbabago ng estado!"); }

// Kung nagbago ang estado pagkatapos suriin ang pinto at temp.

kung (stateChanged) {checkStatus (); }

antala (sleepTime);

}

Hakbang 20: Mga Resulta

Mga Resulta
Mga Resulta

Kapag na-upload mo ang source code sa nakaraang hakbang dapat kang magkaroon ng mga resulta tulad ng halimbawang ipinakita sa itaas.

Hakbang 21: Mga Kredito

Natagpuan ko ang maraming kapaki-pakinabang na mga pahiwatig at tip mula sa Random Nerd Tutorials at nais kong pasalamatan sila sa lahat ng kanilang tulong. Lalo na ang kanilang mahusay na tutorial sa ESP32 ESP8266 I-publish ang Mga Pagbasa ng Sensor sa Google Sheets kung saan ang pangunahing mga bahagi ng Instructable na ito ay batay sa.

Bilang karagdagan, tinutulungan ako ng DHT11 na Maituturo mula sa TheCircuit na maunawaan kung paano gamitin ang napaka murang ngunit kagiliw-giliw na maliit na sensor.

Bukod dito, maraming mga tutorial na nakikipag-usap sa pagsubaybay sa iyong mga pintuan tulad ng Garage Door Monitor at isa pa mula sa Random Nerd Tutorials. Gumamit ako ng mga piraso at piraso ng mga ito upang matulungan akong maunawaan kung paano gumagana nang maayos ang aking switch ng tambo.

Sa wakas, sa impormasyong ito pati na rin iba pang mga detalye na nakita ko sa paligid ng Internet nagawa kong lumikha ng isang system na natutugunan ang aking mga pangangailangan. Inaasahan kong nahanap mo ang kapaki-pakinabang na Ituturo at bumuo ng isa sa iyong sarili.

Inirerekumendang: