Բովանդակություն:
- Քայլ 1: Հրաժարում
- Քայլ 2: Ստեղծեք անվճար IFTTT հաշիվ
- Քայլ 3: Ստեղծեք IFTTT հավելված
- Քայլ 4: Կարգավորեք ձեր հավելվածի «այս» մասը:
- Քայլ 5: Ավելացրեք WebHooks ծառայությունը ձեր հավելվածին:
- Քայլ 6. Կարգավորեք Receive a Web Request Trigger- ը:
- Քայլ 7: Տրամադրեք իրադարձության անուն
- Քայլ 8: Կարգավորեք ձեր հավելվածի «այդ» մասը:
- Քայլ 9: Ստեղծեք գործողությունների ծառայություն
- Քայլ 10: Միացեք Google Աղյուսակներին
- Քայլ 11: Ընտրեք գործողություն
- Քայլ 12: Կարգավորեք գործողությունը
- Քայլ 13. Վերանայեք և վերջացրեք ձեր ապլետը:
- Քայլ 14: Առբերեք հետագայում անհրաժեշտ կազմաձևման տեղեկատվությունը:
- Քայլ 15. Շարունակեք դեպի API բանալու Webhooks փաստաթղթերը
- Քայլ 16: Պահեք API բանալին
- Քայլ 17: Հավաքեք բաղադրիչները
- Քայլ 18: Հավաքեք բաղադրիչները
- Քայլ 19. Գրեք Arduino ծածկագիրը
- Քայլ 20: Արդյունքներ
- Քայլ 21. Վարկեր
Video: Դռների և ջերմաստիճանի կարգավիճակի անտառահատման նախագիծ. 21 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Այս Instructable- ը ձեզ ցույց կտա, թե ինչպես կարելի է դռան և ջերմաստիճանի կարգավիճակի անտառահատիչ պատրաստել $ 10,00 -ից ցածր արժեքով ՝ օգտագործելով ESP8266 NodeMCU, DHT11 ջերմաստիճանի և խոնավության տվիչ, դռան/պատուհանի եղեգի անջատիչ, 10K Օմ ռեզիստոր և միացման մետաղալար:
Այս նախագծի ծագումը բխեց Arduino տախտակի հետ ավելի շատ տան ավտոմատացում կատարելու իմ ցանկությունից, քանի որ ես շատ էի կարդում Arduino- ի հետ համատեղելի EPS8266 NodeMCU- ի մասին, որոշեցի, որ այս տախտակը կատարյալ էժան տախտակ կլինի փորձեր անելու համար: ESP8266 տախտակների միջոցով ինտերնետում տան ավտոմատացման նախագծեր որոնելուց հետո, ես որոշեցի ջերմաստիճանի և դռների կարգավիճակի անտառահատիչը համատեղել իմ առաջին փորձի համար: Ի վերջո, այս նախագիծը կհամադրվի սերվոների, խոնավության տվիչների և այլ էլեկտրոնիկայի հետ `ավտոմատացնելու համար իմ պապիկիս նախագծած և կառուցված փոքր ջերմոցը 50 տարի առաջ: Temperatureերմաստիճանի տվիչը կօգտագործվի `որոշելու, թե արդյոք ջեռուցման համակարգը պետք է միացված կամ անջատված լինի, ինչպես նաև ազդանշան է տալիս սերվերին` անհրաժեշտության դեպքում բացել և փակել օդափոխման համակարգը: Օդափոխման համակարգի վիճակը վերահսկվելու է մագնիսական եղեգի անջատիչների օգտագործմամբ: Ի վերջո, խոնավության տվիչները կօգտագործվեն ջրամատակարարման համակարգը ավտոմատացնելու համար:
Քայլ 1: Հրաժարում
Պարզապես արագ հերքում `նշելու, որ մենք պատասխանատվություն չենք կրում այն ամենի համար, ինչ տեղի է ունենում այս հրահանգին հետևելու արդյունքում: Anythingանկացած բան կառուցելիս միշտ ավելի լավ է հետևել արտադրողի հրահանգներին և անվտանգության թերթիկներին, ուստի խնդրում ենք խորհրդակցել այդ փաստաթղթերի հետ ՝ ձեր սեփականը կառուցելու համար օգտագործվող մասերից և գործիքներից որևէ մեկի համար: Մենք պարզապես տեղեկատվություն ենք տրամադրում այն քայլերի մասին, որոնք մենք օգտագործել ենք մերը ստեղծելու համար: Մենք պրոֆեսիոնալ չենք: Փաստորեն, այս շինարարությանը մասնակցած անհատներից 3 -ից 2 -ը երեխաներ են:
Քայլ 2: Ստեղծեք անվճար IFTTT հաշիվ
Եթե դեռ չունեք, այժմ ժամանակն է անվճար IFTTT հաշիվ ստեղծելու համար ՝ այցելելով նրանց գլխավոր էջ: հնարավորություն կտա նոր եղանակներով օգտվել այդ ծառայություններից: Այս նախագծի համար մենք պատրաստվում ենք օգտագործել IFTTT- ը ՝ ESP8266- ին թույլ տալու համար մուտքագրել դուռի կարգավիճակը եղեգի անջատիչի միջոցով, իսկ ջերմաստիճանը և խոնավությունը ՝ DHT11 սենսորի միջոցով Google Sheets փաստաթղթում:
Քայլ 3: Ստեղծեք IFTTT հավելված
Մինչ դեռ IFTTT- ում եք, անցեք «Իմ ապլետներ» բաժինը և ստեղծեք նոր հավելված ՝ կտտացնելով «Նոր հավելված» կոճակին:
Քայլ 4: Կարգավորեք ձեր հավելվածի «այս» մասը:
Կտտացրեք կապույտ գույնի «այս» բառի վրա, ինչպես նշված է վերևի նկարում:
Քայլ 5: Ավելացրեք WebHooks ծառայությունը ձեր հավելվածին:
Որոնման տողում որոնեք «Webhooks» ծառայությունը և ընտրեք Webhooks պատկերակը:
Երբ գտնեք «Webhooks» ծառայությունը, կտտացրեք դրա վրա:
Քայլ 6. Կարգավորեք Receive a Web Request Trigger- ը:
Ընտրեք «Ստացեք վեբ հարցման» ձգան:
Քայլ 7: Տրամադրեք իրադարձության անուն
Տեքստային դաշտում նշեք ձեր նոր հավելվածին իրադարձության անուն: Ես ընտրել եմ «Data Logger» - ը, բայց դուք կարող եք ընտրել այն, ինչ ցանկանում եք:
Քայլ 8: Կարգավորեք ձեր հավելվածի «այդ» մասը:
Կտտացրեք կապույտ գույնի «այդ» բառի վրա, ինչպես նշված է վերևի նկարում:
Քայլ 9: Ստեղծեք գործողությունների ծառայություն
Որոնման դաշտում որոնեք «Google Աղյուսակներ» ծառայությունը և կտտացրեք Google Աղյուսակների պատկերակին:
Քայլ 10: Միացեք Google Աղյուսակներին
Եթե դա դեռ չեք արել, ապա ձեզ հարկավոր կլինի ձեր IFTTT հաշիվը միացնել Google Աղյուսակներին: Սեղմեք վերևում ցուցադրված «Միացում» կոճակը և հետևեք էկրանին տրված հրահանգներին:
Քայլ 11: Ընտրեք գործողություն
Կտտացրեք «Ավելացնել տող աղյուսակին»:
Քայլ 12: Կարգավորեք գործողությունը
Նշեք անունը «Աղյուսակի անուն» տեքստային դաշտում: Ես ընտրում եմ օգտագործել «Data_Logger» - ը հետևողականության համար: Մնացած պարամետրը հանգիստ թողեք (կարող եք փորձարկել այդ կարգավորումները մեկ այլ ժամանակ) և այնուհետև սեղմեք «Ստեղծել գործողություն» կոճակը էկրանի ներքևում:
Քայլ 13. Վերանայեք և վերջացրեք ձեր ապլետը:
Ապլետի կազմաձևումից բավարարվելուց հետո կտտացրեք «Ավարտել» կոճակին:
Քայլ 14: Առբերեք հետագայում անհրաժեշտ կազմաձևման տեղեկատվությունը:
Կտտացրեք «Webhooks» - ին, ինչպես նշված է վերևում:
Քայլ 15. Շարունակեք դեպի API բանալու Webhooks փաստաթղթերը
Կարող է տարօրինակ թվալ, բայց կտտացրեք վերևի աջ մասում գտնվող Փաստաթղթերի հղմանը ՝ ձեր եզակի API բանալիով էջ անցնելու համար:
Քայլ 16: Պահեք API բանալին
Փաստաթղթավորման էկրանի առաջին տողում ցուցադրվում է ձեր եզակի API բանալին: Պատճենեք և պահեք այս բանալին հետագայում օգտագործելու համար:
Նաև լավ գաղափար է, որ ապլետը փորձարկվի այստեղ: Հիշեք, որ {իրադարձությունը} փոխեք Data_Logger- ի կամ ինչ էլ որ անվանեք ձեր իրադարձությանը և որոշ տվյալներ ավելացրեք 3 դատարկ արժեքներին, այնուհետև կտտացրեք «Փորձարկել այն» կոճակին ՝ էջի ներքևում: Դուք պետք է տեսնեք կանաչ հաղորդագրություն, որն ասում է «Միջոցառումը գործարկվել է»: Եթե այո, անցեք Google Փաստաթղթեր և հաստատեք, որ փորձնական էջում մուտքագրված տվյալները ցուցադրվել են Google Աղյուսակների փաստաթղթում:
Քայլ 17: Հավաքեք բաղադրիչները
Ձեզ հարկավոր է ընդամենը մի քանի մաս:
1) ESP8266 NodeMcu զարգացման խորհուրդ
2) DHT11 ջերմաստիճանի/խոնավության ցուցիչ
3) դռան/պատուհանի եղեգի անջատիչ
4) 10k Օմ դիմադրություն
5) միացման մետաղալար
Քայլ 18: Հավաքեք բաղադրիչները
1) ESP8266- ի 3v3 կապից մեկը միացրեք DHT11- ի vcc կապին:
2) ESP8266- ի գրունտային կապումներից մեկը միացրեք DHT11- ի գետնին:
3) Միացրեք ESP8266- ի D4 կապը (a.k.a. pin 2 IDE- ում) DHT11- ի տվյալների պինին:
4) ESP8266- ի մեկ այլ 3v3 կապը միացրեք դռան/պատուհանի եղեգի անջատիչի մի կողմին:
5) Միացրեք E58266- ի E5866- ի D5 (a.k.a. pin 14) դռան/պատուհանի եղեգի անջատիչի մյուս կողմը և միացրեք այն նաև 10k Օմ դիմադրության մի կողմին:
6) 10k ohm դիմադրության մյուս կողմը միացրեք ESP8266- ի մեկ այլ հիմնային քորոցին:
ESP8266 քորոցների ընտրության համար դիմեք այս օգտակար դիագրամին կամ շատ օգտակար տեսանյութին:
Քայլ 19. Գրեք Arduino ծածկագիրը
Պատճենեք և տեղադրեք ստորև նշված կոդը ձեր Arduino IDE- ում:
#ներառել #ներառել #ներառել «DHT.h»
#սահմանեք DHTPIN 2 // ինչ թվային կապի հետ ենք կապված
#define DOORPIN 14 // դուռի անջատիչն ինչ թվային կապի վրա է:
#սահմանեք DHTTYPE DHT11 // DHT 11
DHT dht (DHTPIN, DHTTYPE);
int հաշվարկ = 1;
const char* ssid = "some_ssid"; // փոխել սա ՝ ձեր ssid const char* գաղտնաբառ = "some_password" օգտագործելու համար; // փոխեք սա, որպեսզի օգտագործեք ձեր գաղտնաբառը int sleepTime = 100;
// Maker Webhooks IFTTT
const char* սերվեր = "maker.ifttt.com";
// IFTTT URL ռեսուրս
const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; // Համոզվեք, որ օգտագործեք ձեր ծառայության անունը և ձեր api բանալին:
Լարային դուռStatus = "Փակ է";
ցնդող bool stateChanged = false;
// Եթե ժամեր եք քնում, ապա միջակայքը սահմանեք ժամ * 60 րոպե * 60 վայրկյան * 1000 միլիվայրկյան
const երկար ընդմիջում = 1.0 * 60 * 60 * 1000; // 1 ժամ անստորագիր երկար նախորդ Միլիս = 0 - (2 * ընդմիջում);
void setup () {
Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DOORPIN, INPUT); // Դռների ցուցիչ dht.begin (); WiFi.begin (ssid, գաղտնաբառ);
Serial.print ("\ n Միացում..");
while (WiFi.status ()! = WL_CONNECTED) {ուշացում (1000); Serial.print ("."); } Serial.print ("\ n"); }
void eventTriggered () {
stateChanged = ճշմարիտ; Serial.println («Ստուգում է դուռը»); if (digitalRead (DOORPIN) == HIGH) // Ստուգեք, արդյոք դուռը բաց է {Serial.println («Դուռը փակ է»); doorStatus = "Փակ է"; } else {Serial.println («Դուռը բաց է»); doorStatus = "Բացված"; }}
void checkStatus () {
եթե (WiFi.status () == WL_CONNECTED) {// Ստուգեք WiFi կապի կարգավիճակը // Ընթերցման ջերմաստիճանը կամ խոնավությունը տևում է մոտ 250 միլիվայրկյան: // Սենսորների ընթերցումները կարող են լինել նաև մինչև 2 վայրկյան «հին» (դա շատ դանդաղ սենսոր է) float h = dht.readHumidity (); // Կարդացեք ջերմաստիճանը որպես Celsius (կանխադրված) float t = dht.readTemperature (); // Կարդացեք ջերմաստիճանը որպես Ֆարենհայտ (isFahrenheit = true) float f = dht.readTemperature (true); // Ստուգեք, եթե որևէ ընթերցում ձախողվեց և շուտ դուրս եկեք (նորից փորձելու համար): if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Չհաջողվեց կարդալ DHT սենսորից!"); //Serial.print ("."); // Չհաջողվեց կարդալ DHT սենսորից: վերադարձ; } // Հաշվել ջերմության ինդեքսը Ֆարենհեյթում (կանխադրված) float hif = dht.computeHeatIndex (f, h); // heatելսիուսի ջերմաստիճանի հաշվարկ (isFahreheit = կեղծ) float hic = dht.computeHeatIndex (t, h, false);
Serial.print ("\ n");
Serial.print ("Temերմաստիճանը."); Serial.print (f); Serial.print (" *F ("); Serial.print (t); Serial.print (" *C)"); Serial.print ("\ t"); Serial.print («atերմության ինդեքս.»); Serial.print (hif); Serial.print (" *F ("); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print ("Խոնավություն."); Serial.println (h);
if (digitalRead (DOORPIN) == HIGH) // Ստուգեք, արդյոք դուռը բաց է
{Serial.println («Դուռը փակ է»); doorStatus = "Փակ է"; } else {Serial.println («Դուռը բաց է»); doorStatus = "Բացված"; } String jsonObject = Լար ("{" արժեք 1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" value2 / ": \" " + h +" / ", \" value3 / ": \" " + doorStatus +" / "}"; HTTPClient http; Լարը ամբողջականUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (ամբողջականUrl); // http.begin (սերվեր); http.addHeader («Բովանդակության տեսակ», «ծրագիր/json»); http. POST (jsonObject); http.writeToStream (և սերիական); http.end (); // Փակել կապը
stateChanged = կեղծ;
int sleepTimeInMinutes = ընդմիջում / 1000/60; Serial.print ("\ n / n Գնացեք քնելու համար"); Serial.print (sleepTimeInMinutes); Serial.println («րոպե (ներ) …»); }}
դատարկ շրջան () {
անստորագիր երկար հոսանք Millis = millis (); ուշացում (4000); // Եթե մենք գերազանցեցինք անցած ժամանակը, ապա ստիպեք ստուգել դուռը և ջերմաստիճանը: if (currentMillis - previousMillis> = ընդմիջում) {stateChanged = true; նախորդ Միլիս = ընթացիկ Միլիս; Serial.print (հաշվարկ ++); Serial.println (") Ստուգում անցած ժամանակի պատճառով"); } else if (stateChanged) {Serial.print (count ++); Serial.println (") Ստուգում պետական փոփոխության պատճառով"); }
// Եթե վիճակը փոխվել է, ապա ստուգեք դուռը և ջերմաստիճանը:
if (stateChanged) {checkStatus (); }
ուշացում (քնի ժամ);
}
Քայլ 20: Արդյունքներ
Նախորդ քայլի սկզբնական կոդը վերբեռնելուց հետո դուք պետք է ունենաք արդյունքներ, ինչպես օրինակ վերը նշված օրինակը:
Քայլ 21. Վարկեր
Ես գտա բազմաթիվ օգտակար հուշումներ և խորհուրդներ Random Nerd Tutorials- ից և կցանկանայի շնորհակալություն հայտնել նրանց իրենց բոլոր օգնության համար: Հատկապես նրանց գերազանց ձեռնարկը ESP32 ESP8266- ում Google Sheets- ում հրապարակել սենսորային ընթերցումներ, որոնց վրա հիմնված են այս հրահանգի հիմնական հատվածները:
Բացի այդ, TheCircuit- ի DHT11 Instructable- ն ինձ օգնեց հասկանալ, թե ինչպես օգտագործել այս շատ էժան, բայց հետաքրքիր փոքրիկ սենսորը:
Ավելին, կան բազմաթիվ ձեռնարկներ, որոնք զբաղվում են ձեր դռների մոնիտորինգով, ինչպես Ավտոտնակի դռների մոնիտորը և մեկ ուրիշը ՝ Պատահական ներդաշնակ ձեռնարկներից: Ես օգտագործեցի դրանց պատառիկներն ու կտորները, որոնք կօգնեն ինձ հասկանալ, թե ինչպես պետք է իմ եղեգի անջատիչը ճիշտ աշխատի:
Ի վերջո, այս տեղեկատվության, ինչպես նաև ինտերնետի շուրջ գտած այլ մանրամասների շնորհիվ ես կարողացա ստեղծել մի համակարգ, որը բավարարում էր իմ կարիքները: Հուսով եմ, որ այս Instructable- ը օգտակար կգտնեք և ստեղծեք ձեր սեփականը:
Խորհուրդ ենք տալիս:
Տվյալների անտառահատ - Անտառահատման համակարգչային մոդուլ `5 քայլ
Data Logger - Logging Computer Module: Ethernet data logger for HTTP based data collection for Sensor Bridges that convert I2C interfaced sensor to Ethernet sensor
DIY անտառահատման ջերմաչափ 2 սենսորով. 3 քայլ (նկարներով)
DIY անտառահատման ջերմաչափ 2 սենսորով. Այս նախագիծը իմ նախորդ նախագծի կատարելագործումն է `« DIY անտառահատումների ջերմաչափ »: Այն գրանցում է ջերմաստիճանի չափումները միկրո SD քարտի վրա: Սարքաշարի փոփոխություններ Ես իրական ժամանակի ժամացույցի մոդուլին ավելացրեցի DS18B20 ջերմաստիճանի տվիչ, որտեղ առկա է
Ինչպես օգտագործել DHT11 ջերմաստիճանի տվիչը Arduino- ով և տպման ջերմաստիճանի ջերմություն և խոնավություն. 5 քայլ
Ինչպես օգտագործել DHT11 ջերմաստիճանի տվիչը Arduino- ի և տպման ջերմաստիճանի ջերմության և խոնավության հետ. DHT11 տվիչը օգտագործվում է ջերմաստիճանը և խոնավությունը չափելու համար: Նրանք շատ սիրված էլեկտրոնիկայի սիրահարներ են: DHT11 խոնավության և ջերմաստիճանի տվիչը իսկապես հեշտացնում է խոնավության և ջերմաստիճանի տվյալները ձեր DIY էլեկտրոնիկայի նախագծերին ավելացնելը: Այն ըստ
10 հիմնական Arduino նախագիծ սկսնակների համար: Կատարեք առնվազն 15 նախագիծ մեկ տախտակով: 6 քայլ
10 հիմնական Arduino նախագիծ սկսնակների համար: Կատարեք առնվազն 15 նախագիծ մեկ տախտակով: Arduino Project & Ուսուցողական խորհուրդ; Ներառում է 10 հիմնական Arduino նախագիծ: Բոլոր կոդերը, Gerber ֆայլը և այլն: Ոչ SMD! Հեշտ զոդում բոլորի համար: Հեշտ շարժական և փոխարինելի բաղադրիչներ: Դուք կարող եք կատարել առնվազն 15 նախագիծ մեկ բո
Դռների և դռների մոնիտորինգի հետ կապված ավտոմատ լույսեր. 5 քայլ
Դռների և դռների մոնիտորինգի հետ կապված ավտոմատ լույսեր. Հետեւեք ստորեւ բերված քայլերին ՝ այս լուծումը իմանալու համար