Sisukord:

WiFi lubatud temperatuuriga juhitav nutikas pistik: 4 sammu
WiFi lubatud temperatuuriga juhitav nutikas pistik: 4 sammu

Video: WiFi lubatud temperatuuriga juhitav nutikas pistik: 4 sammu

Video: WiFi lubatud temperatuuriga juhitav nutikas pistik: 4 sammu
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
WiFi lubatud temperatuuriga juhitav nutikas pistik
WiFi lubatud temperatuuriga juhitav nutikas pistik

Selles juhendis uurime, kuidas ehitada WiFi -toega temperatuuriandur, kasutades rasketõstmiseks lihtsat ESP8266 ja DHT11 temperatuuri/niiskuse andurit. Kui soovite osta, kasutame ka minu loodud trükkplaati, mis on nüüd ka kanali tindie poes müügil.

Alustame vajalike materjalide nimekirjaga:

ESP8266 WiFi moodul

amzn.to/2pkGPoa

DHT11 andur

amzn.to/2phwfhO

TP-Link nutikas pistik

amzn.to/2GElQUz

Samuti saate kogu mooduli kätte saada kanali tindie poest:

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

Vaadake ka PCB valmistamise JLCPCB -d. Need on need, keda ma PCB valmistamiseks kasutasin:

Tasuta kohaletoimetamine esimese tellimuse korral ja 2 -dollarine PCB prototüüpimine saidil

Samm: koodi lisamine ESP8266 -le

Nüüd peame ESP8266 -le välgutama järgmise koodi. Selle koodi leiate järgmisest githubi hoidlast:

Allolevas koodis peate seadistama vaid mõned peamised määratlusjaotised:

MQTT server:

MQTT kasutaja:

MQTT parool:

MQTT_anduri_teema:

-WiFi

Ütles: seda wifi -võrku, millega te ühendate

Parool: WiFi parool.

Kui olete selle allolevas koodis täitnud, saate kompileerida ja kontrollida vigu ning 0 vea korral võite selle ESP8266 -le välgutada.

/ * * Faili nimi: TempHumSensor.ino * * Rakendus: HomeAssistant Space Heater Thermostat * * Kirjeldus: See kood on mõeldud ESP8266 WiFi toega arduino * ühilduvale seadmele. See edastab DHT11 seadme temperatuuriteabe * töötlemiseks HASSi esipaneelile. * * Autor: M. Sperry - https://www.youtube.com/misperry * Kuupäev: 03/ * Läbivaatamine: 1.0 * * */

#kaasake

#kaasamine #kaasamine #kaasamine #kaasamine #kaasamine

#define CON_TIME_OUT 20 // wifi -ga ühenduse puudumine

#define MQTT_TIME_OUT 10 // MQTT -serveriga ühenduse puudumise ajalõpp

#define DHTPIN 0 // DHT -anduriga ühendatud tihvt

#define DHTTYPE DHT11 // Anduri tüüp on DHT11, saate selle muuta DHT22 (AM2302), DHT21 (AM2301)

#define mqtt_server "" // Sisestage oma MQTT serveri lisajad või IP. Ma kasutan sellel väljal oma DuckDNS -i aadressi (teie nimi.duckdns.org)

#define mqtt_user "" // sisesta oma MQTT kasutajanimi #define mqtt_password "" // sisesta oma parool #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" // Sisesta oma MQTT teema

// Wifi: SSID ja parool

const char* ssid = ""; const char* parool = "";

// DHT SEtup

DHT_Ühendatud dht (DHTPIN, DHTTYPE); uint32_t delayMS;

WiFiClient wifiClient;

PubSubClient klient (wifiClient);

// funktsiooni kutsutakse temperatuuri ja niiskuse avaldamiseks

void publisData (float p_temperature) {// looge JSON -objekt // dokument: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: andmed tuleb teisendada stringiks; ujukite kasutamisel tekib probleem… // teisendada fahrenheitiks p_temperatuur = (p_temperatuur * 1,8) + 32; // teisendada fahrenheiti juureks ["temperatuur"] = (String) p_temperatuur; root.prettyPrintTo (jada); Serial.println ("");

char andmed [200];

root.printTo (andmed, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, andmed, tõene); }

// funktsioon kutsuti, kui saabus MQTT -teade

tühine tagasihelistamine (char* p_topic, byte* p_payload, unsigned int p_length) {}

