Talaan ng mga Nilalaman:

Pinagana ng WiFi ang Pinagana ng Temperatura na Kinokontrol ng Temperatura ng WiFi: 4 na Hakbang
Pinagana ng WiFi ang Pinagana ng Temperatura na Kinokontrol ng Temperatura ng WiFi: 4 na Hakbang

Video: Pinagana ng WiFi ang Pinagana ng Temperatura na Kinokontrol ng Temperatura ng WiFi: 4 na Hakbang

Video: Pinagana ng WiFi ang Pinagana ng Temperatura na Kinokontrol ng Temperatura ng WiFi: 4 na Hakbang
Video: Temperature Controller ng Mobile Phone na may DT 06 WIFI Module | LDmicro-Roboremo Programming 2024, Hulyo
Anonim
Pinagana ng WiFi ang Pinagana ng Temperatura na Kinokontrol ng Temperatura
Pinagana ng WiFi ang Pinagana ng Temperatura na Kinokontrol ng Temperatura

Sa itinakdang tagubilin na ito titingnan namin kung paano bumuo ng isang probe ng temperatura na pinagana ng WiFi gamit ang isang simpleng ESP8266 para sa mabibigat na pag-aangat at isang sensor ng temperatura / kahalumigmigan ng DHT11. Gagamitin din namin ang circuit board na aking nilikha at ibinebenta din ngayon sa tindie store ng channel kung nais mong bumili.

Magsimula tayo sa bill ng mga materyales na kakailanganin mo:

ESP8266 WiFi Module

amzn.to/2pkGPoa

DHT11 Sensor

amzn.to/2phwfhO

TP-Link Smart Plug

amzn.to/2GElQUz

Maaari mo ring kunin ang buong module sa tindie store para sa channel:

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

Suriin din ang JLCPCB para sa PCB Fabriction. Sila ang dating ginagawa ko ang PCB:

Libreng Pagpapadala sa First Order at $ 2 PCB Prototyping sa

Hakbang 1: Pagdaragdag ng Code sa ESP8266

Kakailanganin namin ngayong i-flash ang sumusunod na code sa ESP8266. Ang code na ito ay matatagpuan sa sumusunod na repository ng github:

Sa code sa ibaba kailangan mo lamang i-set up ang nangungunang ilang mga seksyon ng kahulugan:

MQTT Server:

Gumagamit ng MQTT:

MQTT Password:

MQTT_sensor_topic:

-WiFi

Sinabi: ang sinabi ng wifi network na iyong kumokonekta

Password: ang WiFi password.

Kapag napunan mo na ito sa ibaba ng code maaari mo nang maiipon at suriin ang mga error at kung 0 mga error maaari mo itong mai-flash sa ESP8266.

/ * * Pangalan ng File: TempHumSensor.ino * * Application: HomeAssistant Space Heater Therostat * * Paglalarawan: Ang code na ito ay para sa ESP8266 WiFi na pinagana ang arduino * katugmang aparato. Ipapasa nito ang impormasyon sa temperatura * ng aparato ng DHT11 sa front front ng HASS para sa pagproseso. * * May-akda: M. Sperry - https://www.youtube.com/misperry * Petsa: 03 / * Pagbabago: 1.0 * * * /

# isama

#include #include #include #include #include

# tukuyin ang CON_TIME_OUT 20 // Timeout na walang koneksyon sa wifi

# tukuyin ang MQTT_TIME_OUT 10 // Timeout ng walang koneksyon sa MQTT server

#define DHTPIN 0 // Pin kung saan nakakonekta sa sensor ng DHT

#define DHTTYPE DHT11 // Uri ng sensor ay ang DHT11, maaari mo itong palitan sa DHT22 (AM2302), DHT21 (AM2301)

#define mqtt_server "" // Ipasok ang iyong mga MQTT server adder o IP. Ginagamit ko ang aking DuckDNS adddress (yourname.duckdns.org) sa larangang ito

