Satura rādītājs:
- 1. darbība: koda pievienošana ESP8266
- 2. darbība: iestatiet savu TP-LINK Smart Plug
- 3. darbība. Mājas palīga iestatīšana
- 4. solis: pēdējie soļi
Video: WiFi iespējots viedais spraudnis ar temperatūru kontrolēts: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Š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
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
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:
Viedais modinātājs: viedais modinātājs, kas izgatavots ar Raspberry Pi: 10 soļi (ar attēliem)
Viedais modinātājs: viedais modinātājs, kas izgatavots, izmantojot Raspberry Pi: Vai esat kādreiz vēlējies gudru pulksteni? Ja tā, tas ir risinājums jums! Es izveidoju viedo modinātāju, tas ir pulkstenis, ar kuru jūs varat mainīt modinātāja laiku atbilstoši vietnei. Kad modinātājs atskan, atskanēs skaņa (skaņas signāls) un iedegsies 2 gaismas
OpenLogger: augstas izšķirtspējas, iespējots Wi-Fi, atvērtā koda, pārnēsājamais datu reģistrētājs: 7 soļi
OpenLogger: augstas izšķirtspējas, iespējots Wi-Fi, atvērtā koda, pārnēsājamais datu reģistrētājs: OpenLogger ir pārnēsājams, atvērtā pirmkoda, lēts un augstas izšķirtspējas datu reģistrētājs, kas paredzēts augstas kvalitātes mērījumu nodrošināšanai, neprasot dārgu programmatūru vai rakstīšanas programmatūru. no nekā. Ja esat inženieris, zinātnieks vai entuziasts, kurš ne
Bluetooth iespējots analogais VU mērītājs: 6 soļi
Bluetooth iespējots analogais VU mērītājs: Šis bija mans projekts vienai no manām universitātes klasēm ar nosaukumu SMP. Tā kā mēs izmantojām STM32F103RB izstrādes plati, es savu projektu balstīju uz to, sākot ar vienkāršu VU skaitītāju. Pēc tam es pievienoju dažas papildu funkcijas, piemēram, Bluetooth atbalstu, lai pārraidītu va
Wifi iespējots OLED ESP32 automašīnu mērītājs: 3 soļi (ar attēliem)
Wifi iespējots OLED ESP32 automašīnu mērinstrumenti: vispirms ievads… Es būvēju automašīnu mērinstrumentus kā sava veida ieslēgšanas un izslēgšanas hobiju. Divus jaunākus piemērus skatiet vietnēs https: //www.instructables.com/id/Remote-Car-Monit … un https: //www.instructables.com/id/Remote-Car-Monit … Man īpaši patīk
Viedais spraudnis ESP8266: 6 soļi
Smart Plug ESP8266: Bienvenue sur cet article qui a pour but de vous montrer un projet de domotique que j'ai réalisé. Ayant toujours adoré les choses automatiques et optimisées, j'ai décidé de créer moi-même mes prises connectées. Celles-ci sont komandē, izmantojot WiFi. La