Sisällysluettelo:
- Vaihe 1: Vastuuvapauslauseke
- Vaihe 2: Määritä ilmainen IFTTT -tili
- Vaihe 3: Luo IFTTT -sovelma
- Vaihe 4: Määritä sovelman "tämä" osa
- Vaihe 5: Lisää WebHooks -palvelu sovelmallesi
- Vaihe 6: Määritä Vastaanota verkkopyyntö -laukaisin
- Vaihe 7: Anna tapahtuman nimi
- Vaihe 8: Määritä sovelman "osa"
- Vaihe 9: Asenna toimintopalvelu
- Vaihe 10: Muodosta yhteys Google Sheetsiin
- Vaihe 11: Valitse toiminto
- Vaihe 12: Määritä toiminto
- Vaihe 13: Tarkista ja viimeistele sovelmasi
- Vaihe 14: Hae myöhemmin tarvittavat määritystiedot
- Vaihe 15: Siirry API -avaimen Webhooks -dokumentaatioon
- Vaihe 16: Tallenna sovellusliittymäavain
- Vaihe 17: Kerää komponentit
- Vaihe 18: Kokoa osat
- Vaihe 19: Kirjoita Arduino -koodi
- Vaihe 20: Tulokset
- Vaihe 21: Lainat
Video: Oven ja lämpötilan tilan kirjausprojekti: 21 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Tämä opastettava opastaa sinua tekemään yksinkertaisen oven ja lämpötilan tilastoinnin alle 10,00 dollarilla käyttämällä ESP8266 NodeMCU: ta, DHT11 -lämpötila- ja kosteusanturia, oven/ikkunan reed -kytkintä, 10 K ohmin vastusta ja joitakin kytkentäjohtoja.
Tämän projektin alkuperä syntyi halustani tehdä enemmän kotiautomaatiota Arduino -piirilevyllä. Kun olin etsinyt Internetistä kodin automaatiohankkeita ESP8266 -kortteja käyttäen, päätin yhdistää lämpötilan ja oven tilan kirjaajan ensimmäistä kertaa. Lopulta tämä projekti yhdistetään servojen, kosteusantureiden ja muun elektroniikan kanssa, jotta isoisäni suunnittelema ja rakentama pieni vihreä talo automatisoi 50 vuotta sitten. Lämpötila -anturia käytetään määrittämään, onko lämmitysjärjestelmä kytkettävä päälle tai pois päältä, sekä signaalin servojen avaamisesta ja sulkemisesta tarvittaessa. Tuuletusjärjestelmän tilaa seurataan magneettisilla reed -kytkimillä. Lopuksi kosteusantureita käytetään kastelujärjestelmän automatisointiin.
Vaihe 1: Vastuuvapauslauseke
Vain nopea vastuuvapauslauseke, jossa todetaan, ettemme ota mitään vastuuta mistään, mitä tapahtuu tämän ohjeen noudattamisen seurauksena. On aina parasta noudattaa valmistajan ohjeita ja käyttöturvallisuustietoja, kun rakennat mitään, joten tutustu näihin asiakirjoihin kaikista osista ja työkaluista, joita käytät oman rakentamiseen. Annamme vain tietoja vaiheista, joita käytimme omien luomiseen. Emme ole ammattilaisia. Itse asiassa kaksi kolmesta tähän rakentamiseen osallistuneista henkilöistä on lapsia.
Vaihe 2: Määritä ilmainen IFTTT -tili
Jos sinulla ei vielä ole tiliä, nyt on aika perustaa ilmainen IFTTT -tili siirtymällä heidän kotisivulleen. IFTTT tarkoittaa If This Then That ja on ilmainen alusta, jonka avulla voit yhdistää Internet -pohjaisia palveluja uusilla tavoilla voit hyödyntää näitä palveluita uusilla tavoilla. Tässä projektissa aiomme käyttää IFTTT: tä, jotta ESP8266 voi kirjata oven tilan ruokokytkimen kautta ja lämpötilan ja kosteuden DHT11 -anturin kautta Google Sheets -asiakirjaan.
Vaihe 3: Luo IFTTT -sovelma
Kun olet vielä IFTTT: ssä, siirry "Omat appletit" -osioon ja luo uusi sovelma napsauttamalla "Uusi appletti" -painiketta.
Vaihe 4: Määritä sovelman "tämä" osa
Napsauta "tätä" sanaa, joka on sinisellä värillä - kuten yllä olevassa kuvassa on korostettu.
Vaihe 5: Lisää WebHooks -palvelu sovelmallesi
Etsi hakupalkista Webhooks -palvelu ja valitse Webhooks -kuvake.
Kun olet löytänyt Webhooks -palvelun, napsauta sitä.
Vaihe 6: Määritä Vastaanota verkkopyyntö -laukaisin
Valitse Vastaanota verkkopyyntö -liipaisin.
Vaihe 7: Anna tapahtuman nimi
Kirjoita tekstiruutuun uudelle sovellesi tapahtuman nimi. Valitsin "Data Logger", mutta voit valita mitä haluat.
Vaihe 8: Määritä sovelman "osa"
Napsauta "tuota" sanaa, joka on sininen - kuten yllä olevassa kuvassa on korostettu.
Vaihe 9: Asenna toimintopalvelu
Etsi hakukentästä Google Sheets -palvelu ja napsauta Google Sheets -kuvaketta.
Vaihe 10: Muodosta yhteys Google Sheetsiin
Jos et ole jo tehnyt niin, sinun ei tarvitse yhdistää IFTTT -tiliäsi Google Sheetsiin. Paina yllä olevaa Yhdistä-painiketta ja noudata näytön ohjeita.
Vaihe 11: Valitse toiminto
Napsauta "Lisää rivi laskentataulukkoon".
Vaihe 12: Määritä toiminto
Anna nimi Laskentataulukon nimi -tekstikenttään. Päätän käyttää johdonmukaisuutta "Data_Logger". Jätä loput asetukset rauhaan (voit kokeilla näitä asetuksia toisinaan) ja paina sitten "Luo toiminto" -painiketta näytön alareunassa.
Vaihe 13: Tarkista ja viimeistele sovelmasi
Kun olet tyytyväinen sovelman määritykseen, paina "Valmis" -painiketta.
Vaihe 14: Hae myöhemmin tarvittavat määritystiedot
Napsauta "Webhooks", kuten yllä on korostettu.
Vaihe 15: Siirry API -avaimen Webhooks -dokumentaatioon
Se voi tuntua oudolta, mutta napsauta oikeassa yläkulmassa olevaa Dokumentaatio -linkkiä, niin pääset sivulle, jossa on ainutlaatuinen sovellusliittymäavaimesi.
Vaihe 16: Tallenna sovellusliittymäavain
Dokumentaationäytön ensimmäisellä rivillä näkyy yksilöllinen sovellusliittymäavaimesi. Kopioi ja tallenna tämä avain myöhempää käyttöä varten.
Sovellusta on myös hyvä testata täällä. Muista muuttaa {event} arvoksi Data_Logger tai mikä tahansa tapahtumasi nimi ja lisää joitakin tietoja kolmeen tyhjään arvoon ja napsauta sitten sivun alareunassa olevaa "Testaa" -painiketta. Näet vihreän viestin "Tapahtuma on käynnistetty". Jos näin on, siirry Google -dokumentteihin ja varmista, että testisivulle syöttämäsi tiedot näkyvät Google Sheets -asiakirjassa.
Vaihe 17: Kerää komponentit
Tarvitset vain muutaman osan.
1) ESP8266 NodeMcu -kehityslauta
2) DHT11 lämpötila-/kosteusanturi
3) Ovi/ikkuna Reed -kytkin
4) 10 k ohmin vastus
5) Liitäntäjohto
Vaihe 18: Kokoa osat
1) Kytke yksi ESP8266: n 3v3 -nastasta DHT11: n vcc -nastaan.
2) Liitä yksi ESP8266: n maadoitusliittimistä DHT11: n maadoitusnastaan.
3) Liitä ESP8266: n nasta D4 (eli nasta 2 IDE: ssä) DHT11: n datanastaan.
4) Liitä ESP8266: n toinen 3v3 -nastainen oven/ikkunan reed -kytkimen toiselle puolelle.
5) Kytke ESP8266: n nasta D5 (eli IDE: n nasta 14) oven/ikkunan reed -kytkimen toiselle puolelle ja myös 10 k ohmin vastuksen toiselle puolelle.
6) Liitä 10 k ohmin vastuksen toinen puoli toiseen ESP8266: n maadoitusnastaan.
Katso ESP8266 -nastavalinnat tästä hyödyllisestä kaaviosta tai erittäin hyödyllisestä videosta.
Vaihe 19: Kirjoita Arduino -koodi
Kopioi ja liitä alla oleva koodi Arduino IDE -laitteeseesi.
#Sisällytä #Sisällytä #Sisällytä "DHT.h"
#define DHTPIN 2 // mihin digitaaliseen nastaan olemme yhteydessä
#define DOORPIN 14 // mitä digitaalista tappia ovikytkin on päällä.
#define DHTTYPE DHT11 // DHT 11
DHT dht (DHTPIN, DHTTYPE);
int count = 1;
const char* ssid = "some_ssid"; // muuta tätä käyttämään ssid const char* password = "some_password"; // vaihda tämä käyttämään salasanaasi int sleepTime = 100;
// Maker Webhooks IFTTT
const char* palvelin = "maker.ifttt.com";
// IFTTT -URL -resurssi
const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; // Varmista, että käytät palvelunimeäsi ja api -avaintasi.
String doorStatus = "Suljettu";
haihtuva bool -tilaChanged = false;
// Jos nukut tuntikausia, aseta aikaväli tunniksi * 60 minuuttia * 60 sekuntia * 1000 millisekuntia
const pitkä väli = 1,0 * 60 * 60 * 1000; // 1 tunti allekirjoittamaton pitkä edellinenMillis = 0 - (2 * väli);
void setup () {
Sarja.alku (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DOORPIN, INPUT); // Ovianturi dht.begin (); WiFi.begin (ssid, salasana);
Serial.print ("\ nYhteys..");
while (WiFi.status ()! = WL_CONNECTED) {delay (1000); Serial.print ("."); } Serial.print ("\ n"); }
void eventTriggered () {
stateChanged = true; Serial.println ("Oven tarkistus!"); if (digitalRead (DOORPIN) == HIGH) // Tarkista onko ovi auki {Serial.println ("Ovi on kiinni!"); doorStatus = "Suljettu"; } else {Serial.println ("Ovi on auki!"); doorStatus = "Avattu"; }}
void checkStatus () {
jos (WiFi.status () == WL_CONNECTED) {// Tarkista WiFi -yhteyden tila // Lämpötilan tai kosteuden lukeminen kestää noin 250 millisekuntia! // Anturilukemat voivat olla jopa 2 sekuntia vanhoja (anturi on hyvin hidas) float h = dht.readHumidity (); // Lue lämpötila celsiusasteina (oletus) float t = dht.readTemperature (); // Lue lämpötila Fahrenheitina (isFahrenheit = true) float f = dht.readTemperature (true); // Tarkista, jos jokin lukeminen epäonnistui, ja poistu aikaisin (yritä uudelleen). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("DHT -anturin lukeminen epäonnistui!"); //Sarja.jälki ("."); // DHT -anturin lukeminen epäonnistui! palata; } // Laske lämpöindeksi Fahrenheit -asteina (oletus) float hif = dht.computeHeatIndex (f, h); // Laske lämpöindeksi celsiusasteina (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);
Serial.print ("\ n");
Serial.print ("Lämpötila:"); Sarjanjälki (f); Serial.print (" *F ("); Serial.print (t); Serial.print (" *C)"); Serial.print ("\ t"); Serial.print ("Lämpöindeksi:"); Sarjanjälki (hif); Serial.print (" *F ("); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print ("Kosteus:"); Sarja.println (h);
if (digitalRead (DOORPIN) == HIGH) // Tarkista onko ovi auki
{Serial.println ("Ovi on kiinni!"); doorStatus = "Suljettu"; } else {Serial.println ("Ovi on auki!"); doorStatus = "Avattu"; } Jono jsonObject = Jono ("{" value1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" value2 / ": \" " + h +" / ", \" value3 / ": \" " + doorStatus +" / "}"; HTTP -asiakas http; Merkkijono completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (palvelin); http.addHeader ("Content-Type", "application/json"); http. POST (jsonObject); http.writeToStream (& Serial); http.end (); // Sulje yhteys
stateChanged = false;
int sleepTimeInMinutes = interval / 1000 /60; Serial.print ("\ n / nMene nukkumaan"); Serial.print (sleepTimeInMinutes); Serial.println ("minuutti (t) …"); }}
void loop () {
allekirjoittamaton pitkävirtaMillis = millis (); viive (4000); // Jos ylitimme kuluneen ajan, pakota ovi ja lämpötila tarkistamaan. if (currentMillis - previousMillis> = intervalli) {stateChanged = true; previousMillis = currentMillis; Sarjanjälki (määrä ++); Serial.println (") Tarkistetaan kuluneen ajan takia!"); } else if (stateChanged) {Serial.print (count ++); Serial.println (") Tarkistetaan tilanmuutoksen vuoksi!"); }
// Jos tila muuttuu, tarkista ovi ja lämpötila.
if (stateChanged) {checkStatus (); }
viive (uniaika);
}
Vaihe 20: Tulokset
Kun olet lähettänyt lähdekoodin edellisessä vaiheessa, saat yllä olevan esimerkin kaltaisia tuloksia.
Vaihe 21: Lainat
Löysin paljon hyödyllisiä vihjeitä ja vinkkejä Random Nerd -opetusohjelmista ja haluaisin kiittää heitä kaikesta avusta. Erityisesti heidän erinomainen ESP32 -opetusohjelmansa ESP8266 Julkaise anturilukemat Google Sheetsiin, joihin tämän ohjeen suuret osat perustuvat.
Lisäksi TheCircuitin DHT11 Instructable auttoi minua ymmärtämään, kuinka käyttää tätä erittäin halpaa, mutta mielenkiintoista pientä anturia.
Lisäksi on monia opetusohjelmia, jotka käsittelevät ovien valvontaa, kuten Garage Door Monitor ja toinen Random Nerd Tutorialsista. Käytin niistä palasia auttaakseni ymmärtämään, miten saan reed -kytkimen toimimaan oikein.
Lopuksi näiden tietojen ja muiden Internetistä löytämieni tietojen avulla pystyin luomaan tarpeitani vastaavan järjestelmän. Toivottavasti pidät tätä Instructablea hyödyllisenä ja rakennat oman.
Suositeltava:
Perheen / työtoverin tilan ilmaisin: 6 vaihetta (kuvilla)
Perhe / työtoverin tilan indikaattori: Ensimmäinen Instructable, monet projektit ovat auttaneet minua vuosien varrella, toivottavasti tämä auttaa jotakuta muuta. Lyhyt tarina … Tarvitsimme tavan näyttää toisillemme asemamme sen sijaan, että keskeyttäisimme puhelut tai pysyisimme poissa, kun oletamme toisen
Itseoppiva sokkelorapurobotti PROTOTYYPPI 1 TILAN VAATIMUS: 11 vaihetta
Itseoppiva sokkelorapurobotti PROTOTYYPPI 1 TILAN VAATIMUS: VASTUUVAPAUSLAUSEKE !!: Hei, pahoittelen huonoja kuvia, lisään myöhemmin lisää ohjeita ja kaavioita (ja tarkempia tietoja. En dokumentoinut prosessia (sen sijaan tein vain time lapse video). Myös tämä ohje on epätäydellinen, kuten tein
Työskentele kotona -tilan ilmaisin: 5 vaihetta
Työskentely kotoa -tilan indikaattori: Nykyisessä tilanteessa, jossa työskentelen kotona, kohtaan joitain haasteita, koska lapseni opiskelevat myös kotoa. Joskus työ- ja perhe -elämä voi olla hieman hämärää. Joten minun on pystyttävä asettamaan joitakin perussääntöjä lasteni kanssa
ESP8266 Nodemcu -lämpötilan valvonta DHT11: n avulla paikallisessa verkkopalvelimessa - Saat huoneen lämpötilan ja kosteuden selaimeesi: 6 vaihetta
ESP8266 Nodemcu -lämpötilan valvonta DHT11: n avulla paikallisessa verkkopalvelimessa | Saat huoneen lämpötilan ja kosteuden selaimeesi: Hei kaverit tänään, teemme kosteutta & lämpötilan valvontajärjestelmä ESP 8266 NODEMCU & DHT11 lämpötila -anturi. Lämpötila ja kosteus saadaan DHT11 Sensor & selaimesta näkyy, mitä verkkosivua hallitaan
Automaattiset valot yhdistettynä oven ja oven valvontaan: 5 vaihetta
Automaattiset valot yhdistettynä oven ja oven valvontaan .: Kytkinkortin löytäminen pimeässä näyttää olevan erittäin vaikeaa, mutta tämä projekti on todella hyödyllinen tämän ongelman ratkaisemiseksi. Noudata alla olevia ohjeita tietääksesi ratkaisun tähän