#define mqtt_user "" // ipasok ang iyong MQTT username #define mqtt_password "" // ipasok ang iyong password #define MQTT_SENSOR_TOPIC "ha / bedroom_temp" // Maglagay ng paksa para sa iyong MQTT

// Wifi: SSID at password

const char * ssid = ""; const char * password = "";

// DHT SEtup

DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t delayMS;

WiFiClient wifiClient;

PubSubClient client (wifiClient);

// function na tinawag upang mai-publish ang temperatura at ang halumigmig

void publishData (float p_temperature) {// lumikha ng isang object na JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Referensi StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: ang data ay dapat na mai-convert sa isang string; nangyayari ang isang problema kapag gumagamit ng floats … // convert to fahrenheit p_temperature = (p_temperature * 1.8) + 32; // convert to fahrenheit root ["temperatura"] = (String) p_temperature; root.prettyPrintTo (Serial); Serial.println ("");

data ng char [200];

root.printTo (data, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, data, totoo); }

// function na tinawag nang dumating ang isang mensahe ng MQTT

void callback (char * p_topic, byte * p_payload, unsigned int p_length) {}

walang bisa muling kumonekta () {

// Loop hanggang sa kumonekta ulit kami habang (! Client.connected ()) {Serial.print ("INFO: Sinusubukan ang koneksyon sa MQTT …"); // Subukang kumonekta kung (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: konektado"); } iba pa {Serial.print ("ERROR: failed, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: subukang muli sa 5 segundo"); // Maghintay ng 5 segundo bago subukang muli ang pagkaantala (5000); }}}

void setup (void) {

Serial.begin (9600);

// Nagsisimula kami sa pamamagitan ng pagkonekta sa isang WiFi network

Serial.println (); Serial.println (); Serial.print ("Kumokonekta sa"); Serial.println (ssid);

WiFi.begin (ssid, password);

habang (WiFi.status ()! = WL_CONNected) {

pagkaantala (800); Serial.print ("."); }

Serial.println ("");

Serial.println ("Konektado sa WiFi"); Serial.println ("IP address:"); Serial.println (WiFi.localIP ()); // init ang MQTT koneksyon client.setServer (mqtt_server, 1883); client.setCallback (callback);

// Initialize DHT sensor

dht.begin (); Serial.println ("DHT11 Unified Sensor Data");

// I-print ang mga detalye ng sensor ng temp

sensor_t sensor; dht.temperature (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Temperatura"); Serial.print ("Sensor:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("Natatanging ID:"); Serial.println (sensor.sensor_id); Serial.print ("Max Value:"); Serial.print (sensor.max_value); Serial.println ("* C"); Serial.print ("Min Halaga:"); Serial.print (sensor.min_value); Serial.println ("* C"); Serial.print ("Resolution:"); Serial.print (sensor.resolution); Serial.println ("* C"); Serial.println ("------------------------------------"); // Mga detalye ng sensor ng halumigmig na naka-print. dht.humidity (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Humidity"); Serial.print ("Sensor:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("Natatanging ID:"); Serial.println (sensor.sensor_id); Serial.print ("Max Value:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Min Halaga:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Resolution:"); Serial.print (sensor.resolution); Serial.println ("%"); Serial.println ("------------------------------------");

// Itakda ang pagkaantala sa pagitan ng mga pagbabasa ng sensor batay sa mga detalye ng sensor

delayMS = sensor.min_delay / 1000; }

walang bisa loop (walang bisa) {

temperatura ng float;

kung (! client.connected ())

{muling ikonekta (); }

antala (delayMS);

// Kumuha ng kaganapan sa temperatura at i-print ang halaga nito.

kaganapan ng sensors_event_t; dht.temperature (). getEvent (& kaganapan); kung (isnan (event.temperature)) {Serial.println ("Error sa pagbabasa ng temperatura!"); temperatura = 0.00; } iba pa {temperatura = event.temperature; Serial.print ("Temperatura:"); Serial.print (temperatura); Serial.println ("* C"); } // publish to MQTT publishData (temperatura); }

Hakbang 2: Pag-set up ng iyong TP-LINK Smart Plug

Pag-set up ng iyong TP-LINK Smart Plug
Pag-set up ng iyong TP-LINK Smart Plug

Kakailanganin mong itakda ang iyong TP-LINK na matalinong plug, o anumang smart plug para sa mater na iyon, ang paraang inirekomenda ng gumagawa.

Siguraduhing tandaan ang MAC address sa aparato. Kung ang iyong aparato ay tulad ng aking TP-LINK na aparato hindi ka maaaring magtakda ng isang static na IP address. Sa gayon, kakailanganin mong i-configure ang iyong router para sa DHCP Reservation. Dadalhin nito ang MAC address ng iyong aparato at kapag humiling ang aparato ng isang address na bibigyan ito ng router ng parehong address sa bawat oras.

Narito ang isang link sa kung paano i-set up ito sa Linksys

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

Hakbang 3: Pag-set up ng Home Assistant

Ngayon upang mai-set up ang Home Assistant. Para dito kakailanganin mong idagdag ang mga sumusunod na pagsasaayos sa config.yaml file na matatagpuan sa istraktura ng /home/homeassistant/.homeassistant folder sa aparato kung saan mo ito na-install.

Kapag natapos na idagdag ito sa pagsasaayos ng iyong home assistant kakailanganin mong i-restart ang iyong home assistant software para maapektuhan ang mga pagbabago.

Gayundin gagamitin ko ang TP-LINK matalinong plug fort ang paglipat ng aparato at ang kahulugan ay nasa ibaba sa file ng pagsasaayos. Ang IP address na ginagamit para sa aparato ay ang na-set up mo para sa pagpapareserba ng DHCP sa nakaraang hakbang.

Ang pagsasaayos na ito ay maaari ding matagpuan sa sumusunod na github repo:

mqtt: switch: - platform: pangalan ng tplink: Host ng Heater sa Silid-tulugan: 192.168.2.11

sensor 1:

platform: mqtt state_topic: 'ha / bedroom_temp' pangalan: Bedroom Temp unit_of_measurement: '° F' value_template: '{{value_json.temperature}}'

automation:

- alias: _Temp Bedroom Temp High trigger: - platform: numeric_state entity_id: sensor. Bedroom_Temp sa itaas: 73

aksyon:

serbisyo: homeassistant.turn_off entity_id: switch. Bedroom_Heater

- alias: _Temp Bedroom Temp Mababang

trigger: - platform: numeric_state entity_id: sensor. Bedroom_Temp sa ibaba: 73 action: service: homeassistant.turn_on entity_id: switch. Bedroom_Heater

Hakbang 4: Pangwakas na Mga Hakbang

Image
Image
Mga Huling Hakbang
Mga Huling Hakbang
Mga Huling Hakbang
Mga Huling Hakbang

Ngayon sa pag-configure ng iyong home assistant at ang iyong Arduino code na naka-set up handa ka na upang buhayin ang buong system. Kaya, ilagay ang iyong heater / fan / cooler plug sa smart plug at plug Sa smart plug. Kapag handa na ito kakailanganin mong mag-plug sa isang maliit na USB charger at pagkatapos ang naka-enable na WiFi na Temperature probe. Sa sandaling ang lahat ay online dapat na tumingin ka sa iyong dashboard ng katulong sa bahay at makita ang bagong naiulat na temperatura.

Maraming salamat sa lahat ng iyong tulong at suporta. tiyaking mag-iiwan ng kagaya at bisitahin ang channel sa https://www.youbue.com/misperry at makita kung ano ang mayroon kami doon para sa iyo. Tiyaking nag-subscribe ka at ibinabahagi sa iyong mga kaibigan upang matulungan ang channel.

Inirerekumendang: