Satura rādītājs:

WiFi iespējots viedais spraudnis ar temperatūru kontrolēts: 4 soļi
WiFi iespējots viedais spraudnis ar temperatūru kontrolēts: 4 soļi

Video: WiFi iespējots viedais spraudnis ar temperatūru kontrolēts: 4 soļi

Video: WiFi iespējots viedais spraudnis ar temperatūru kontrolēts: 4 soļi
Video: Умный WiFi проектор звездных галактик с лазером и светомузыкой TUYA SMART 2024, Novembris
Anonim
WiFi iespējota viedā kontaktdakša ar temperatūras kontroli
WiFi iespējota viedā kontaktdakša ar temperatūras kontroli

Šajā instrukciju komplektā mēs aplūkosim, kā izveidot WiFi iespējotu temperatūras zondi, izmantojot vienkāršu ESP8266 smagajai celšanai un DHT11 temperatūras/mitruma sensoru. Mēs izmantosim arī manu izveidoto shēmas plati, kas tagad tiek pārdota kanāla tindie veikalā, ja vēlaties to iegādāties.

Sāksim ar nepieciešamo materiālu sarakstu:

ESP8266 WiFi modulis

amzn.to/2pkGPoa

DHT11 sensors

amzn.to/2phwfhO

TP-Link viedais spraudnis

amzn.to/2GElQUz

Jūs varat arī paņemt visu moduli kanāla tindie veikalā:

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

Pārbaudiet arī JLCPCB PCB izgatavošanai. Tie ir tie, kurus es izmantoju, lai izveidotu PCB:

Bezmaksas piegāde pirmajam pasūtījumam un 2 ASV dolāru prototipu veidošana vietnē

1. darbība: koda pievienošana ESP8266

Tagad mums būs jāatspoguļo šāds kods uz ESP8266. Šo kodu var atrast šajā github krātuvē:

Tālāk esošajā kodā jums būs jāiestata tikai dažas galvenās definīcijas sadaļas:

MQTT serveris:

MQTT lietotājs:

MQTT parole:

MQTT_sensor_topic:

-Bezvadu internets

Teica: teikts par wifi tīklu, ar kuru izveidojat savienojumu

Parole: WiFi parole.

Kad esat to aizpildījis zemāk esošajā kodā, varat apkopot un pārbaudīt, vai nav kļūdu, un, ja nav kļūdu, varat to uzvilkt uz ESP8266.

/ * * Faila nosaukums: TempHumSensor.ino * * Lietojumprogramma: HomeAssistant Space Heater Thermostat * * Apraksts: Šis kods ir paredzēts arduino * saderīgai ierīcei, kura ir aprīkota ar WiFi. Tas pārsūtīs DHT11 ierīces temperatūras informāciju * HASS priekšējai daļai apstrādei. * * Autors: M. Sperijs - https://www.youtube.com/misperry * Datums: 03/ * Pārskatīšana: 1.0 * * */

#iekļaut

#iekļaut #iekļaut #iekļaut #iekļaut #iekļaut

#define CON_TIME_OUT 20 // Taimauts, kad nav savienojuma ar wifi

#define MQTT_TIME_OUT 10 // Taimauts, kad nav savienojuma ar MQTT serveri

#define DHTPIN 0 // Piespraude, kas pievienota DHT sensoram

#define DHTTYPE DHT11 // Sensora tips ir DHT11, to var mainīt uz DHT22 (AM2302), DHT21 (AM2301)

#define mqtt_server "" // Ievadiet savus MQTT servera papildinātājus vai IP. Šajā laukā es izmantoju savu DuckDNS adresi (jūsu vārds.duckdns.org)

#define mqtt_user "" // ievadiet savu MQTT lietotājvārdu #define mqtt_password "" // ievadiet savu paroli #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" // Ievadiet sava MQTT tēmu

// Wifi: SSID un parole

const char* ssid = ""; const char* parole = "";

// DHT SEtup

DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t delayMS;

WiFiClient wifiClient;

PubSubClient klients (wifiClient);

// funkcija, ko sauc par temperatūras un mitruma publicēšanu