void reconnect () {

// Loop, kuni oleme uuesti ühendatud, kui (! Client.connected ()) {Serial.print ("INFO: MQTT -ühenduse proovimine…"); // Katse ühendada, kui (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: connected"); } else {Serial.print ("VIGA: ebaõnnestus, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: proovige uuesti 5 sekundi pärast"); // Oodake 5 sekundit enne viivituse uuesti proovimist (5000); }}}

tühine seadistus (tühine) {

Seriaalne algus (9600);

// Alustame WiFi -võrguga ühenduse loomisest

Serial.println (); Serial.println (); Serial.print ("Ühendamine"); Serial.println (ssid);

WiFi.begin (ssid, parool);

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

viivitus (800); Seeria.print ("."); }

Serial.println ("");

Serial.println ("WiFi ühendatud"); Serial.println ("IP -aadress:"); Serial.println (WiFi.localIP ()); // algata MQTT -ühenduse klient.setServer (mqtt_server, 1883); client.setCallback (tagasihelistamine);

// DHT -anduri lähtestamine

dht.begin (); Serial.println ("DHT11 ühendatud andurite andmed");

// Prindi temperatuurianduri üksikasjad

sensor_t sensor; dht.temperature (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Temperatuur"); Serial.print ("Andur:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("Unikaalne ID:"); Serial.println (sensor.sensor_id); Serial.print ("Max Value:"); Serial.print (sensor.max_value); Serial.println (" *C"); Serial.print ("Min Value:"); Serial.print (sensor.min_value); Serial.println (" *C"); Serial.print ("Resolutsioon:"); Serial.print (sensor.resolution); Serial.println (" *C"); Serial.println ("------------------------------------"); // Prindi niiskuseanduri üksikasjad. dht.humidity (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Niiskus"); Serial.print ("Andur:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("Unikaalne ID:"); Serial.println (sensor.sensor_id); Serial.print ("Max Value:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Min Value:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Resolutsioon:"); Serial.print (sensor.resolution); Serial.println ("%"); Serial.println ("------------------------------------");

// Anduri näitude vahel viivituse määramine, lähtudes anduri üksikasjadest

delayMS = sensor.min_delay / 1000; }

void loop (void) {

ujuki temperatuur;

kui (! klient.ühendatud ())

{ühenda uuesti (); }

viivitus (delayMS);

// Hankige temperatuuri sündmus ja printige selle väärtus.

sensor_event_t sündmus; dht.temperature (). getEvent (& sündmus); if (isnan (event.temperature)) {Serial.println ("Viga temperatuuri lugemisel!"); temperatuur = 0,00; } else {temperatuur = sündmus.temperatuur; Serial.print ("Temperatuur:"); Serial.print (temperatuur); Serial.println (" *C"); } // avaldada MQTT -le publisData (temperatuur); }

Samm: seadistage oma TP-LINK Smart Plug

TP-LINK Smart Plug seadistamine
TP-LINK Smart Plug seadistamine

Peate seadistama oma TP-LINK nutipistiku või selle seadme nutika pistiku tootja soovitatud viisil.

Võtke kindlasti teadmiseks seadme MAC -aadress. Kui teie seade on nagu minu TP-LINK-seade, ei saa te staatilist IP-aadressi määrata. Seega peate konfigureerima oma ruuteri DHCP reserveerimiseks. See võtab teie seadme MAC -aadressi ja kui seade küsib aadressi, annab ruuter sellele iga kord sama aadressi.

Siin on link, kuidas seda Linksysiga seadistada

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

3. samm: koduabilise seadistamine

Nüüd koduabilise seadistamiseks. Selleks peate faili Configuration.yaml lisama järgmised konfiguratsioonid, mis asuvad selle seadme kausta /home/homeassistant/.homeassistant, kuhu installisite selle.

Kui olete selle koduabilise konfiguratsioonile lisanud, peate muudatuste jõustumiseks taaskäivitama oma koduabilise tarkvara.

Samuti kasutan lülitusseadme jaoks TP-LINK nutikat pistikut ja määratlus on allpool konfiguratsioonifailis. Seadme jaoks kasutatav IP -aadress on see, mille määrasite eelmises etapis DHCP -reserveeringu jaoks.

Selle konfiguratsiooni leiate ka järgmisest githubi repost:

mqtt: lüliti: - platvorm: tplinki nimi: Magamistoa kütteseade: 192.168.2.11

andur 1:

platvorm: mqtt state_topic: 'ha/bedroom_temp' nimi: Magamistoa temp. mõõtühik: '° F' value_template: '{{value_json.temperature}}'

automatiseerimine:

- varjunimi: _Temp magamistoa temperatuur Kõrge käivitaja: - platvorm: numbriline_üksuse olem_id: andur. Magamistuba_temperatuur ülal: 73

tegevus:

teenus: homeassistant.turn_off entity_id: switch. Bedroom_Heater

- varjunimi: _Temp magamistoa temperatuur madal

päästik: - platvorm: numbrilise_riigi olemi_id: sensor. Bedroom_Temp all: 73 toiming: teenus: homeassistant.turn_on entity_id: switch. Bedroom_Heater

4. samm: viimased sammud

Image
Image
Viimased sammud
Viimased sammud
Viimased sammud
Viimased sammud

Nüüd, kui olete oma koduabilise konfiguratsiooni ja Arduino koodi seadistanud, olete valmis kogu süsteemi aktiveerima. Seega asetage küttekeha/ventilaatori/jahuti pistik nutipistikusse ja ühendage nutikas pistik. Kui see on valmis, peate ühendama väikese USB -laadija ja seejärel WiFi -toega temperatuurianduri. Kui kõik on võrgus, peaksite saama vaadata oma koduabilise armatuurlauale ja näha uut temperatuuri.

Tänan teid väga abi ja toetuse eest. jätke kindlasti like ja tulge külastage kanalit aadressil https://www.youbue.com/misperry ja vaadake, mis meil siin on. Kanali abistamiseks tellige kindlasti ja jagage seda oma sõpradega.

Soovitan: