Բովանդակություն:
- Քայլ 1: Կոդի ավելացում ESP8266- ին
- Քայլ 2: Կարգավորեք ձեր TP-LINK խելացի վարդակը
- Քայլ 3: Տնային օգնականի ստեղծում
- Քայլ 4: Վերջնական քայլեր
Video: WiFi- ով միացված է ջերմաստիճանի վերահսկվող խելացի վարդակից ՝ 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Այս հրահանգների հավաքածուում մենք կանդրադառնանք, թե ինչպես կարելի է 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 խելացի վարդակից կամ այդ նյութի համար խելացի վարդակից տեղադրեք այնպես, ինչպես արտադրողը խորհուրդ է տալիս:
Համոզվեք, որ հաշվի եք առնում սարքի 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: Վերջնական քայլեր
Այժմ ձեր տնային օգնականի կազմաձևով և ձեր Arduino ծածկագրի միջոցով դուք պատրաստ կլինեք ակտիվացնել ամբողջ համակարգը: Այսպիսով, տեղադրեք ձեր տաքացուցիչի/օդափոխիչի/սառնարանի վարդակը խելացի վարդակից և միացրեք խելացի վարդակից: Երբ այն պատրաստ լինի, ձեզ հարկավոր է միացնել մի փոքրիկ USB լիցքավորիչ, այնուհետև WiFi- ով միացված ջերմաստիճանի զոնդ: Երբ ամեն ինչ առցանց լինի, դուք պետք է կարողանաք նայել ձեր տան օգնականի վահանակին և տեսնել նոր ջերմաստիճանի մասին:
Շատ շնորհակալ եմ ձեր բոլոր օգնության և աջակցության համար: Համոզվեք, որ թողեք լայք և այցելեք https://www.youbue.com/misperry ալիք և տեսեք, թե ինչ ունենք այնտեղ ձեզ համար: Անպայման բաժանորդագրվեք և կիսվեք ձեր ընկերների հետ ՝ ալիքին օգնելու համար:
Խորհուրդ ենք տալիս:
Ինտերնետին միացված սնուցման վարդակից `13 քայլ
Ինտերնետին միացված հոսանքի վարդակից ՝ PowerHub Webserver Project & Ինտերնետի միջոցով միացված վարդակից տեղադրման հրահանգներԿենտրոնային տվյալների կայունության հանգույց ՝ ինտերնետում միացված լույսի և վարդակների համար ձեր տանը:
Flash ծրագրավորում Joinrun խելացի վարդակից (ԵՄ վարդակից). 6 քայլ
Flash ծրագրավորում Joinrun Smart վարդակից (EU Plug). The " Joinrun Smart Wifi " USB- ով մի այլ ESP8266- ի վրա հիմնված wifi վերահսկվող հոսանքի վարդակից: Այն գալիս է հաճելի դիզայնով, փոքր ձևի գործոնով և լրացուցիչ USB լիցքավորման պորտով: Այն կարիք ունի խելացի կյանքի հավելվածի ՝ այն վերահսկելու միջոցով
Google- ի վերահսկվող վարդակից `7 քայլ
Google Controlled Outlet. Ձեր սեփական խելացի վարդակ ստեղծելու նախագիծ, որը կարող է կառավարվել google օգնականի կամ հիմնականում IFTTT- ի ցանկացած այլ մուտքային ծառայության միջոցով
DIY WiFi խելացի վարդակից ՝ 7 քայլ (նկարներով)
DIY WiFi խելացի վարդակ. Սա խելացի վարդակից է `ջերմաստիճանի խոնավության սենսորով DHT 11 և արտակարգ իրավիճակների LED լույսով: Ինչպես միշտ, այս վարդակից կարելի է միացնել և անջատել ցանկացած սմարթֆոնի WiFi- ի միջոցով: Սա կարող է նաև միացվել ինտերնետին և օգտվել որպես «Իրերի ինտերնետ» գործառույթից
Nabito [Բաց վարդակից V2]. Խելացի հաշվիչ էլեկտրական լիցքավորման համար. 10 քայլ (նկարներով)
Nabito [Open Socket V2]. Խելացի հաշվիչ էլեկտրական լիցքավորման համար. Սա Nabito- ի կառուցման երկրորդ ուղեցույցն է [բաց վարդակից), առաջին տարբերակը կարելի է գտնել հետևյալ հասցեով ՝ Nabito [բաց վարդակ] v1 Այս բլոգում թվարկում եմ այս նախագծի ստեղծման պատճառները գրառում. Էլեկտրամատակարարումը անիմաստ է բնակիչների համար Ի՞նչ է դա: