Turinys:
- 1 žingsnis: atsisakymas
- 2 veiksmas: nustatykite nemokamą IFTTT paskyrą
- 3 žingsnis: sukurkite IFTTT programėlę
- 4 žingsnis: sukonfigūruokite „šią“savo programėlės dalį
- 5 veiksmas: pridėkite „WebHooks“paslaugą prie savo programėlės
- 6 veiksmas: nustatykite gavimo žiniatinklio užklausos aktyviklį
- 7 veiksmas: pateikite įvykio pavadinimą
- 8 veiksmas: sukonfigūruokite „tą“savo programėlės dalį
- 9 veiksmas: nustatykite veiksmų paslaugą
- 10 veiksmas: prisijunkite prie „Google“skaičiuoklių
- 11 veiksmas: pasirinkite veiksmą
- 12 veiksmas: nustatykite veiksmą
- 13 veiksmas: peržiūrėkite ir užbaikite savo programėlę
- 14 veiksmas: gaukite vėliau reikalingą konfigūracijos informaciją
- 15 veiksmas: pereikite prie API rakto „Webhooks“dokumentacijos
- 16 veiksmas: išsaugokite API raktą
- 17 žingsnis: Surinkite komponentus
- 18 žingsnis: Surinkite komponentus
- 19 veiksmas: parašykite „Arduino“kodą
- 20 žingsnis: Rezultatai
- 21 žingsnis: kreditai
Video: Durų ir temperatūros būsenos registravimo projektas: 21 žingsnis
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Ši instrukcija parodys, kaip padaryti paprastą durų ir temperatūros būsenos registratorių už mažiau nei 10,00 USD, naudojant ESP8266 „NodeMCU“, DHT11 temperatūros ir drėgmės jutiklį, durų/langų nendrių jungiklį, 10 K omų rezistorių ir tam tikrą prijungimo laidą.
Šio projekto pradžia kilo iš mano noro daugiau namų automatizuoti naudojant „Arduino“plokštę. Kadangi aš daug skaičiau apie „Arduino“suderinamą „EPS8266 NodeMCU“, nusprendžiau, kad ši plokštė bus tobula mažų kaštų plokštė, su kuria galima eksperimentuoti. Internete ieškodama namų automatizavimo projektų, naudodama ESP8266 plokštes, pirmam bandymui nusprendžiau derinti temperatūros ir durų būsenos registratorių. Galų gale šis projektas bus sujungtas su servo, drėgmės jutikliais ir kita elektronika, kad būtų automatizuotas mažas žalias namas, kurį mano senelis suprojektavo ir pastatė prieš 50 metų. Temperatūros jutiklis bus naudojamas nustatant, ar šildymo sistema turi būti įjungta ar išjungta, taip pat signalizuos servo sistemoms, kad prireikus atidarytų ir uždarytų ventiliacijos sistemą. Ventiliacijos sistemos būklė bus stebima naudojant magnetinius nendrinius jungiklius. Galiausiai drėgmės jutikliai bus naudojami laistymo sistemai automatizuoti.
1 žingsnis: atsisakymas
Tiesiog greitas atsisakymas pareikšti, kad mes neprisiimame jokios atsakomybės už viską, kas atsitinka laikantis šios instrukcijos. Kuriant bet ką visada geriausia vadovautis gamintojo instrukcijomis ir saugos lapais, todėl perskaitykite tuos dokumentus, kad sužinotumėte apie visas dalis ir įrankius, kuriuos naudojate kurdami savo. Mes tiesiog pateikiame informaciją apie veiksmus, kuriuos atlikome kurdami savo. Mes nesame profesionalai. Tiesą sakant, 2 iš 3 asmenų, dalyvavusių šioje statyboje, yra vaikai.
2 veiksmas: nustatykite nemokamą IFTTT paskyrą
Jei dar neturite, dabar pats laikas susikurti nemokamą IFTTT paskyrą, einant į jų pagrindinį puslapį. IFTTT reiškia „If This Then That“ir yra nemokama platforma, leidžianti naujomis priemonėmis prijungti interneto paslaugas kad galėtumėte pasinaudoti šiomis paslaugomis naujais būdais. Šiam projektui mes naudosime IFTTT, kad ESP8266 galėtų užregistruoti durų būseną per nendrinį jungiklį ir temperatūrą bei drėgmę per DHT11 jutiklį „Google“lakštų dokumente.
3 žingsnis: sukurkite IFTTT programėlę
Dar dirbdami IFTTT, eikite į skyrių „Mano programėlės“ir sukurkite naują programėlę spustelėdami mygtuką „Nauja programėlė“.
4 žingsnis: sukonfigūruokite „šią“savo programėlės dalį
Spustelėkite „šį“mėlyną žodį - kaip parodyta aukščiau esančiame paveikslėlyje.
5 veiksmas: pridėkite „WebHooks“paslaugą prie savo programėlės
Paieškos juostoje ieškokite paslaugos „Webhooks“ir pasirinkite „Webhooks“piktogramą.
Suradę „Webhooks“paslaugą, spustelėkite ją.
6 veiksmas: nustatykite gavimo žiniatinklio užklausos aktyviklį
Pasirinkite aktyviklį „Gauti žiniatinklio užklausą“.
7 veiksmas: pateikite įvykio pavadinimą
Teksto laukelyje nurodykite naują programėlę su įvykio pavadinimu. Aš pasirinkau „Duomenų kaupiklį“, bet jūs galite pasirinkti viską, kas jums patinka.
8 veiksmas: sukonfigūruokite „tą“savo programėlės dalį
Spustelėkite „tą“žodį, kuris yra mėlynos spalvos - kaip parodyta aukščiau esančiame paveikslėlyje.
9 veiksmas: nustatykite veiksmų paslaugą
Paieškos laukelyje ieškokite paslaugos „Google“skaičiuoklės “ir spustelėkite„ Google “skaičiuoklių piktogramą.
10 veiksmas: prisijunkite prie „Google“skaičiuoklių
Jei to dar nepadarėte, turėsite neprisijungti prie IFTTT paskyros prie „Google“skaičiuoklių. Paspauskite aukščiau parodytą mygtuką „Prisijungti“ir vykdykite ekrane pateikiamas instrukcijas.
11 veiksmas: pasirinkite veiksmą
Spustelėkite „Pridėti eilutę prie skaičiuoklės“.
12 veiksmas: nustatykite veiksmą
Teksto laukelyje „Skaičiuoklės pavadinimas“nurodykite pavadinimą. Siekdamas nuoseklumo, pasirenku naudoti „Data_Logger“. Palikite likusius nustatymus ramybėje (galite eksperimentuoti su kitais nustatymais kitu metu) ir paspauskite mygtuką „Sukurti veiksmą“ekrano apačioje.
13 veiksmas: peržiūrėkite ir užbaikite savo programėlę
Kai būsite patenkinti savo programėlės konfigūracija, paspauskite mygtuką „Baigti“.
14 veiksmas: gaukite vėliau reikalingą konfigūracijos informaciją
Spustelėkite „Webhooks“, kaip parodyta aukščiau.
15 veiksmas: pereikite prie API rakto „Webhooks“dokumentacijos
Tai gali atrodyti keista, bet spustelėkite nuorodą Dokumentacija viršutiniame dešiniajame kampe, kad pereitumėte į puslapį su savo unikaliu API raktu.
16 veiksmas: išsaugokite API raktą
Pirmoje dokumentacijos ekrano eilutėje rodomas jūsų unikalus API raktas. Nukopijuokite ir išsaugokite šį raktą, kad galėtumėte naudoti vėliau.
Taip pat gera idėja išbandyti programėlę čia. Nepamirškite pakeisti {event} į Data_Logger arba kaip pavadinote savo įvykį ir pridėti kai kuriuos duomenis prie 3 tuščių verčių, tada spustelėkite mygtuką „Išbandyti“puslapio apačioje. Turėtumėte pamatyti žalią pranešimą, kuriame sakoma: „Įvykis suaktyvintas“. Jei taip, eikite į „Google“dokumentus ir patvirtinkite, kad bandymo puslapyje įvesti duomenys buvo rodomi „Google“skaičiuoklių dokumente.
17 žingsnis: Surinkite komponentus
Jums reikės tik kelių dalių.
1) ESP8266 „NodeMcu“plėtros valdyba
2) DHT11 temperatūros/drėgmės jutiklis
3) Durų/langų jungiklis
4) 10k omų rezistorius
5) Prijungimo viela
18 žingsnis: Surinkite komponentus
1) Prijunkite vieną iš 3v3 kaiščio ESP8266 prie vcc kaiščio DHT11.
2) Prijunkite vieną iš ESP8266 įžeminimo kaiščių prie DHT11 įžeminimo kaiščio.
3) Prijunkite ESP8266 kaištį D4 (dar vadinamą IDE 2 kaiščiu) prie DHT11 duomenų kaiščio.
4) Prijunkite kitą 3v3 kaištį ant ESP8266 prie durų/langų nendrių jungiklio vienos pusės.
5) Prijunkite ESP8266 kaištį D5 (dar vadinamą 14 kaiščiu IDE) prie kitos durų/langų nendrių jungiklio pusės, taip pat prijunkite jį prie vienos 10k omų rezistoriaus pusės.
6) Kitą 10 kΩ rezistoriaus pusę prijunkite prie kito ESP8266 įžeminimo kaiščio.
Norėdami pasirinkti ESP8266 kaiščius, žiūrėkite šią naudingą diagramą arba labai naudingą vaizdo įrašą.
19 veiksmas: parašykite „Arduino“kodą
Nukopijuokite ir įklijuokite žemiau esantį kodą į „Arduino IDE“.
#įtraukti #įtraukti #įtraukti „DHT.h“
#define DHTPIN 2 // prie kokio skaitmeninio kaiščio esame prisijungę
#define DOORPIN 14 // koks skaitmeninis kaištis yra įjungtas durų jungiklis.
#define DHTTYPE DHT11 // DHT 11
DHT dht (DHTPIN, DHTTYPE);
int skaičius = 1;
const char* ssid = "some_ssid"; // pakeisk tai ir naudok savo ssid const char* password = "some_password"; // pakeiskite tai, kad naudotumėte savo slaptažodį int sleepTime = 100;
// „Webhooks IFaker“kūrėjas
const char* serveris = "maker.ifttt.com";
// IFTTT URL šaltinis
const char* resource = "/trigger/SOME_SERVICE_NAME/su/key/SOME_API_KEY"; // Būtinai naudokite savo paslaugos pavadinimą ir API raktą.
String doorStatus = "Uždarytas";
nepastovi bool stateChanged = false;
// Jei miegate valandas, nustatykite intervalą valandomis * 60 minučių * 60 sekundžių * 1000 milisekundžių
const ilgas intervalas = 1,0 * 60 * 60 * 1000; // 1 valanda nepasirašytas senas ankstesnisMillis = 0 - (2 * intervalas);
void setup () {
Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); „pinMode“(„DOORPIN“, „INPUT“); // Durų jutiklis dht.begin (); WiFi.begin (ssid, slaptažodis);
Serial.print ("\ nJungiamasi..");
while (WiFi.status ()! = WL_CONNECTED) {delay (1000); Serijinis atspaudas ("."); } Serial.print ("\ n"); }
void eventTriggered () {
stateChanged = tiesa; Serial.println ("Tikrina duris!"); if (digitalRead (DOORPIN) == HIGH) // Patikrinkite, ar durys atidarytos {Serial.println ("Durys uždarytos!"); doorStatus = "Uždaryta"; } else {Serial.println ("Durys atidarytos!"); doorStatus = "Atidaryta"; }}
void checkStatus () {
if (WiFi.status () == WL_CONNECTED) {// Patikrinkite „WiFi“ryšio būseną // Temperatūros ar drėgmės skaitymas trunka apie 250 milisekundžių! // Jutiklio rodmenys taip pat gali būti iki 2 sekundžių seno (jo labai lėtas jutiklis) float h = dht.readHumidity (); // Skaityti temperatūrą kaip Celsijų (numatytoji) float t = dht.readTemperature (); // Skaityti temperatūrą kaip Farenheitą (isFahrenheit = true) float f = dht.readTemperature (true); // Patikrinkite, ar nepavyko nuskaityti, ir išeikite anksčiau (bandykite dar kartą). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Nepavyko nuskaityti iš DHT jutiklio!"); // Serijos.spaudas ("."); // Nepavyko nuskaityti iš DHT jutiklio! grįžti; } // Apskaičiuoti šilumos indeksą Farenheitu (numatytasis) float hif = dht.computeHeatIndex (f, h); // Apskaičiuoti šilumos indeksą Celsijaus (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);
Serial.print ("\ n");
Serial.print ("Temperatūra:"); Serijinis atspaudas (f); Serial.print (" *F ("); Serial.print (t); Serial.print (" *C)"); Serial.print ("\ t"); Serial.print („Šilumos indeksas:“); Serijinis atspaudas (hif); Serial.print (" *F ("); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print („Drėgmė:“); Serijinis.println (h);
if (digitalRead (DOORPIN) == HIGH) // Patikrinkite, ar durys atidarytos
{Serial.println („Durys uždarytos!“); doorStatus = "Uždaryta"; } else {Serial.println ("Durys atidarytos!"); doorStatus = "Atidaryta"; } Styga jsonObject = Styga ("{" value1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" value2 / ": \" " + h +" / ", \" value3 / ": \" " + doorStatus +" / "}"; HTTP klientas 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 (); // Uždaryti ryšį
stateChanged = false;
int sleepTimeInMinutes = intervalas / 1000 /60; Serial.print ("\ n / nEik miegoti"); Serial.print (sleepTimeInMinutes); Serial.println ("minutė (s) …"); }}
void loop () {
nepasirašyta ilga srovėMillis = milis (); vėlavimas (4000); // Jei peržengėme prabėgusį laiką, tada priverskite patikrinti duris ir temp. if (currentMillis - previousMillis> = intervalas) {stateChanged = true; previousMillis = dabartinisMillis; Serial.print (skaičius ++); Serial.println (") Tikrinama dėl praleisto laiko!"); } else if (stateChanged) {Serial.print (skaičius ++); Serial.println (") Tikrinama dėl būsenos pasikeitimo!"); }
// Jei būsena pasikeitė, patikrinkite duris ir temp.
if (stateChanged) {checkStatus (); }
vėlavimas (miego laikas);
}
20 žingsnis: Rezultatai
Įkėlę šaltinio kodą atlikdami ankstesnį veiksmą, turėtumėte gauti tokius rezultatus, kaip parodyta aukščiau.
21 žingsnis: kreditai
„Random Nerd Tutorials“radau daug naudingų patarimų ir norėčiau jiems padėkoti už visą pagalbą. Ypač jų puiki pamoka apie ESP32 ESP8266 paskelbti jutiklių rodmenis „Google“skaičiuoklėse, kuriomis pagrįstos pagrindinės šios instrukcijos dalys.
Be to, „TheCircuit“DHT11 Instructable padėjo man suprasti, kaip naudoti šį labai nebrangų, bet įdomų mažą jutiklį.
Be to, yra daug vadovėlių, skirtų jūsų durų stebėjimui, pvz., „Garage Door Monitor“ir dar vienas iš „Random Nerd Tutorials“. Aš panaudojau jų gabalėlius, kad padėčiau suprasti, kaip tinkamai įjungti nendrių jungiklį.
Galiausiai, turėdamas šią informaciją ir kitą informaciją, kurią radau internete, galėjau sukurti mano poreikius atitinkančią sistemą. Tikiuosi, kad ši instrukcija jums bus naudinga ir sukursite vieną.
Rekomenduojamas:
Pagalbinis durų skambučio jungiklis: 21 žingsnis
Pagalbinis durų skambučio jungiklis: pagalbinis durų skambučio jungiklis yra pagalbinių technologijų, naudojančių kasdienes medžiagas, pavyzdys. Tai jungiklis, modifikuojantis įprastą durų skambučio jungiklį taip, kad specialiųjų poreikių turintys vaikai galėtų naudotis kasdieniais daiktais
Individualizuotas durų kilimėlis, įjungtas durų varpas: 6 žingsniai
Individualizuotas durų kilimėlis, įjungtas durų varpas: Sveiki! Mano vardas Justinas, aš esu jaunesnysis vidurinėje mokykloje, ir ši instrukcija parodys, kaip padaryti skambutį, kuris suveikia, kai kas nors užlipa ant jūsų durų kilimėlio, ir gali būti bet kokia melodija ar daina! Kadangi durų kilimėlis paleidžia duris
Garažo durų būsenos šviesos įsilaužimas: 3 žingsniai
Garažo durų būsenos šviesos įsilaužimas: gyvenu name, kuriame nėra lengva pamatyti, ar garažo durys atidarytos, ar uždarytos. Namuose turime mygtuką, bet durys nematomos. Mintis sukonstruoti kažkokį jungiklį ir maitinimo šaltinį buvo nepageidautina dėl aukšto
Pasukite laidinį durų skambutį į išmanųjį durų skambutį naudodami IFTTT: 8 žingsniai
Paverskite laidinį durų skambutį į išmanųjį durų skambutį naudodami IFTTT: „WiFi“durų skambutis paverčia esamą laidinį skambutį į išmanųjį durų skambutį. https://www.fireflyelectronix.com/product/wifidoor
Paverskite laidinį durų skambutį į išmanųjį durų skambutį su namų asistentu: 6 veiksmai
Paverskite laidinį durų skambutį į išmanųjį durų skambutį su namų asistentu: paverskite esamą laidinį durų skambutį išmaniuoju durų skambučiu. Gaukite pranešimą į savo telefoną arba susiekite su esama priekinių durų kamera, kad gautumėte įspėjimą apie nuotrauką ar vaizdo įrašą bet kuriuo metu, kai kas nors paskambins į jūsų durų skambutį. Sužinokite daugiau šiuo adresu: fireflyelectronix.com/pro