Агуулгын хүснэгт:
- Алхам 1: ESP8266 -д кодыг нэмж оруулах
- Алхам 2: TP-LINK ухаалаг залгуурыг тохируулах
- Алхам 3: Гэрийн туслахыг тохируулах
- Алхам 4: Эцсийн алхамууд
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Энэхүү зааварчилгааны багцад бид хүнд даацын зориулалттай энгийн ESP8266 болон DHT11 температур/чийгшил мэдрэгч ашиглан WiFi идэвхжүүлсэн температурын датчикийг хэрхэн бүтээх талаар авч үзэх болно. Хэрэв та худалдаж авахыг хүсвэл миний үүсгэсэн хэлхээний самбарыг бас ашиглах болно, мөн одоо сувгийн tindie дэлгүүрт зарагдаж байна.
Танд хэрэгтэй материалын хуудсыг эхэлье.
ESP8266 WiFi модуль
amzn.to/2pkGPoa
DHT11 мэдрэгч
amzn.to/2phwfhO
TP-Link ухаалаг залгуур
amzn.to/2GElQUz
Та мөн сувгийн tindie дэлгүүрээс модулийг бүхэлд нь авах боломжтой.
www.tindie.com/products/misperry/wifi-enab…
ПХБ -ийн даавууны хувьд JLCPCB -ийг үзнэ үү. Тэд миний ПХБ -ийг хийж байсан хүмүүс юм.
Эхний захиалгаар үнэгүй хүргэлт, 2 долларын ПХБ -ийн прототипийг https://jlcpcb.com дээрээс авах боломжтой
Алхам 1: ESP8266 -д кодыг нэмж оруулах
Одоо бид дараах кодыг ESP8266 дээр асаах хэрэгтэй болно. Энэ кодыг дараах github репозитороос олж болно:
Доорх код дээр та зөвхөн тодорхойлолтын шилдэг хэдэн хэсгийг тохируулах хэрэгтэй болно.
MQTT сервер:
MQTT хэрэглэгч:
MQTT нууц үг:
MQTT_sensor_topic:
-Wi -Fi
Гэж хэлсэн: таны холбогдож буй wifi сүлжээний тухай
Нууц үг: WiFi нууц үг.
Доорх кодыг бөглөсний дараа та алдааг эмхэтгэж, шалгаж болно, хэрэв 0 алдаа байвал үүнийг ESP8266 дээр асааж болно.
/ * * Файлын нэр: TempHumSensor.ino * * Програм: HomeAssistant зай халаагчийн термостат * * Тодорхойлолт: Энэ код нь ESP8266 WiFi -ийг дэмждэг arduino * нийцтэй төхөөрөмжид зориулагдсан болно. Энэ нь DHT11 төхөөрөмжийн температурын мэдээллийг * HASS -ийн урд хэсэгт боловсруулж дамжуулах болно. * * Зохиогч: М. Сперри - https://www.youtube.com/misperry * Огноо: 03/ * Хянан засварлах: 1.0 * * */
#оруулах
#оруулах #оруулах #оруулах #оруулах #оруулах
CON_TIME_OUT 20 -ийг #тодорхойлно уу // wifi -тай холбогдоогүй байна
#тодорхойлох MQTT_TIME_OUT 10 // MQTT сервертэй холбогдоогүй байна
#тодорхойлох DHTPIN 0 // DHT мэдрэгчтэй холбогдсон зүү
#тодорхойлох DHTTYPE DHT11 // Мэдрэгчийн төрөл нь DHT11 бөгөөд та үүнийг DHT22 (AM2302), DHT21 (AM2301) болгон өөрчилж болно.
#define mqtt_server "" // MQTT серверийн нэмэгдлүүд эсвэл IP хаягаа оруулна уу. Би энэ талбарт DuckDNS хаяг (yourname.duckdns.org) ашигладаг
#define mqtt_user "" // MQTT хэрэглэгчийн нэрээ оруулна уу #dequine mqtt_password "" // нууц үгээ оруулна уу #dequine MQTT_SENSOR_TOPIC "ha/bedroom_temp" // MQTT -ийнхээ сэдвийг оруулна уу.
// Wifi: SSID ба нууц үг
const char* ssid = ""; const char* нууц үг = "";
// DHT -ийн тохиргоо
DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t delayMS;
WiFiClient wifiClient;
PubSubClient үйлчлүүлэгч (wifiClient);
// температур ба чийгшлийг нийтлэх функц
void publishData (float p_temperature) {// JSON объект үүсгэх // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: өгөгдлийг мөр болгон хөрвүүлэх ёстой; хөвөгчийг ашиглахад асуудал гардаг… // fahrenheit рүү хөрвүүлэх p_temperature = (p_temperature * 1.8) + 32; // фаренгейтийн үндэс болгон хөрвүүлэх ["температур"] = (String) p_temperature; root.prettyPrintTo (Цуваа); Serial.println ("");
char өгөгдөл [200];
root.printTo (өгөгдөл, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, өгөгдөл, үнэн); }
// функц нь MQTT мессеж ирэхэд дуудагддаг
хүчингүй дуудлага хийх (char* p_topic, байт* p_payload, гарын үсэг зураагүй int p_length) {}
хүчингүй дахин холбох () {
// (! Client.connected ()) {Serial.print ("INFO: MQTT холболтыг оролдож байна …") байхад бид дахин холбогдох хүртэл гогцоо хийх; // Холбох оролдлого хэрэв (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: холбогдсон"); } өөр {Serial.print ("ERROR: fail, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: 5 секундын дараа дахин оролдоно уу"); // Дахин оролдохын тулд 5 секунд хүлээнэ үү (5000); }}}
хүчингүй тохиргоо (хүчингүй) {
Цуваа эхлэх (9600);
// Бид WiFi сүлжээнд холбогдож эхэлдэг
Serial.println (); Serial.println (); Serial.print ("Холбогдож байна"); Serial.println (ssid);
WiFi.begin (ssid, нууц үг);
байхад (WiFi.status ()! = WL_CONNECTED) {
саатал (800); Serial.print ("."); }
Serial.println ("");
Serial.println ("WiFi холбогдсон"); Serial.println ("IP хаяг:"); Serial.println (WiFi.localIP ()); // init MQTT холболт client.setServer (mqtt_server, 1883); client.setCallback (буцааж залгах);
// DHT мэдрэгчийг эхлүүлэх
dht.begin (); Serial.println ("DHT11 мэдрэгчийн нэгдсэн мэдээлэл");
// Температур мэдрэгчийн дэлгэрэнгүй мэдээллийг хэвлэх
sensor_t мэдрэгч; dht.temperature (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Температур"); Serial.print ("Мэдрэгч:"); Serial.println (мэдрэгчийн нэр); Serial.print ("Driver Ver:"); Serial.println (мэдрэгч. Хувилбар); Serial.print ("Өвөрмөц ID:"); Serial.println (sensor.sensor_id); Serial.print ("Хамгийн их утга:"); Цуваа.хэвлэх (sensor.max_value); Serial.println (" *C"); Serial.print ("Хамгийн бага утга:"); Цуваа.хэвлэх (sensor.min_value); Serial.println (" *C"); Serial.print ("Тогтоол:"); Цуваа.хэвлэх (мэдрэгч. Шийдвэр); Serial.println (" *C"); Serial.println ("------------------------------------"); // Чийглэг мэдрэгчийн дэлгэрэнгүй мэдээллийг хэвлэх. dht.humidity (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Чийгшил"); Serial.print ("Мэдрэгч:"); Serial.println (мэдрэгчийн нэр); Serial.print ("Driver Ver:"); Serial.println (мэдрэгч. Хувилбар); Serial.print ("Өвөрмөц ID:"); Serial.println (sensor.sensor_id); Serial.print ("Хамгийн их утга:"); Цуваа.хэвлэх (sensor.max_value); Serial.println ("%"); Serial.print ("Хамгийн бага утга:"); Цуваа.хэвлэх (sensor.min_value); Serial.println ("%"); Serial.print ("Тогтоол:"); Цуваа.хэвлэх (мэдрэгч. Шийдвэр); Serial.println ("%"); Serial.println ("------------------------------------");
// Мэдрэгчийн дэлгэрэнгүй мэдээлэл дээр үндэслэн мэдрэгчийн уншилтын хоорондох хоцролтыг тохируулна уу
delayMS = sensor.min_delay / 1000; }
void loop (хүчингүй) {
хөвөх температур;
if (! client.connected ())
{дахин холбогдох (); }
саатал (delayMS);
// Температурын үйл явдлыг олж аваад түүний утгыг хэвлэ.
sensors_event_t үйл явдал; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Температурыг уншихад алдаа!"); температур = 0.00; } өөр {температур = event.temperature; Serial.print ("Температур:"); Цуврал хэвлэх (температур); Serial.println (" *C"); } // MQTT -д нийтлэх, нийтлэхData (температур); }
Алхам 2: TP-LINK ухаалаг залгуурыг тохируулах
Та TP-LINK ухаалаг залгуур эсвэл уг төхөөрөмжид зориулсан ухаалаг залгуурыг үйлдвэрлэгчийн зөвлөсний дагуу тохируулах хэрэгтэй болно.
Төхөөрөмж дээрх MAC хаягийг анхаарч үзэх хэрэгтэй. Хэрэв таны төхөөрөмж миний TP-LINK төхөөрөмж шиг байвал статик IP хаягийг оруулах боломжгүй болно. Тиймээс та чиглүүлэгчээ DHCP захиалгад тохируулах хэрэгтэй болно. Энэ нь таны төхөөрөмжийн MAC хаягийг авах бөгөөд тухайн төхөөрөмж хаягийг хүссэн тохиолдолд чиглүүлэгч түүнд ижил хаягийг өгөх болно.
Үүнийг Linksys ашиглан хэрхэн тохируулах талаархи линк энд байна
www.linksys.com/us/support-article?article…
Алхам 3: Гэрийн туслахыг тохируулах
Одоо гэрийн туслахыг тохируулах болно. Үүнийг хийхийн тулд та суулгасан төхөөрөмж дээрх /home/homeassistant/.homeassistant фолдерын бүтцэд байгаа configuration.yaml файлд дараах тохиргоог нэмэх шаардлагатай болно.
Үүнийг гэрийн туслах тохиргоондоо нэмж дуусмагц өөрчлөлтүүд хүчин төгөлдөр болохын тулд та гэрийн туслах програмаа дахин эхлүүлэх шаардлагатай болно.
Мөн би TP-LINK ухаалаг залгуурыг сэлгэн залгах төхөөрөмж дээр ашиглах бөгөөд тодорхойлолтыг тохиргооны файлд доор харуулав. Төхөөрөмжид ашигладаг IP хаяг нь өмнөх алхамд DHCP захиалга хийхээр тохируулсан хаяг юм.
Энэ тохиргоог дараах github репо дээрээс олж болно:
mqtt: шилжүүлэгч: - платформ: tplink нэр: Унтлагын өрөөний халаагчийн хост: 192.168.2.11
мэдрэгч 1:
платформ: mqtt state_topic: 'ha/bedroom_temp' нэр: Унтлагын өрөөний температурын нэгжийн хэмжээс: '° F' утга_темплэйт: '{{value_json.temperature}}'
автоматжуулалт:
- alias: _Temp Bedroom Temp High trigger: - платформ: numeric_state entity_id: sensor. Bedroom_Temp дээрх: 73
үйлдэл:
үйлчилгээ: homeassistant.turn_off entity_id: switch. Bedroom_Heater
- alias: _Temp унтлагын өрөөний температур бага
гох: - платформ: numeric_state entity_id: sensor. Bedroom_Temp доор: 73 үйлдэл: үйлчилгээ: homeassistant.turn_on entity_id: switch. Bedroom_Heater
Алхам 4: Эцсийн алхамууд
Гэрийн туслахын тохиргоо болон Arduino кодыг тохируулсны дараа та системийг бүхэлд нь идэвхжүүлэхэд бэлэн болно. Тиймээс халаагч/сэнс/сэрүүн залгуураа ухаалаг залгуурт хийж ухаалаг залгуурт залгаарай. Бэлэн болмогц та жижиг USB цэнэглэгч, дараа нь WiFi идэвхжүүлсэн температур мэдрэгчийг залгах хэрэгтэй болно. Бүх зүйл онлайн болсны дараа та гэрийнхээ туслах самбараас харж, шинэ температурын талаар мэдээлэх боломжтой байх ёстой.
Бүх тусламж, дэмжлэгт маш их баярлалаа. лайк үлдээж, https://www.youbue.com/misperry дээрх сувгаар зочилж, танд хэрэгтэй бүх зүйлийг олж мэдээрэй. Та сувагт туслахын тулд бүртгүүлж найзуудтайгаа хуваалцаарай.
Зөвлөмж болгож буй:
Raspberry Pi RF алсын удирдлагатай сүлжээний залгуур (цахилгаан залгуур): 6 алхам
Raspberry Pi RF-ийн алсын удирдлагатай сүлжээний залгуур (цахилгаан залгуур): Raspberry Pi ашиглан 433 МГц-ийн хямд залгууруудыг (хананы залгуур) удирдах. Pi нь сокетуудын алсын удирдлагаас гаргадаг хяналтын кодыг сурч, програмын хяналтан дор бүх байшингийн алсын эсвэл бүх залгуурыг идэвхжүүлэх боломжтой
Интернет идэвхжүүлсэн цахилгаан залгуур: 13 алхам
Интернет идэвхжүүлсэн цахилгаан гаралт: PowerHub вэб серверийн төсөл & Танай гэрт интернэт идэвхжүүлсэн гэрэл ба гаралтын мэдээллийн төвлөрсөн төв
Steinhart-Hart-ийн залруулга ба температурын дохиолол бүхий ESP32 NTP температурын шалгалт хийх термометр: 7 алхам (зурагтай)
Steinhart-Hart-ийн залруулга ба температурын дохиолол бүхий ESP32 NTP температурын шалгалт хийх термометр: "Удахгүй болох төсөл", " ESP32 NTP-ийн температурын мэдрэгчтэй хоол хийх термометрийг Steinhart-Hart-ийн залруулга ба температурын дохиололоор " Энэ бол миний NTP температурын датчикийг хэрхэн нэмэхийг зааж өгөх заавар юм, piezo b
Ухаалаг гар утасны хяналттай ухаалаг дэлгүүрийн тэрэг: 7 алхам
Ухаалаг гар утасны хяналттай ухаалаг дэлгүүрийн тэрэг: Их дэлгүүрүүдээр зочлох нь хөгжилтэй байдаг. Гэхдээ сагсыг бөглөхдөө чирэх нь үнэхээр эгдүүцлийг төрүүлдэг. Тэдгээр нарийн эгнээгээр түлхэж, тэр огцом эргэлт хийх өвдөлт! Тиймээс, танд санал болгож буй зүйл бол
DIY WiFi ухаалаг залгуур: 7 алхам (зурагтай)
DIY WiFi ухаалаг залгуур: Энэ бол DHT 11 температурын мэдрэгч, яаралтай LED гэрэлтэй ухаалаг залгуур юм. Ердийнх шиг энэ залгуурыг ямар ч ухаалаг гар утасны WiFi сүлжээгээр асааж, унтрааж болно. Үүнийг мөн интернетэд холбогдож, Интернэт зүйлийг ашиглах боломжтой болно