Talaan ng mga Nilalaman:
- Hakbang 1: Pagdaragdag ng Code sa ESP8266
- Hakbang 2: Pag-set up ng iyong TP-LINK Smart Plug
- Hakbang 3: Pag-set up ng Home Assistant
- Hakbang 4: Pangwakas na Mga Hakbang
Video: Pinagana ng WiFi ang Pinagana ng Temperatura na Kinokontrol ng Temperatura ng WiFi: 4 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
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
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
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:
Kinokontrol ng WiFi ang Unicorn Cap? Gamit ang RGB Lights: 5 Hakbang (may Mga Larawan)
Kinokontrol ng WiFi ang Unicorn Cap? Sa RGB Lights: Kamusta sa lahat. Ang aking maliit na bata ay hinihimok ako, ilang sandali, tungkol sa mga kagiliw-giliw na naisusuot na DIY na nauugnay sa mga unicorn. Kaya, napakamot ako ng ulo at nagpasyang lumikha ng isang bagay na hindi pangkaraniwan at may napakababang badyet. Ang proyekto na ito ay hindi nangangailangan ng app sa cont
Pinagana ng Remote Control ang Alexa (gamit ang WEMO D1 Mini): 3 Mga Hakbang
Pinagana ng Remote Control ang Alexa (gamit ang WEMO D1 Mini): Ito ay isang na-update na bersyon ng isang nakaraang post: https: //www.instructables.com/id/Voice-Activated-R.. Sa nakaraang bersyon, gumamit ako ng Geetech module ng boses upang makontrol ang isang regular na uri ng opener ng pintuan ng garahe ng remote. Sa itinuturo na ito pinalitan ko ang vo
Pinagana ng Wifi ang OLED ESP32 Mga Car Gauge: 3 Hakbang (na may Mga Larawan)
Pinagana ng Wifi ang OLED ESP32 Mga Gauge ng Kotse: Mga pagpapakilala muna … Bumubuo ako ng mga gauge ng kotse bilang isang uri ng muli at off na libangan. Tingnan ang https: //www.instructables.com/id/Remote-Car-Monit … at https: //www.instructables.com/id/Remote-Car-Monit … para sa dalawa pang mga kamakailang halimbawa. Lalo na gusto ko
RabbitPi - pinagana ang Alexa, Nakakonekta ang IFTTT, Assistant sa Ear-Wiggling IoT: 12 Hakbang
RabbitPi - pinagana ang Alexa, Nakakonekta ang IFTTT, Assistant sa Ear-Wiggling IoT: Ito ay isang hindi na ginagamit noong 2005 Nabaztag " matalinong kuneho " na binuo ko ulit sa isang modernong IoT Assistant na gumagamit ng isang Raspberry Pi 3 at isang Adafruit Motor HAT, na may isang mikropono ng webcam at isang nagsasalita ng Philips Soundshooter na nakapaloob sa nakatutuwa na orihinal na cas
Gamit ang Iyong Bluetooth Pinagana ang Sony Ericsson Telepono upang Makontrol ang Iyong Computer: 6 Mga Hakbang
Paggamit ng Iyong Bluetooth na Pinagana ang Sony Ericsson Telepono upang Makontrol ang Iyong Kompyuter: Kanina pa ako nagbabasa ng mga itinuturo, at palaging nais kong gawin ang ilan sa mga bagay na sinulat ng mga tao, ngunit nahanap ko ang aking sarili sa mga bagay na ay mahirap gawin dahil ang mga ito ay tunay na mahirap gawin, o ang ika