void publisData (float p_temperature) {// izveidot JSON objektu // dokuments: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: dati jāpārvērš virknē; rodas problēma, izmantojot pludiņus… // pārvērst par farenheitu p_temperatūra = (p_temperatūra * 1.8) + 32; // pārvērst par Fārenheita sakni ["temperatūra"] = (String) p_temperature; root.prettyPrintTo (sērijas); Serial.println ("");

char dati [200];

root.printTo (dati, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, dati, patiesi); }

// funkcija tika izsaukta, kad ieradās MQTT ziņojums

anulēts atzvanīšana (char* p_topic, byte* p_payload, unsigned int p_length) {}

void reconnect () {

// Loop, līdz mēs atkal izveidosim savienojumu, kamēr (! Client.connected ()) {Serial.print ("INFO: Mēģina izveidot savienojumu ar MQTT …"); // Mēģinājums izveidot savienojumu, ja (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: connected"); } else {Serial.print ("KĻŪDA: neizdevās, rc ="); Sērijas nospiedums (client.state ()); Serial.println ("DEBUG: mēģiniet vēlreiz pēc 5 sekundēm"); // Pagaidiet 5 sekundes pirms atkārtotas kavēšanās (5000); }}}

void setup (void) {

Sērijas sākums (9600);

// Mēs sākam, izveidojot savienojumu ar WiFi tīklu

Sērijas.println (); Sērijas.println (); Serial.print ("Savienojuma izveide"); Serial.println (ssid);

WiFi.begin (ssid, parole);

kamēr (WiFi.status ()! = WL_CONNECTED) {

kavēšanās (800); Sērijas nospiedums ("."); }

Serial.println ("");

Serial.println ("savienots WiFi"); Serial.println ("IP adrese:"); Serial.println (WiFi.localIP ()); // inicializējiet MQTT savienojuma klientu.setServer (mqtt_server, 1883); client.setCallback (atzvanīšana);

// Inicializēt DHT sensoru

dht.begin (); Serial.println ("DHT11 vienotie sensoru dati");

// Informācija par drukas temperatūras sensoru

sensors_t sensors; dht.temperatūra (). getSensor (& sensors); Serial.println ("------------------------------------"); Serial.println ("Temperatūra"); Serial.print ("Sensors:"); Serial.println (sensora nosaukums); Serial.print ("Driver Ver:"); Serial.println (sensors.versija); Serial.print ("Unikālais ID:"); Serial.println (sensor.sensor_id); Serial.print ("Maksimālā vērtība:"); Sērijas nospiedums (sensors.max_value); Sērijas.println (" *C"); Serial.print ("Min Value:"); Sērijas nospiedums (sensors.min_value); Sērijas.println (" *C"); Serial.print ("Izšķirtspēja:"); Sērijas nospiedums (sensora izšķirtspēja); Sērijas.println (" *C"); Serial.println ("------------------------------------"); // Drukāt mitruma sensora informāciju. dht.humidity (). getSensor (& sensors); Serial.println ("------------------------------------"); Serial.println ("Mitrums"); Serial.print ("Sensors:"); Serial.println (sensora nosaukums); Serial.print ("Driver Ver:"); Serial.println (sensors.versija); Serial.print ("Unikālais ID:"); Serial.println (sensor.sensor_id); Serial.print ("Maksimālā vērtība:"); Sērijas nospiedums (sensors.max_value); Serial.println ("%"); Serial.print ("Min Value:"); Sērijas nospiedums (sensors.min_value); Serial.println ("%"); Serial.print ("Izšķirtspēja:"); Sērijas nospiedums (sensora izšķirtspēja); Serial.println ("%"); Serial.println ("------------------------------------");

// Iestatiet aizkavi starp sensora rādījumiem, pamatojoties uz sensora informāciju

delayMS = sensors.min_delay / 1000; }

void loop (void) {

pludiņa temperatūra;

ja (! client.connected ())

{atjaunot savienojumu (); }

kavēšanās (delayMS);

// Iegūstiet temperatūras notikumu un izdrukājiet tā vērtību.

sensor_event_t notikums; dht.temperatūra (). getEvent (& notikums); if (isnan (event.temperature)) {Serial.println ("Kļūda, lasot temperatūru!"); temperatūra = 0,00; } cits {temperatūra = notikums.temperatūra; Serial.print ("Temperatūra:"); Sērijas nospiedums (temperatūra); Sērijas.println (" *C"); } // publicēt MQTT publicēt datus (temperatūra); }

2. darbība: iestatiet savu TP-LINK Smart Plug

Jūsu TP-LINK Smart Plug iestatīšana
Jūsu TP-LINK Smart Plug iestatīšana

Jums būs jāiestata savs TP-LINK viedais spraudnis vai jebkurš viedais spraudnis šai ierīcei ražotāja ieteiktajā veidā.

Noteikti ņemiet vērā ierīces MAC adresi. Ja jūsu ierīce ir līdzīga manai TP-LINK ierīcei, jūs nevarat izveidot statisku IP adresi. Tādējādi jums būs jākonfigurē maršrutētājs DHCP rezervēšanai. Tas paņems jūsu ierīces MAC adresi un, kad šī ierīce pieprasīs adresi, maršrutētājs katru reizi piešķirs to pašu adresi.

Šeit ir saite, kā to iestatīt, izmantojot Linksys

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

3. darbība. Mājas palīga iestatīšana

Tagad iestatiet mājas palīgu. Šim nolūkam konfigurācijai.yaml ir jāpievieno šādas konfigurācijas, kas atrodas /home/homeassistant/.homeassistant mapes struktūrā ierīcē, kurā to instalējāt.

Kad būsit pievienojis šo mājas palīga konfigurācijai, jums būs jārestartē mājas palīga programmatūra, lai izmaiņas stātos spēkā.

Arī es izmantošu TP-LINK viedo spraudni pārslēgšanas ierīcei, un definīcija ir zemāk konfigurācijas failā. Ierīcei izmantotā IP adrese ir tā, kuru iestatījāt DHCP rezervācijai iepriekšējā solī.

Šo konfigurāciju var atrast arī šādā Github repo:

mqtt: slēdzis: - platforma: tplink nosaukums: Guļamistabas sildītāja saimnieks: 192.168.2.11

sensors 1:

platforma: mqtt state_topic: 'ha/bedroom_temp' nosaukums: Guļamistabas temperatūras mērvienība: '° F' value_template: '{{value_json.temperature}}'

automatizācija:

- aizstājvārds: _Temp guļamistabas temperatūra Augsts sprūda: - platforma: skaitlisks_valsts entītijas_id: sensors. Guļamistaba_Temp iepriekš: 73

darbība:

pakalpojums: homeassistant.turn_off entity_id: switch. Bedroom_Heater

- pseidonīms: _Temp guļamistabas temperatūra zema

aktivizētājs: - platforma: ciparu_statu entītijas_id: sensors. Guļamistaba_Temps zemāk: 73 darbība: pakalpojums: mājasassistants.turn_on entītijas_id: slēdzis. Bedroom_Heater

4. solis: pēdējie soļi

Image
Image
Pēdējie soļi
Pēdējie soļi
Pēdējie soļi
Pēdējie soļi

Tagad, iestatot mājas palīga konfigurāciju un iestatot Arduino kodu, jūs būsit gatavs aktivizēt visu sistēmu. Tādējādi ievietojiet sildītāja/ventilatora/dzesētāja kontaktdakšu viedajā kontaktdakšā un pievienojiet viedo kontaktdakšu. Kad tas ir gatavs, jums būs jāpievieno mazs USB lādētājs un pēc tam temperatūras zonde ar WiFi. Kad viss ir tiešsaistē, jums vajadzētu būt iespējai ieskatīties mājas palīga informācijas panelī un redzēt ziņoto jauno temperatūru.

Liels paldies par visu jūsu palīdzību un atbalstu. noteikti atstājiet atzīmi Patīk un apmeklējiet kanālu vietnē https://www.youbue.com/misperry un apskatiet, kas mums šeit ir. Noteikti abonējiet un kopīgojiet informāciju ar draugiem, lai palīdzētu kanālam.

Ieteicams: