Мазмуну:
- 1 -кадам: ESP8266 кодун кошуу
- 2-кадам: TP-LINK Smart Plug орнотуу
- 3 -кадам: Үй жардамчысын орнотуу
- 4 -кадам: Акыркы кадамдар
Video: WiFi иштетилген Температураны көзөмөлдөгөн Smart Plug: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Бул нускамада биз оор жүктү көтөрүү үчүн жөнөкөй ESP8266 жана DHT11 температура/нымдуулук сенсорун колдонуу менен WiFi иштетилген температура зондун кантип курууну карап чыгабыз. Эгерде мен сатып алууну кааласаңыз, мен түзгөн жана азыр каналдын tindie дүкөнүндө сатылып жаткан схеманы дагы колдонобуз.
Келгиле, сизге керектүү болгон материалдардын эсеби менен баштайлы:
ESP8266 WiFi модулу
amzn.to/2pkGPoa
DHT11 сенсор
amzn.to/2phwfhO
TP-Link Smart Plug
amzn.to/2GElQUz
Ошондой эле каналдын tindie дүкөнүнөн бүт модулду алып кетсеңиз болот:
www.tindie.com/products/misperry/wifi-enab…
Ошондой эле текшерүү JLCPCB үчүн PCB Fabriction. Алар мен ПХБ жасоо үчүн колдонулган адамдар:
Https://jlcpcb.com сайтында биринчи тартипте акысыз жеткирүү жана $ 2 PCB прототиптөөсү
1 -кадам: ESP8266 кодун кошуу
Эми биз ESP8266га төмөнкү кодду жаркыратышыбыз керек. Бул кодду төмөнкү github репозиторийинен тапса болот:
Төмөндөгү коддо сиз эң жогорку бир нече аныктама бөлүмдөрүн орнотушуңуз керек болот:
MQTT Server:
MQTT Колдонуучу:
MQTT сырсөзү:
MQTT_sensor_topic:
-WiFi
Айтты: сиз туташып жаткан wifi тармагы жөнүндө
Сырсөз: WiFi сырсөзү.
Төмөндөгү кодду толтургандан кийин, каталарды текшерип, 0 каталар болсо, аны ESP8266га жаркырата аласыз.
/ * * Файлдын аты: TempHumSensor.ino * * Колдонмо: HomeAssistant Space Heater Thermostat * * Description: Бул код ESP8266 WiFi иштетилген arduino * шайманы үчүн. Бул DHT11 түзмөгүнүн температурасы жөнүндө маалыматты * иштетүү үчүн HASS фронтуна өткөрүп берет. * * Автор: М. Сперри - https://www.youtube.com/misperry * Date: 03/ * Revision: 1.0 * * */
#кошуу
#кошуу #кошуу #кошуу #кошуу #кошуу
#аныктоо CON_TIME_OUT 20 // wifiга туташуу убактысы бүткөн жок
#define MQTT_TIME_OUT 10 // MQTT серверине туташуу жок
#Define DHTPIN 0 // DHT сенсоруна туташкан пин
#Define DHTTYPE DHT11 // Сенсордун түрү DHT11, аны DHT22 (AM2302), DHT21 (AM2301) кылып өзгөртө аласыз
#define mqtt_server "" // MQTT серверинин кошуусун же IPиңизди киргизиңиз. Мен бул талаада DuckDNS дарегимди (yourname.duckdns.org) колдоном
#define mqtt_user "" // MQTT колдонуучу атыңызды киргизиңиз #define mqtt_password "" // сырсөзүңүздү киргизиңиз #dequine MQTT_SENSOR_TOPIC "ha/bedroom_temp" // MQTT үчүн теманы киргизиңиз.
// Wifi: SSID жана сырсөз
const char* ssid = ""; const char* password = "";
// DHT Setup
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 (); // ИНФО: маалыматтар сапка айландырылышы керек; сүзгүчтөрдү колдонууда көйгөй жаралат… // fahrenheitке которуу p_temperature = (p_temperature * 1.8) + 32; // фаренгейт тамырына айландыруу ["температура] = (Стринг) 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: туташкан"); } else {Serial.print ("ERROR: fail, rc ="); Serial.print (client.state ()); Serial.println ("Мүчүлүштүктөрдү жоюу: 5 секунддан кийин кайра аракет кылыңыз"); // 5 секунд күтө туруңуз, кечигүү (5000); }}}
жараксыз орнотуу (жараксыз) {
Serial.begin (9600);
// Биз WiFi тармагына туташуудан баштайбыз
Serial.println (); Serial.println (); Serial.print ("Туташууда"); Serial.println (ssid);
WiFi.begin (ssid, сырсөз);
while (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 Unified Sensor Data");
// Температура сенсорунун чоо -жайын басып чыгаруу
sensor_t сенсор; dht.temperature (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Температура"); Serial.print ("Сенсор:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("Unique ID:"); Serial.println (sensor.sensor_id); Serial.print ("Max Value:"); Serial.print (sensor.max_value); Serial.println (" *C"); Serial.print ("Минималдуу маани:"); Serial.print (sensor.min_value); Serial.println (" *C"); Serial.print ("Токтом:"); Serial.print (сенсор.чечим); Serial.println (" *C"); Serial.println ("------------------------------------"); // Нымдуулук сенсорунун чоо -жайын басып чыгаруу. dht.humidity (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Нымдуулук"); Serial.print ("Сенсор:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("Unique ID:"); Serial.println (sensor.sensor_id); Serial.print ("Max Value:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Минимал:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Токтом:"); Serial.print (сенсор.чечим); Serial.println ("%"); Serial.println ("------------------------------------");
// Сенсордун деталдарынын негизинде сенсорлордун окуусунун ортосундагы кечигүүнү коюңуз
delayMS = sensor.min_delay / 1000; }
боштук цикл (жараксыз) {
сүзүү температурасы;
if (! client.connected ())
{кайра туташуу (); }
кечигүү (delayMS);
// Температура окуясын алыңыз жана анын маанисин басып чыгарыңыз.
sensors_event_t окуясы; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Температураны окуу катасы!"); температура = 0,00; } башка {температура = event.temperature; Serial.print ("Температура:"); Serial.print (температура); Serial.println (" *C"); } // MQTT -ге жарыялоо publishData (температура); }
2-кадам: TP-LINK Smart Plug орнотуу
Сиз 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: switch: - платформа: tplink аты: Bedroom Heater хост: 192.168.2.11
сенсор 1:
платформа: mqtt state_topic: 'ha/bedroom_temp' аты: Уктоочу бөлмө температурасынын бирдиги_ 'өлчөө:' ° F 'маани_темплети:' {{value_json.temperature}} '
автоматташтыруу:
- каймана аты: _Temp Bedroom Temp High trigger: - платформа: numeric_state entity_id: sensor. Bedroom_Temp жогоруда: 73
аракет:
кызмат: homeassistant.turn_off entity_id: switch. Bedroom_Heater
- каймана аты: _Temp Bedroom Temp Low
триггер: - платформа: 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 дарегине келип, бизде эмне бар экенин көрүңүз. Жазылууну унутпаңыз жана каналга жардам берүү үчүн досторуңуз менен бөлүшүңүз.
Сунушталууда:
WiFi иштетилген матрица чырагы: 6 кадам (сүрөттөр менен)
WiFi иштетилген матрицалык чырак: Ким анимацияларды көрсөтө турган жана үйдөгү башка лампалар менен шайкештештире ала турган укмуштуу лампанын болушун каалабайт? Лампа 256 жеке даректүү светодиоддон турат жана бардык светодиоддор карама -каршы болушу мүмкүн
Wifi иштетилген OLED ESP32 унаа көрсөткүчтөрү: 3 кадам (сүрөттөр менен)
Wifi иштетилген OLED ESP32 унаа өлчөгүчтөрү: Биринчи тааныштыруулар … Мен автоунаа өлчөгүчтөрүн кайра иштетүү жана кайра хобби катары жасайм. Караңыз https: //www.instructables.com/id/Remote-Car-Monit … жана https: //www.instructables.com/id/Remote-Car-Monit … дагы эки акыркы мисал үчүн. Мага өзгөчө жагат
Температураны көзөмөлдөгөн күйөрман!: 4 кадам
Температураны көзөмөлдөгөн күйөрман!: Сингапур сыяктуу тропикалык өлкөдө жашагандыктан, күнү бою тердөө көңүлдү оорутат, ошол эле учурда окууга же иштөөгө көңүл буруу керек. Аба агып, өзүңүздү муздатуу үчүн мен температура жөнүндө идеяны ойлоп таптым
WiFi иштетилген микро-квадроторду куруңуз: 5 кадам
Wi-Fi иштетилген микро-квадроторду куруңуз: бул жөн гана өзүңүздүн Wi-Fi иштетилген микро-квадроторуңуздун канчалык жөнөкөй экенин жазыңыз! Бөлүктөрдүн көбүн арзан жана оңой сатып алууга болот. Ал эми Android телефонуңузду алыстан башкаруучу катары колдонуңуз
ESP8266 Температураны көзөмөлдөгөн реле: 9 кадам (Сүрөттөр менен)
ESP8266 Температура Башкарылган Релеси: Менин досум - абанын температурасына жана нымдуулугуна өтө сезгич эксперименттерди жасаган илимпоз. Инкубатордун бөлмөсүндө кичинекей керамикалык жылыткыч бар, бирок жылыткычтын термостаты жетишерлик так болгон эмес, болгону температураны сактай алган