Բովանդակություն:

WiFi- ով միացված է ջերմաստիճանի վերահսկվող խելացի վարդակից ՝ 4 քայլ
WiFi- ով միացված է ջերմաստիճանի վերահսկվող խելացի վարդակից ՝ 4 քայլ

Video: WiFi- ով միացված է ջերմաստիճանի վերահսկվող խելացի վարդակից ՝ 4 քայլ

Video: WiFi- ով միացված է ջերմաստիճանի վերահսկվող խելացի վարդակից ՝ 4 քայլ
Video: ԱՆՎՃԱՐ տեսահսկման մինի Wifi տեսախցիկ՝ ՓՈՓՈԽՎԱԾ ՄԱՐԴՈՒ հետագծման միջոցով 2024, Նոյեմբեր
Anonim
WiFi- ով միացված է ջերմաստիճանի վերահսկվող խելացի վարդակից
WiFi- ով միացված է ջերմաստիճանի վերահսկվող խելացի վարդակից

Այս հրահանգների հավաքածուում մենք կանդրադառնանք, թե ինչպես կարելի է WiFi- ով միացված ջերմաստիճանի զոնդ սարքել ծանր բեռների համար պարզ ESP8266 և DHT11 ջերմաստիճանի/խոնավության տվիչ օգտագործելու միջոցով: Մենք նաև կօգտագործենք իմ ստեղծած տպատախտակները և այժմ վաճառվում են ալիքի tindie խանութում, եթե ցանկանում եք գնել:

Եկեք սկսենք այն նյութերի հաշվին, որոնք ձեզ անհրաժեշտ կլինեն:

ESP8266 WiFi մոդուլ

amzn.to/2pkGPoa

DHT11 ցուցիչ

amzn.to/2phwfhO

TP-Link Smart Plug

amzn.to/2GElQUz

Ալիքի համար կարող եք նաև վերցնել ամբողջ մոդուլը tindie խանութում ՝

www.tindie.com/products/misperry/wifi-enab…

Նաև ստուգեք JLCPCB- ը PCB Fabriction- ի համար: Նրանք են, ովքեր ես օգտագործում էի PCB- ն.

Անվճար առաքում առաջին պատվերի և $ 2 PCB- ի նախատիպերի վրա

Քայլ 1: Կոդի ավելացում ESP8266- ին

Այժմ մենք պետք է ջնջենք հետևյալ ծածկագիրը ESP8266- ի վրա: Այս կոդը կարելի է գտնել հետևյալ github պահոցում ՝

Ստորև բերված ծածկագրում ձեզ մնում է միայն սահմանել սահմանման վերևի մի քանի հատվածներ.

MQTT սերվեր.

MQTT օգտվող:

MQTT գաղտնաբառ:

MQTT_sensor_topic:

-WiFi

Ասաց. Wifi ցանցի մասին, որին միանում եք

Գաղտնաբառ `WiFi գաղտնաբառ:

Ստորև բերված ծածկագիրը լրացնելուց հետո կարող եք կազմել և ստուգել սխալների առկայությունը, և եթե 0 սխալ կա, կարող եք այն փակցնել ESP8266- ի վրա:

/ * * Ֆայլի անունը. TempHumSensor.ino * * Դիմում. HomeAssistant Space Heater Thermostat * * Նկարագրություն. Այս ծածկագիրը ESP8266 WiFi միացված arduino * համատեղելի սարքի համար է: Սա DHT11 սարքի ջերմաստիճանի մասին տեղեկությունները * կհասցնի մշակման համար HASS եզրագծին: * * Հեղինակ ՝ M. Sperry - https://www.youtube.com/misperry * Ամսաթիվ ՝ 03/ * Վերանայում ՝ 1.0 * * */

#ներառում

#ներառել #ներառել #ներառել #ներառել #ներառել

#սահմանել CON_TIME_OUT 20 // wifi- ի հետ կապի բացակայության ժամկետ

#սահմանեք MQTT_TIME_OUT 10 // MQTT սերվերի հետ կապի բացակայության ժամկետ

#սահմանեք DHTPIN 0 // Pin, որը միացված է DHT սենսորին

#սահմանեք DHTTYPE DHT11 // Սենսորի տեսակը DHT11 է, կարող եք այն փոխել DHT22 (AM2302), DHT21 (AM2301)

#define mqtt_server "" // Մուտքագրեք ձեր MQTT սերվերի հավելումներ կամ IP: Այս դաշտում ես օգտագործում եմ իմ DuckDNS հավելումը (yourname.duckdns.org)

#սահմանեք mqtt_user "" // մուտքագրեք ձեր MQTT օգտվողի անունը #սահմանեք mqtt_ գաղտնաբառ "" // մուտքագրեք ձեր գաղտնաբառը #սահմանեք MQTT_SENSOR_TOPIC "հա/ննջասենյակի_տեմպ" // Մուտքագրեք թեմա ձեր MQTT- ի համար

// Wifi: SSID և գաղտնաբառ

const char* ssid = ""; const char* գաղտնաբառ = "";

// DHT SEtup

DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t հետաձգում MS;

WiFiClient wifiClient;

PubSubClient հաճախորդ (wifiClient);

// գործառույթը կոչված է հրապարակելու ջերմաստիճանը և խոնավությունը

void publishedData (float p_temperature) {// ստեղծել JSON օբյեկտ // փաստաթուղթ ՝ https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO. Տվյալները պետք է փոխակերպվեն տողի; խնդիր է առաջանում բոցեր օգտագործելիս … // փոխարկել ֆարենհայտ p_temperature = (p_temperature * 1.8) + 32; // փոխարկել ֆարենհայտի արմատը ["ջերմաստիճան"] = (լարային) p_temperature; root.prettyPrintTo (Սերիա); Serial.println ("");

char տվյալներ [200];

root.printTo (տվյալներ, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, տվյալներ, ճշմարիտ); }

// գործառույթը կոչվում է, երբ MQTT հաղորդագրություն է գալիս

անվավեր հետադարձ կապ (char* p_topic, byte* p_payload, unsigned int p_length) {}

դատարկ միացում () {

// Շարունակեք, քանի դեռ չենք վերամիավորվել (! Client.connected ()) {Serial.print ("INFO: Milting MQTT connection …"); // Փորձել միացնել if (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: Connect"); } else {Serial.print ("ՍԽԱԼ. ձախողված, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: կրկին փորձեք 5 վայրկյանում"); // Սպասեք 5 վայրկյան նախքան հետաձգման հետաձգումը (5000); }}}

դատարկ կարգավորում (դատարկ) {

Serial.begin (9600);

// Մենք սկսում ենք միանալով WiFi ցանցին

Serial.println (); Serial.println (); Serial.print («Միացում»); Serial.println (ssid);

WiFi.begin (ssid, գաղտնաբառ);

while (WiFi.status ()! = WL_CONNECTED) {

ուշացում (800); Serial.print ("."); }

Serial.println ("");

Serial.println («WiFi միացված է»); Serial.println ("IP հասցե` "); Serial.println (WiFi.localIP ()); // init MQTT կապի client.setServer (mqtt_server, 1883); client.setCallback (հետադարձ);

// Նախնականացնել DHT սենսորը

dht.begin (); Serial.println («DHT11 միասնական տվիչի տվյալներ»);

// Տպել ջերմաստիճանի տվիչի մանրամասները

sensor_t սենսոր; dht.temperature (). getSensor (& ցուցիչ); Serial.println ("----------------------------------------"); Serial.println («Temերմաստիճան»); Serial.print ("Սենսոր."); Serial.println (sensor.name); Serial.print ("Վարորդի Ver."); Serial.println (sensor.version); Serial.print ("Եզակի ID:"); Serial.println (sensor.sensor_id); Serial.print ("Առավելագույն արժեքը."); Serial.print (sensor.max_value); Serial.println (" *C"); Serial.print ("Min Value:"); Serial.print (sensor.min_value); Serial.println (" *C"); Serial.print («Բանաձև.»); Serial.print (sensor.resolution); Serial.println (" *C"); Serial.println ("------------------------------------"); // Տպել խոնավության տվիչի մանրամասները: dht. խոնավություն (). getSensor (& ցուցիչ); Serial.println ("------------------------------------"); Serial.println («Խոնավություն»); Serial.print ("Սենսոր."); Serial.println (sensor.name); Serial.print ("Վարորդի Ver."); Serial.println (sensor.version); Serial.print ("Եզակի ID:"); Serial.println (sensor.sensor_id); Serial.print ("Առավելագույն արժեքը."); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Min Value:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print («Բանաձև.»); Serial.print (sensor.resolution); Serial.println ("%"); Serial.println ("------------------------------------");

// Սահմանեք ուշացում սենսորային ընթերցումների միջև ՝ հիմնվելով սենսորի մանրամասների վրա

delayMS = sensor.min_delay / 1000; }

