Talaan ng mga Nilalaman:
- Hakbang 1: Pagwawaksi
- Hakbang 2: I-setup ang Libreng IFTTT Account
- Hakbang 3: Lumikha ng isang IFTTT Applet
- Hakbang 4: I-configure ang "ito" na Bahagi ng Iyong Applet
- Hakbang 5: Idagdag ang Serbisyo sa WebHooks sa Iyong Applet
- Hakbang 6: I-set up ang Tumanggap ng isang Trigger ng Kahilingan sa Web
- Hakbang 7: Magbigay ng Pangalan ng Kaganapan
- Hakbang 8: I-configure ang "na" Bahagi ng Iyong Applet
- Hakbang 9: Mag-set up ng isang Serbisyo sa Pagkilos
- Hakbang 10: Kumonekta sa Google Sheets
- Hakbang 11: Pumili ng isang Aksyon
- Hakbang 12: I-setup ang Pagkilos
- Hakbang 13: Suriin at Tapusin ang Iyong Applet
- Hakbang 14: Kunin ang Impormasyon sa Pag-configure na Kinakailangan Mamaya
- Hakbang 15: Magpatuloy sa Dokumentasyon ng Webhooks para sa API Key
- Hakbang 16: I-save ang API Key
- Hakbang 17: Ipunin ang Mga Bahagi
- Hakbang 18: Ipunin ang Mga Bahagi
- Hakbang 19: Isulat ang Arduino Code
- Hakbang 20: Mga Resulta
- Hakbang 21: Mga Kredito
Video: Project ng Logger ng Katayuan ng Pinto at Temperatura: 21 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
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
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
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
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
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
Piliin ang gatilyo na "Tumanggap ng isang kahilingan sa web."
Hakbang 7: 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
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
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
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
Mag-click sa "Magdagdag ng Hilera sa Spreadsheet".
Hakbang 12: 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
Kapag nasiyahan sa iyong pag-configure ng applet pindutin ang pindutang "Tapusin".
Hakbang 14: 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
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
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
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
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
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:
Tagapahiwatig ng Katayuan ng Pamilya / kasamahan sa trabaho: 6 Mga Hakbang (na may Mga Larawan)
Tagapahiwatig ng Katayuan ng Pamilya / Coworker: Ang una kong Maituturo, maraming mga proyekto ang tumulong sa akin sa paglipas ng mga taon, inaasahan kong makakatulong ito sa iba. Ang maikling kwento … Kailangan namin ng isang paraan upang maipakita sa bawat isa ang aming katayuan sa halip na makagambala ng mga tawag, o manatili nang malayo kapag ipinapalagay namin ang isa pang
Pasadyang Pinto na Pinalitaw na Bell ng Pinto .: 6 Mga Hakbang
Pasadyang Pinto na Pinalitaw na Bell ng Pinto .: Kumusta! Ang pangalan ko ay Justin, ako ay isang Junior sa high-school, at ipapakita sa iyo ng Instructable na ito kung paano gumawa ng isang doorbell na na-trigger kapag may isang taong umakyat sa iyong pintuan, at maaaring maging anumang tono o kanta na gusto mo! Dahil ang pintuan ng pintuan ay pinipigilan ang pinto
Trabaho Mula sa Katayuan ng Katayuan sa Bahay: 5 Mga Hakbang
Trabaho Mula sa Katayuan ng Katayuan sa Bahay: Sa kasalukuyang sitwasyon ng pagtatrabaho mula sa bahay, nakaharap ako sa ilang mga hamon dahil ang aking mga anak ay nag-aaral din mula sa bahay. Minsan ang pagtatrabaho at buhay ng pamilya ay maaaring maging medyo malabo. Kaya kailangan kong makapag-setup ng ilang mga alituntunin sa lupa kasama ang aking mga anak upang
Mga Awtomatikong Ilaw na Nakakonekta Sa Pagsubaybay sa Pinto at Pinto .: 5 Mga Hakbang
Ang mga Awtomatikong Ilaw ay Nakakonekta Sa Pagsubaybay sa Pinto at Pinto .: Tila napakahirap hanapin ang switch board sa madilim ngunit ang proyektong ito ay talagang kapaki-pakinabang upang malutas ang problemang ito. Sundin ang mga hakbang sa ibaba upang malaman ang solusyon dito
Mga Ilaw ng Tagapagpahiwatig ng Katayuan ng Banyo at Awtomatikong Paglipat: 4 Mga Hakbang (na may Mga Larawan)
Mga Ilaw ng Tagapagpahiwatig ng Kalagayan ng Banyo at Awtomatikong Paglipat: Ang proyektong ito ay gumagamit ng mga switch ng proximity at relay upang makontrol ang isang bangko ng mga ilaw ng tagapagpahiwatig. Ang mga ilaw ay nagpapahiwatig ng katayuan sa pananakop ng dalawang banyo. Suliranin: Dalawang solong banyo ng gumagamit - sa isang bahay na istilo ng dorm - ay ibinabahagi ng maraming tao, ngunit