Բովանդակություն:
- Պարագաներ
- Քայլ 1: Չափել ջերմաստիճանը և խոնավությունը
- Քայլ 2: Ստեղծեք և կազմաձևեք նախագիծ
- Քայլ 3: Տեղադրեք գրադարաններ
- Քայլ 4. Միացրեք DHT11 տվիչ
- Քայլ 5: Տվյալների ուղարկում ամպին
- Քայլ 6: Ախտորոշում
- Քայլ 7: Սկսեք և կարգաբերեք նախագիծը
- Քայլ 8: Վահանակի կազմաձևում
- Քայլ 9: Եզրակացություն
Video: DHT11/DHT22 տվիչի ամպին միացում ESP8266- ի վրա հիմնված տախտակի միջոցով. 9 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Նախորդ հոդվածում ես ESP8266- ի վրա հիմնված NodeMCU խորհուրդը միացրեցի Cloud4RPi ծառայությանը: Հիմա, իսկական նախագծի ժամանակն է:
Պարագաներ
Սարքավորման պահանջներ.
- ESP8266 չիպի վրա հիմնված ցանկացած տախտակ (օրինակ ՝ NodeMCU)
- DHT11 կամ DHT22 սենսոր
Softwareրագրային ապահովում և ծառայություններ.
- DHT տվիչների գրադարան Adafruit - v1.3.7
- Adafruit Unified Sensor - v1.0.3
- cloud4rpi-esp-arduino-v0.1.0
- Cloud4RPI - IoT սարքերի ամպի կառավարման վահանակ
- PlatformIO IDE VSCode- ի համար
Քայլ 1: Չափել ջերմաստիճանը և խոնավությունը
Ես արդեն ունեի DHT11 սենսոր, ուստի որոշեցի այն օգտագործել ջերմաստիճանի և խոնավության չափման համար: Եկեք ընտրենք Arduino գրադարան ՝ սենսորների տվյալները կարդալու համար:
Arduino գրանցամատյանը պարունակում է մի քանի գրադարաններ, որոնցից ես ընտրել եմ ամենահայտնին:
Ըստ նրանց GitHub շտեմարանի, մեզանից պահանջվում է նաև ավելացնել Adafruit Unified Sensor փաթեթ:
Քայլ 2: Ստեղծեք և կազմաձևեք նախագիծ
Ես արդեն նկարագրել եմ, թե ինչպես ստեղծել PlatformIO նախագիծ և տեղադրել գրադարաններ առաջին մասում: Իմ նախագիծը կոչվում է «MyNodeMCU»: Կառուցվածքը ներկայացված է վերևում:
Այս նախագիծը փոքր-ինչ փոփոխված Cloud4RPi օրինակ է: Ես որոշեցի սարքի նշանը և Wi-Fi- ի հավատարմագրերը կոդի փոխարեն պահել կազմաձևման ֆայլում:
Platform.io ֆայլը հետևյալ տեսքն ունի.
[platformio] default_envs = nodemcuv2 [env: nodemcuv2] հարթակ = espressif8266 շրջանակ = arduino տախտակ = nodemcuv2
Քայլ 3: Տեղադրեք գրադարաններ
Գրադարանների տեղադրումը բավականին պարզ է: Դուք կարող եք դա անել IDE- ի գրաֆիկական ինտերֆեյսից, կամ անհրաժեշտ գրադարանների անուններ ավելացնելով platform.io ֆայլի lib_deps բաժնում ՝
; … Lib_deps = cloud4rpi -esp -arduino Adafruit Unified Sensor DHT սենսորների գրադարան build_flags = -D MQTT_MAX_PACKET_SIZE = 1024 -D MQTT_MAX_TRANSFER_SIZE = 128 -D CLOUD4RPI_DWBU_IDW _ = SUR_WID = " D CLOUD4RPI_TOKEN = / "_ YOUR_DEVICE_TOKEN _ \"
Ավելացված գրադարանները ինքնաբերաբար կտեղադրվեն ծրագրի ենթապանակում:
Main.cpp վերնագիրն ունի հետևյալ տեսքը.
#ներառել #ներառել #ներառել #ներառել «DHT.h»
Քայլ 4. Միացրեք DHT11 տվիչ
Adafruit- ը տրամադրում է DHTtester.ino սենսորային միացման օրինակ:
Այս ծածկագիրը նախաստորագրում է սենսորը և սահմանում չափման արդյունքը պահելու կառուցվածքը (հաջողության դեպքում).
#սահմանել DHTPIN 2 // DHT սենսորին միացված թվային քորոց#սահմանել DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); dht.begin (); //… struct DHT_Result {float h; բոց t; }; DHT_Result dhtResult;
Հաջորդ գործառույթը ցույց է տալիս, թե ինչպես կարդալ տվիչների տվյալները և դրանք պահել վերը նկարագրված տվյալների կառուցվածքում
void readSensors () {float h = dht.readHumidity (); // Կարդացեք ջերմաստիճանը որպես Celsius (կանխադրված) float t = dht.readTemperature ();
// Ստուգեք, եթե որևէ ընթերցում ձախողվեց և դուրս եկեք
if (isnan (h) || isnan (t)) {Serial.println (F ("Չհաջողվեց կարդալ DHT սենսորից!")); վերադարձ; } dhtResult.h = h; dhtResult.t = t; }
Քայլ 5: Տվյալների ուղարկում ամպին
Երբ մենք ունենանք այդ տվյալները, հաջորդ քայլն այն ուղարկելն է Cloud4RPi ծառայությանը:
Cloud4RPi for Arduino էջը նկարագրում է գրադարանի API- ն, որը մի շարք մեթոդներ են, որոնք օգտագործվում են.
- ստեղծել, կարդալ և թարմացնել փոփոխականներ,
- MQTT արձանագրության միջոցով փոփոխական արժեքներ ուղարկեք ամպի մեջ:
Գրադարանը ապահովում է երեք փոփոխական տեսակ ՝ Bool, Numeric և String:
Գրադարանի աշխատանքի ընթացքը սկսվում է սարքի նշանի միջոցով cloud4rpi.io կայքից API- ի օրինակ ստեղծելով (մանրամասների համար տե՛ս հոդվածի 1 -ին մասը):
#եթե սահմանված է (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #այլ Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); #էնդիֆ
Այնուհետև հայտարարեք փոփոխականներ DHT11 ընթերցումների համար.
c4r.declareNumericVariable («DHT11_Temp»); c4r.declareNumericVariable («DHT11_Hum»);
Այնուհետև տվեք տվյալները սենսորից, պահեք դրանք փոփոխականների մեջ և տվյալները հրապարակեք Cloud4RPi- ում.
c4r.setVariable («DHT11_Temp», dhtResult.t); c4r.setVariable («DHT11_Hum», dhtResult.h); c4r.publishData ();
Temերմաստիճանը եւ խոնավությունը արագ չեն փոխվում, ուստի 5 րոպեում մեկից ավելի արժեք ուղարկելը չի պահանջվում:
Քայլ 6: Ախտորոշում
Cloud4RPi- ն աջակցում է ախտորոշիչ տվյալները ՝ փոփոխական արժեքների հետ միասին: Որպես ախտորոշիչ տվյալներ ես օգտագործել եմ ժամանակի ռեժիմը, Wi-Fi ազդանշանի ուժգնությունը և IP հասցեն.
c4r.declareDiagVariable ("IP_Address"); c4r.declareDiagVariable ("RSSI"); // WiFi ազդանշանի ուժգնություն c4r.declareDiagVariable («Uptime»);
Նշում. Միլլի ֆունկցիան, որն օգտագործում եմ, ժամանակի վերականգնումը զրոյական ստանալու համար ~ 50 օրը մեկ: Ինչն ավելի քան բավարար է իմ նախագծի համար:
Հետևյալ կոդը սահմանում է ախտորոշիչ փոփոխականների արժեքներ.
c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Address", WiFi.localIP (). toString ()); c4r.setDiagVariable ("Uptime", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();
UptimeHumanReadable գործառույթը միլիվայրկյանները վերածում է հարմար ձևի.
Լարային uptimeHumanReadable (անստորագիր երկար միլիվայրկյաններ) {static char uptimeStr [32]; անստորագիր երկար վրկ = միլիվայրկյան / 1000; անստորագիր երկար րոպեներ = վրկ / 60; անստորագիր int ժամ = րոպե / 60; անստորագիր int օր = ժամ / 24; վրկ -= րոպե * 60; րոպե -= ժամ * 60; ժամ -= օր * 24; sprintf (uptimeStr, "%d օր%2.2d:%2.2d:%2.2d", (բայթ) օր, (բայթ) ժամ, (բայթ) րոպե, (բայթ) վրկ); վերադարձնել լարային (uptimeStr); }
Ֆունկցիան այսպիսի տող է թողնում 5 օր 10:23:14 ՝ տարօրինակ մեծ թվի փոխարեն:
Քայլ 7: Սկսեք և կարգաբերեք նախագիծը
Ստեղծված կոդը հավաքելուց և այն NodeMCU- ում բռնկելուց հետո սարքը միանում է ամպային ծառայությանը և սկսում տվյալների ուղարկում:
Դուք կարող եք բարձրացնել տեղեկամատյանների բազմախոսությունը ՝ CLOUD4RPI_DEBUG նախամշակող փոփոխականը սահմանելով 1 (ավելացնել -D CLOUD4RPI_DEBUG = 1 ՝ platform.io ֆայլում build_flags բաժինը):
Հաջորդը, բացեք cloud4rpi.io կայքը և առցանց նկատեք նոր սարքը: Բացեք այն ՝ սարքից ստացված բոլոր փոփոխական արժեքները ՝ սենսոր և ախտորոշում:
Քայլ 8: Վահանակի կազմաձևում
Այս քայլում տվյալների կապը ամպի հետ գործում է: Այժմ, եկեք կազմաձևենք տվյալների տեսողական ներկայացումը:
Ես օգտագործել եմ Dashboard- ի կազմաձևման UI- ն ՝ հետևյալ վահանակը ստեղծելու համար:
Վահանակը համօգտագործելի է, այնպես որ ես այն անմիջապես կիսում եմ իմ ընկերոջ հետ:
Քայլ 9: Եզրակացություն
Նախագծի ամբողջական ծածկագիրը հասանելի է հիմնական էջում:
Այսքանը առայժմ!
Հարցերն ու առաջարկությունները ողջունելի են մեկնաբանություններում:
Խորհուրդ ենք տալիս:
Arduino WiFi- ի ամպին միացում ESP8266: 7 քայլերի միջոցով
Arduino WiFi- ն ամպին միացնելով ESP8266- ի միջոցով. Այս ձեռնարկում մենք կբացատրենք ձեզ, թե ինչպես միացնել ձեր Arduino- ն IoT ամպին WiFi- ի միջոցով: Մենք կկարգավորենք Arduino- ից և ESP8266 WiFi մոդուլից կազմված կարգավորումը որպես IoT Thing և պատրաստ կդարձնենք այն: AskSensors cloud.L- ի հետ շփվելու համար:
Arduino- ի վրա հիմնված ոչ կոնտակտային ինֆրակարմիր ջերմաչափ - IR- ով հիմնված ջերմաչափ Arduino- ի միջոցով. 4 քայլ
Arduino- ի վրա հիմնված ոչ կոնտակտային ինֆրակարմիր ջերմաչափ | IR- ով հիմնված ջերմաչափ Arduino- ի միջոցով. Բարև ձեզ, այս հրահանգների մեջ մենք կդարձնենք ոչ կոնտակտային ջերմաչափ arduino- ով: Քանի որ երբեմն հեղուկի/պինդի ջերմաստիճանը չափազանց բարձր է կամ ցածր, ապա դժվար է դրա հետ կապ հաստատել և կարդալ այդ դեպքում ջերմաստիճանը
Եղանակի վրա հիմնված երաժշտության գեներատոր (ESP8266 վրա հիմնված միջինի գեներատոր). 4 քայլ (նկարներով)
Եղանակի վրա հիմնված երաժշտության գեներատոր (ESP8266 Based Midi Generator). Բարև, այսօր ես կբացատրեմ, թե ինչպես պատրաստել ձեր սեփական եղանակի վրա հիմնված փոքր երաժշտության գեներատոր: Այն հիմնված է ESP8266- ի վրա, որը նման է Arduino- ին և արձագանքում է ջերմաստիճանին, անձրևին: և լույսի ուժգնություն: Մի ակնկալեք, որ այն ամբողջ երգեր կամ ակորդներ կհաղորդի
ESP32- ի վրա հիմնված M5Stack M5stick C Եղանակի մոնիտոր DHT11- ով - Վերահսկեք ջերմաստիճանի խոնավության և ջերմության ինդեքսը M5stick-C- ի վրա DHT11: 6 քայլով
ESP32- ի վրա հիմնված M5Stack M5stick C Եղանակի մոնիտոր DHT11- ով | Վերահսկեք ջերմաստիճանի խոնավության և ջերմության ինդեքսը M5stick-C- ի վրա DHT11- ով: Ողջույն, տղերք, այս հրահանգներում մենք կսովորենք, թե ինչպես միացնել DHT11 ջերմաստիճանի տվիչը m5stick-C- ի հետ (զարգացման տախտակ m5stack- ով) և ցուցադրել այն m5stick-C- ի ցուցադրման վրա: Այսպիսով, այս ձեռնարկում մենք կկարդանք ջերմաստիճանը, խոնավությունը & շոգ եմ
Ուլտրաձայնային տվիչի միջոցով Arduino- ի վրա հիմնված ինքնավար բոտ. 5 քայլ (նկարներով)
Ուլտրաձայնային տվիչի միջոցով Arduino- ի վրա հիմնված ինքնավար բոտ. Ստեղծեք ձեր սեփական Arduino- ի վրա հիմնված ինքնավար բոտ `օգտագործելով ուլտրաձայնային տվիչ: Այս բոտը կարող է շատ ինքնուրույն տեղաշարժվել` առանց որևէ խոչընդոտի բախվելու: Հիմնականում այն, ինչ անում է, այն է, որ իր ճանապարհին հայտնաբերում է ցանկացած տեսակի խոչընդոտներ և որոշում լավագույնը