դատարկ շրջան (դատարկ) {

լողացող ջերմաստիճան;

եթե (! client.connected ())

{նորից միանալ (); }

ուշացում (ուշացում MS);

// Ստացեք ջերմաստիճանի իրադարձություն և տպեք դրա արժեքը:

sensors_event_t իրադարձություն; dht.temperature (). getEvent (& իրադարձություն); if (isnan (event.temperature)) {Serial.println («Չհաջողվեց կարդալ ջերմաստիճանը»); ջերմաստիճան = 0.00; } else {temperature = event.temperature; Serial.print ("Temերմաստիճանը."); Serial.print (ջերմաստիճան); Serial.println (" *C"); } // հրապարակել MQTT- ում publikData (ջերմաստիճան); }

Քայլ 2: Կարգավորեք ձեր TP-LINK խելացի վարդակը

Կարգավորեք ձեր TP-LINK խելացի վարդակը
Կարգավորեք ձեր TP-LINK խելացի վարդակը

Դուք պետք է ձեր TP-LINK խելացի վարդակից կամ այդ նյութի համար խելացի վարդակից տեղադրեք այնպես, ինչպես արտադրողը խորհուրդ է տալիս:

Համոզվեք, որ հաշվի եք առնում սարքի MAC հասցեն: Եթե ձեր սարքը նման է իմ TP-LINK սարքին, ապա չեք կարող ստատիկ IP հասցե տեղադրել: Այսպիսով, դուք պետք է կազմաձևեք ձեր երթուղիչը DHCP ամրագրման համար: Սա կվերցնի ձեր սարքի MAC հասցեն, և երբ այդ սարքը հասցե խնդրի, երթուղիչը ամեն անգամ նույն հասցեն կտա նրան:

Ահա հղում, թե ինչպես դա կարգավորել Linksys- ով

www.linksys.com/us/support-article?article…

Քայլ 3: Տնային օգնականի ստեղծում

Այժմ ՝ Home Assistant- ը կարգավորելու համար: Դրա համար անհրաժեշտ կլինի ավելացնել հետևյալ կազմաձևերը configuration.yaml ֆայլին, որը գտնվում է /home/homeassistant/.homeassistant պանակի կառուցվածքում այն սարքի վրա, որին այն տեղադրել եք:

Ձեր տան օգնականի կազմաձևին ավելացնելն ավարտելուց հետո ձեզ հարկավոր է վերագործարկել ձեր տան օգնականի ծրագրակազմը, որպեսզի փոփոխություններն ազդեցություն ունենան:

Նաև ես կօգտագործեմ անջատիչ սարքի TP-LINK խելացի վարդակից, և սահմանումը ստորև ՝ կազմաձևման ֆայլում: IP հասցեն, որն օգտագործվում է սարքի համար, այն է, որը դուք ստեղծել եք DHCP ամրագրման համար նախորդ քայլին:

Այս կազմաձևը կարելի է գտնել նաև հետևյալ github ռեպոյում ՝

mqtt: switch: - հարթակ: tplink անունը: Ննջասենյակի ջեռուցիչը ՝ 192.168.2.11

տվիչ 1:

հարթակ ՝ mqtt state_topic: 'ha/bedroom_temp' name: Bedroom Temp unit_of_measurement: '° F' value_template: '{{value_json.temperature}}'

ավտոմատացում:

- կեղծանուն ՝ _Temp Ննջասենյակի ջերմաստիճան Բարձր ձգան.

գործողություն:

ծառայություն ՝ homeassistant.turn_off unit_id: switch. Bedroom_Haterater

- alias: _Temp Ննջասենյակի ջերմաստիճանը ցածր է

ձգան.

Քայլ 4: Վերջնական քայլեր

Image
Image
Վերջնական քայլեր
Վերջնական քայլեր
Վերջնական քայլեր
Վերջնական քայլեր

Այժմ ձեր տնային օգնականի կազմաձևով և ձեր Arduino ծածկագրի միջոցով դուք պատրաստ կլինեք ակտիվացնել ամբողջ համակարգը: Այսպիսով, տեղադրեք ձեր տաքացուցիչի/օդափոխիչի/սառնարանի վարդակը խելացի վարդակից և միացրեք խելացի վարդակից: Երբ այն պատրաստ լինի, ձեզ հարկավոր է միացնել մի փոքրիկ USB լիցքավորիչ, այնուհետև WiFi- ով միացված ջերմաստիճանի զոնդ: Երբ ամեն ինչ առցանց լինի, դուք պետք է կարողանաք նայել ձեր տան օգնականի վահանակին և տեսնել նոր ջերմաստիճանի մասին:

Շատ շնորհակալ եմ ձեր բոլոր օգնության և աջակցության համար: Համոզվեք, որ թողեք լայք և այցելեք https://www.youbue.com/misperry ալիք և տեսեք, թե ինչ ունենք այնտեղ ձեզ համար: Անպայման բաժանորդագրվեք և կիսվեք ձեր ընկերների հետ ՝ ալիքին օգնելու համար:

Խորհուրդ ենք տալիս: