Tartalomjegyzék:
- 1. lépés: Jogi nyilatkozat
- 2. lépés: Ingyenes IFTTT -fiók beállítása
- 3. lépés: Hozzon létre egy IFTTT kisalkalmazást
- 4. lépés: Konfigurálja a kisalkalmazás "ezt" részét
- 5. lépés: Adja hozzá a WebHooks szolgáltatást kisalkalmazásához
- 6. lépés: Állítsa be a webes kérelem -aktiválót
- 7. lépés: Adjon meg egy eseménynevet
- 8. lépés: Állítsa be a kisalkalmazás "azt" részét
- 9. lépés: Állítson be egy cselekvési szolgáltatást
- 10. lépés: Csatlakozás a Google Táblázatokhoz
- 11. lépés: Válasszon egy műveletet
- 12. lépés: Állítsa be a műveletet
- 13. lépés: Tekintse át és véglegesítse kisalkalmazását
- 14. lépés: A szükséges konfigurációs információk lekérése
- 15. lépés: Folytassa az API -kulcs Webhooks dokumentációjával
- 16. lépés: Mentse az API -kulcsot
- 17. lépés: Gyűjtse össze az alkatrészeket
- 18. lépés: Szerelje össze az alkatrészeket
- 19. lépés: Írja be az Arduino kódot
- 20. lépés: Eredmények
- 21. lépés: Hitelek
Videó: Ajtó és hőmérséklet állapot naplózó projekt: 21 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Ez az utasítás bemutatja, hogyan készíthet egyszerű ajtó- és hőmérsékletállapot -regisztrálót 10,00 dollár alatt egy ESP8266 NodeMCU, egy DHT11 hőmérséklet- és páratartalom -érzékelő, egy ajtó/ablak nádkapcsoló, egy 10K ohmos ellenállás és néhány összekötő vezeték használatával.
Ennek a projektnek a keletkezése abból a vágyamból ered, hogy több otthoni automatizálást szeretnék végezni az Arduino táblával. Mivel sokat olvastam az Arduino -kompatibilis EPS8266 NodeMCU -ról, úgy döntöttem, hogy ez a tábla lesz a tökéletes olcsó tábla a kísérletezéshez. Miután az Interneten keresgéltem az otthoni automatizálási projekteket az ESP8266 táblák használatával, az első kísérletemnél a hőmérséklet és az ajtóállapot naplózó kombinálásával döntöttem. Végül ezt a projektet szervókkal, nedvességérzékelőkkel és más elektronikával kombinálják, hogy automatizálják egy kis zöld házat, amelyet nagyapám tervezett és épített 50 évvel ezelőtt. A hőmérséklet -érzékelővel határozzák meg, hogy a fűtési rendszert be kell -e kapcsolni vagy ki kell kapcsolni, valamint jelezni kell a szervókat, hogy szükség esetén nyissák ki és zárják be a szellőzőrendszert. A szellőzőrendszer állapotát a mágneses nádkapcsolókkal ellenőrzik. Végül a nedvességérzékelőket egy öntözőrendszer automatizálására használják.
1. lépés: Jogi nyilatkozat
Csak egy gyors lemondás annak megállapítására, hogy nem vállalunk felelősséget mindazért, ami ennek az utasításnak a követéséből következik. Mindig a legjobb, ha betartja a gyártó utasításait és biztonsági lapjait, amikor bármit épít, ezért kérjük, olvassa el ezeket a dokumentumokat a saját építéséhez használt alkatrészek és szerszámok tekintetében. Egyszerűen csak tájékoztatást nyújtunk azokról a lépésekről, amelyeket a sajátunk létrehozásához használtunk. Nem vagyunk profik. Valójában az építésben részt vevő személyek közül 3 -ból 2 gyermek.
2. lépés: Ingyenes IFTTT -fiók beállítása
Ha még nem rendelkezik ilyennel, akkor itt az ideje létrehozni egy ingyenes IFTTT -fiókot a honlapjukra lépve. lehetővé teszi, hogy ezeket a szolgáltatásokat új módon kihasználja. Ebben a projektben az IFTTT segítségével engedélyezzük az ESP8266 számára, hogy naplózzon egy ajtó állapotát egy nádkapcsolón keresztül, valamint a hőmérsékletet és páratartalmat a DHT11 érzékelőn keresztül a Google Sheets dokumentumban.
3. lépés: Hozzon létre egy IFTTT kisalkalmazást
Ha még IFTTT -ben van, lépjen a „Saját kisalkalmazások” szakaszba, és hozzon létre egy új kisalkalmazást az „Új kisalkalmazás” gombra kattintva.
4. lépés: Konfigurálja a kisalkalmazás "ezt" részét
Kattintson a kék színű „erre” szóra - amint azt a fenti ábra kiemeli.
5. lépés: Adja hozzá a WebHooks szolgáltatást kisalkalmazásához
A keresősávban keresse meg a „Webhooks” szolgáltatást, és válassza a Webhooks ikont.
Miután megtalálta a "Webhooks" szolgáltatást, kattintson rá.
6. lépés: Állítsa be a webes kérelem -aktiválót
Válassza a „Webes kérelem fogadása” aktiválási szabályt.
7. lépés: Adjon meg egy eseménynevet
A szövegmezőben adja meg az új kisalkalmazást az esemény nevével. Az "Adatgyűjtő" lehetőséget választottam, de választhat, amit szeretne.
8. lépés: Állítsa be a kisalkalmazás "azt" részét
Kattintson a kék színű „szó” szóra - amint azt a fenti ábra kiemeli.
9. lépés: Állítson be egy cselekvési szolgáltatást
A keresőmezőben keresse meg a „Google Táblázatok” szolgáltatást, majd kattintson a Google Táblázatok ikonra.
10. lépés: Csatlakozás a Google Táblázatokhoz
Ha még nem tette meg, nem kell csatlakoztatnia IFTTT -fiókját a Google Táblázatokhoz. Nyomja meg a fent látható Csatlakozás gombot, és kövesse a képernyőn megjelenő utasításokat.
11. lépés: Válasszon egy műveletet
Kattintson a "Sor hozzáadása a táblázathoz" gombra.
12. lépés: Állítsa be a műveletet
Adjon nevet a "Táblázat neve" szövegmezőben. A következetesség érdekében a "Data_Logger" lehetőséget választom. Hagyja békén a beállítás többi részét (máskor is kísérletezhet ezekkel a beállításokkal), majd nyomja meg a "Művelet létrehozása" gombot a képernyő alján.
13. lépés: Tekintse át és véglegesítse kisalkalmazását
Ha elégedett az applet konfigurációjával, nyomja meg a "Befejezés" gombot.
14. lépés: A szükséges konfigurációs információk lekérése
Kattintson a "Webhooks" elemre a fentiek szerint.
15. lépés: Folytassa az API -kulcs Webhooks dokumentációjával
Furcsának tűnhet, de kattintson a jobb felső sarokban található Dokumentáció linkre, hogy az egyedi API -kulccsal lépjen az oldalra.
16. lépés: Mentse az API -kulcsot
A Dokumentáció képernyő első sora az egyedi API -kulcsot jeleníti meg. Másolja és mentse ezt a kulcsot későbbi használatra.
Az appletet itt is érdemes kipróbálni. Ne felejtse el megváltoztatni az {event} értéket Data_Logger -re vagy bármire, amellyel az eseményt elnevezte, és adjon hozzá néhány adatot a 3 üres értékhez, majd kattintson a "Tesztelés" gombra az oldal alján. Látnia kell egy zöld üzenetet: „Az esemény aktiválódott”. Ha igen, folytassa a Google Dokumentumokkal, és győződjön meg arról, hogy a tesztoldalon megadott adatok megjelentek a Google Táblázatok dokumentumban.
17. lépés: Gyűjtse össze az alkatrészeket
Csak néhány alkatrészre lesz szüksége.
1) ESP8266 NodeMcu Fejlesztési Tanács
2) DHT11 hőmérséklet/páratartalom érzékelő
3) Ajtó/ablak Reed kapcsoló
4) 10 k ohmos ellenállás
5) Csatlakozó vezeték
18. lépés: Szerelje össze az alkatrészeket
1) Csatlakoztassa az ESP8266 3v3 -as érintkezőjének egyikét a DHT11 vcc -tűjéhez.
2) Csatlakoztassa az ESP8266 egyik földelőcsapját a DHT11 földelőcsapjához.
3) Csatlakoztassa az ESP8266 D4 -es érintkezőjét (más néven az IDE -ben lévő 2 -es tűt) a DHT11 -es adattüskéhez.
4) Csatlakoztasson egy másik 3v3 tűt az ESP8266 készüléken az ajtó/ablak nádkapcsoló egyik oldalához.
5) Csatlakoztassa az ESP8266 D5 -ös csapját (más néven az IDE -ben a 14 -es tűt) az ajtó/ablak nádkapcsoló másik oldalához, és csatlakoztassa a 10 k ohmos ellenállás egyik oldalához.
6) Csatlakoztassa a 10 k ohmos ellenállás másik oldalát az ESP8266 másik földelőcsapjához.
Az ESP8266 tűk kiválasztásához tekintse meg ezt a hasznos diagramot vagy a nagyon hasznos videót.
19. lépés: Írja be az Arduino kódot
Másolja ki és illessze be az alábbi kódot az Arduino IDE -be.
#befoglalás #befoglalás #befoglalás "DHT.h"
#define DHTPIN 2 // milyen digitális tűhöz vagyunk csatlakoztatva
#define DOORPIN 14 // milyen digitális csap az ajtókapcsoló.
#define DHTTYPE DHT11 // DHT 11
DHT dht (DHTPIN, DHTTYPE);
int count = 1;
const char* ssid = "valami_szid"; // ezt változtassa meg, hogy használja a ssid const char* password = "some_password"; // ezt változtassa meg jelszavának használatához int sleepTime = 100;
// Készítő Webhooks IFTTT
const char* szerver = "maker.ifttt.com";
// IFTTT URL -erőforrás
const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; // Győződjön meg róla, hogy a szolgáltatás nevét és az API -kulcsát használja.
String doorStatus = "Zárt";
illékony bool állapotChanged = false;
// Ha órákat alszik, akkor állítsa be az intervallumot órával * 60 perccel * 60 másodperccel * 1000 milliszekundummal
const hosszú intervallum = 1,0 * 60 * 60 * 1000; // 1 óra előjel nélküli hosszú előzőMillis = 0 - (2 * intervallum);
void setup () {
Sorozat.kezdet (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DOORPIN, INPUT); // Ajtóérzékelő dht.begin (); WiFi.begin (ssid, jelszó);
Serial.print ("\ nCsatlakozás..");
while (WiFi.status ()! = WL_CONNECTED) {delay (1000); Soros.nyomtatás ("."); } Serial.print ("\ n"); }
void eventTriggered () {
stateChanged = igaz; Serial.println ("Az ajtó ellenőrzése!"); if (digitalRead (DOORPIN) == HIGH) // Ellenőrizze, hogy az ajtó nyitva van -e {Serial.println ("Az ajtó zárva!"); doorStatus = "Zárva"; } else {Serial.println ("Ajtó nyitva!"); doorStatus = "Nyitva"; }}
void checkStatus () {
ha (WiFi.status () == WL_CONNECTED) {// A WiFi kapcsolat állapotának ellenőrzése // A hőmérséklet vagy páratartalom olvasása körülbelül 250 milliszekundumot vesz igénybe! // Az érzékelő leolvasása akár 2 másodperces "régi" is lehet (nagyon lassú érzékelő) float h = dht.readHumidity (); // A hőmérséklet olvasása Celsius -ban (alapértelmezett) float t = dht.readTemperature (); // A hőmérséklet leolvasása Fahrenheit (isFahrenheit = igaz) float f = dht.readTemperature (true); // Ellenőrizze, hogy valamelyik olvasás nem sikerült -e, és lépjen ki korán (újrapróbálkozáshoz). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Nem sikerült leolvasni a DHT érzékelőből!"); //Serial.print ("."); // Nem sikerült olvasni a DHT érzékelőből! Visszatérés; } // Hőindex kiszámítása Fahrenheitben (alapértelmezett) float hif = dht.computeHeatIndex (f, h); // Hőindex számítása Celsius -ban (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);
Serial.print ("\ n");
Serial.print ("Hőmérséklet:"); Sorozatnyomat (f); Sorozatnyomat (" *F ("); Soros.nyomtatás (t); Soros.nyomtatás (" *C)"); Serial.print ("\ t"); Serial.print ("Hőindex:"); Soros.nyomat (hif); Serial.print (" *F ("); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print ("Páratartalom:"); Soros.println (h);
if (digitalRead (DOORPIN) == HIGH) // Ellenőrizze, hogy az ajtó nyitva van -e
{Serial.println ("Az ajtó zárva!"); doorStatus = "Zárva"; } else {Serial.println ("Ajtó nyitva!"); doorStatus = "Nyitva"; } String jsonObject = Karakterlánc ("{" value1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" value2 / ": \" " + h +" / ", \" value3 / ": \" " + doorStatus +" / "}"; HTTPClient http; Karakterlánc completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (szerver); http.addHeader ("Content-Type", "application/json"); http. POST (jsonObject); http.writeToStream (& Serial); http.end (); // Kapcsolat bezárása
stateChanged = hamis;
int sleepTimeInMinutes = intervallum / 1000 /60; Serial.print ("\ n / nMenj aludni"); Serial.print (sleepTimeInMinutes); Serial.println ("perc (s) …"); }}
void loop () {
előjel nélküli hosszú áramMillis = millis (); késleltetés (4000); // Ha túlléptük az eltelt időt, akkor kényszerítsük az ajtó és a hőmérséklet ellenőrzését. if (currentMillis - previousMillis> = intervallum) {stateChanged = true; previousMillis = currentMillis; Soros.nyomtatás (szám ++); Serial.println (") Ellenőrzés az eltelt idő miatt!"); } else if (stateChanged) {Serial.print (count ++); Serial.println (") Ellenőrzés állapotváltozás miatt!"); }
// Ha az állapot megváltozott, ellenőrizze az ajtót és a hőmérsékletet.
if (stateChanged) {checkStatus (); }
késleltetés (elalvási idő);
}
20. lépés: Eredmények
Miután feltöltötte a forráskódot az előző lépésben, olyan eredményeket kell elérnie, mint a fenti példa.
21. lépés: Hitelek
Sok hasznos tippet és tippet találtam a Random Nerd Tutorials -ból, és szeretném megköszönni nekik a segítséget. Különösen az ESP32 -ről szóló kiváló oktatóanyaguk ESP8266 Érzékelői leolvasások közzététele a Google Táblázatokban, amelyek ezen útmutató részei alapulnak.
Ezenkívül a TheCircuit DHT11 Instructable segített megérteni, hogyan kell használni ezt a nagyon olcsó, de érdekes kis érzékelőt.
Ezenkívül számos oktatóanyag foglalkozik az ajtók megfigyelésével, mint például a garázskapu -monitor, és egy másik a Random Nerd Tutorials -ból. Ezek darabjait használtam fel, hogy megértsem, hogyan kell megfelelően működtetni a nádkapcsolómat.
Végül ezekkel az információkkal, valamint az Interneten talált egyéb részletekkel olyan rendszert tudtam létrehozni, amely megfelel az igényeimnek. Remélem, hasznosnak találja ezt az Instructable -t, és létrehoz egy sajátot.
Ajánlott:
Apró ESP8266 hőmérséklet -naplózó (Google Táblázatok): 15 lépés
Apró ESP8266 hőmérséklet -naplózó (Google Táblázatok): Ez egy útmutató arról, hogyan készíthet saját, teljesen apró WiFi -kompatibilis hőmérőt. Az ESP-01 modulon és a DS18B20 digitális hőmérséklet-érzékelőn alapul, egy szűk 3D nyomtatott tokba csomagolva, 200 mAh-s lítium akkumulátorral és mikroelemekkel
AtticTemp - Hőmérséklet / klíma naplózó: 10 lépés (képekkel)
AtticTemp - Hőmérséklet / klíma naplózó: Magas tűrésű hőmérsékletmérő és klímagyűjtő a padláson vagy más kültéri szerkezetekben
Hőmérséklet és páratartalom Internet naplózó kijelzővel ESP8266 használatával: 3 lépés
Hőmérséklet és páratartalom Internetes naplózó kijelzővel ESP8266 használatával: Szeretnék megosztani egy kis projektet, amely szerintem tetszeni fog. Ez egy kisméretű, tartós internetkapcsolatos hőmérséklet- és páratartalom -internetes naplózó kijelzővel. Ez naplózza az emoncms.org oldalra, és opcionálisan, akár helyileg egy Raspberry PI -re, akár saját emoncm -re
WiFi hőmérséklet naplózó (ESP8266 esetén): 11 lépés (képekkel)
WiFi hőmérséklet -naplózó (ESP8266 -mal): Üdvözlöm, örülök, hogy itt láthatom. Remélem, hogy ebben az oktatóanyagban hasznos információkat talál. Bátran küldjön nekem javaslatokat, kérdéseket, … Íme néhány alapvető adat és a projekt gyors áttekintése. Mobil felhasználóknak: Videó. Tudassa velem, hogy
Hőmérséklet -érzékelő / időjárási állapot: 9 lépés (képekkel)
Hőmérséklet-érzékelő / időjárás-állomás: Hozzon létre időjárás-állomást vagy hőmérséklet-figyelőt a nagyon hűvös digitális hőmérséklet-érzékelő DS1820 segítségével. Ezzel a beállítással kiszolgálószobát és időjárás-állomást figyelhetek. Ez a projekt a következőkből áll: Dallas 1 vezetékes buszhálózat Interfész RS- 232 és