İçindekiler:
- Adım 1: Kodu ESP8266'ya Ekleme
- 2. Adım: TP-LINK Akıllı Fişinizi Kurma
- 3. Adım: Ev Asistanını Ayarlama
- 4. Adım: Son Adımlar
Video: WiFi Etkin Sıcaklık Kontrollü Akıllı Fiş: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Bu talimat setinde, ağır kaldırma için basit bir ESP8266 ve bir DHT11 sıcaklık/nem sensörü kullanarak WiFi özellikli bir sıcaklık probunun nasıl oluşturulacağını inceleyeceğiz. Ayrıca satın almak isterseniz kendi yaptığım ve kanalın tindie mağazasında satışta olan devre kartını da kullanacağız.
İhtiyaç duyacağınız malzeme listesiyle başlayalım:
ESP8266 WiFi Modülü
amzn.to/2pkGPoa
DHT11 Sensörü
amzn.to/2phwfhO
TP-Link Akıllı Fiş
amzn.to/2GElQUz
Tüm modülü kanal için tindie mağazasından da alabilirsiniz:
www.tindie.com/products/misperry/wifi-enab…
Ayrıca PCB Üretimi için JLCPCB'ye bakın. PCB'yi yapmak için kullandığım kişiler:
İlk Siparişte Ücretsiz Gönderim ve https://jlcpcb.com'da 2 $ PCB Prototipleme
Adım 1: Kodu ESP8266'ya Ekleme
Şimdi aşağıdaki kodu ESP8266'ya flashlamamız gerekecek. Bu kod aşağıdaki github deposunda bulunabilir:
Aşağıdaki kodda yalnızca ilk birkaç tanım bölümünü ayarlamanız gerekecek:
MQTT Sunucusu:
MQTT Kullanıcısı:
MQTT Şifresi:
MQTT_sensor_topic:
-Wifi
Dedi ki: Bağlandığınız wifi ağının dedi
Şifre: WiFi şifresi.
Bunu aşağıdaki kodu doldurduktan sonra derleyebilir ve hataları kontrol edebilirsiniz ve eğer 0 hata varsa ESP8266'ya flash edebilirsiniz.
/* * Dosya Adı: TempHumSensor.ino * * Uygulama: HomeAssistant Alan Isıtıcı Termostatı * * Açıklama: Bu kod, ESP8266 WiFi özellikli arduino * uyumlu cihaz içindir. Bu, DHT11 cihazının sıcaklık bilgilerini * işlenmek üzere HASS ön ucuna iletecektir. * * Yazar: M. Sperry - https://www.youtube.com/misperry * Tarih: 03/* Revizyon: 1.0 * * */
#Dahil etmek
#include #include #include #include #include
#define CON_TIME_OUT 20 //Wifi bağlantısı yokken zaman aşımı
#define MQTT_TIME_OUT 10 //MQTT sunucusuna bağlantı yokken zaman aşımı
#define DHTPIN 0 //DHT sensörüne bağlı pin
#define DHTTYPE DHT11 //Sensör tipi DHT11'dir, bunu DHT22 (AM2302), DHT21 (AM2301) olarak değiştirebilirsiniz
#define mqtt_server "" // MQTT sunucu adresinizi veya IP adresinizi girin. Bu alanda DuckDNS adresimi (adınız.duckdns.org) kullanıyorum
#define mqtt_user "" //MQTT kullanıcı adınızı girin #define mqtt_password "" //şifrenizi girin #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" //MQTT'niz için konu girin
// Wifi: SSID ve şifre
const char* ssid = ""; const char* şifre = "";
//DHT Kurulumu
DHT_Unified dht(DHTPIN, DHTTYPE); uint32_t gecikmeMS;
WiFiClient wifiClient;
PubSubClient istemcisi (wifiClient);
// sıcaklık ve nemi yayınlamak için çağrılan fonksiyon
voidPublishData(float p_temperature) { // bir JSON nesnesi oluşturun // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject& root = jsonBuffer.createObject(); // BİLGİ: veriler bir dizgeye dönüştürülmelidir; kayan nokta kullanılırken bir sorun oluşuyor… // fahrenhayt'a çevir p_temperature = (p_temperature * 1.8) + 32; // fahrenhayt'a çevir root["temperature"] = (String)p_temperature; root.prettyPrintTo(Seri); Seri.println("");
karakter verileri[200];
root.printTo(veri, root.measureLength() + 1); client.publish(MQTT_SENSOR_TOPIC, veri, doğru); }
// MQTT mesajı geldiğinde çağrılan fonksiyon
void callback(char* p_topic, byte* p_payload, unsigned int p_length) { }
geçersiz yeniden bağlanma () {
// Yeniden bağlanana kadar döngü while (!client.connected()) { Serial.print("BİLGİ: MQTT bağlantısı deneniyor…"); // Bağlanmaya çalış if (client.connect("ESPBlindstl", mqtt_user, mqtt_password)) { Serial.println("BİLGİ: bağlandı"); } else { Serial.print("HATA: başarısız, rc="); Serial.print(client.state()); Serial.println("DEBUG: 5 saniye sonra tekrar deneyiniz"); // gecikmeyi tekrar denemeden önce 5 saniye bekleyin (5000); } } }
geçersiz kurulum(void) {
Seri.başla(9600);
// Bir WiFi ağına bağlanarak başlıyoruz
Seri.println(); Seri.println(); Serial.print("Bağlanıyor"); Serial.println(ssid);
WiFi.begin(ssid, şifre);
while (WiFi.status() != WL_CONNECTED) {
gecikme(800); Seri.print("."); }
Seri.println("");
Serial.println("WiFi bağlandı"); Serial.println("IP adresi: "); Serial.println(WiFi.localIP()); // MQTT bağlantısını başlat client.setServer(mqtt_server, 1883); client.setCallback(geri arama);
// DHT sensörünü başlat
dht.begin(); Serial.println("DHT11 Birleşik Sensör Verileri");
//Sıcaklık sensörü ayrıntılarını yazdır
sensor_t sensörü; dht.temperature().getSensor(&sensor); Serial.println("------------------------------------"); Serial.println("Sıcaklık"); Seri.print ("Sensör: "); Seri.println(sensör.adı); Serial.print ("Sürücü Sürümü: "); Serial.println(sensör.versiyon); Serial.print ("Benzersiz Kimlik: "); Seri.println(sensor.sensor_id); Serial.print ("Maksimum Değer: "); Seri.print(sensor.max_value); Serial.println(" *C"); Serial.print ("Min Değer: "); Serial.print(sensor.min_value); Serial.println(" *C"); Serial.print ("Çözünürlük: "); Seri.baskı(sensör.çözünürlük); Serial.println(" *C"); Serial.println("------------------------------------"); // Nem sensörü ayrıntılarını yazdırın. dht.humidity().getSensor(&sensor); Serial.println("------------------------------------"); Serial.println("Nem"); Seri.print ("Sensör: "); Seri.println(sensör.adı); Serial.print ("Sürücü Sürümü: "); Serial.println(sensör.versiyon); Serial.print ("Benzersiz Kimlik: "); Seri.println(sensor.sensor_id); Serial.print ("Maksimum Değer: "); Seri.print(sensor.max_value); Serial.println("%"); Serial.print ("Min Değer: "); Serial.print(sensor.min_value); Serial.println("%"); Serial.print ("Çözünürlük: "); Seri.baskı(sensör.çözünürlük); Serial.println("%"); Serial.println("------------------------------------");
// Sensör ayrıntılarına göre sensör okumaları arasındaki gecikmeyi ayarlayın
gecikmeMS = sensor.min_delay / 1000; }
void loop(void) {
yüzer sıcaklık;
if (!client.connected())
{ yeniden bağlan(); }
gecikme (gecikmeMS);
// Sıcaklık olayını alın ve değerini yazdırın.
sensor_event_t olayı; dht.temperature().getEvent(&event); if (isnan(event.temperature)) { Serial.println("Sıcaklık okuma hatası!"); sıcaklık = 0.00; } else { sıcaklık = olay.sıcaklık; Serial.print("Sıcaklık: "); Serial.print(sıcaklık); Serial.println(" *C"); } // MQTT'ye yayınla yayınData(sıcaklık); }
2. Adım: TP-LINK Akıllı Fişinizi Kurma
TP-LINK akıllı fişinizi veya bu malzeme için herhangi bir akıllı fişi üreticinin önerdiği şekilde ayarlamanız gerekecektir.
Cihazdaki MAC adresini not ettiğinizden emin olun. Cihazınız TP-LINK cihazım gibiyse statik bir IP adresi belirleyemezsiniz. Bu nedenle, yönlendiricinizi DHCP Rezervasyonu için yapılandırmanız gerekecektir. Bu, cihazınızın MAC adresini alacak ve bu cihaz bir adres istediğinde yönlendirici ona her seferinde aynı adresi verecektir.
İşte bunu Linksys ile nasıl kuracağınıza dair bir link
www.linksys.com/us/support-article?makale…
3. Adım: Ev Asistanını Ayarlama
Şimdi Ev Asistanını kurmak için. Bunun için kurulumunu yaptığınız cihazda /home/homeassistant/.homeassistant klasör yapısında bulunan configuration.yaml dosyasına aşağıdaki konfigürasyonları eklemeniz gerekecektir.
Bunu ev asistanı yapılandırmanıza eklemeyi bitirdikten sonra, değişikliklerin etkili olması için ev asistanı yazılımınızı yeniden başlatmanız gerekecektir.
Ayrıca anahtarlama cihazı için TP-LINK akıllı fişini kullanacağım ve konfigürasyon dosyasında tanımı aşağıdadır. Aygıt için kullanılan IP adresi, önceki adımda DHCP rezervasyonu için ayarladığınız adrestir.
Bu yapılandırma aşağıdaki github deposunda da bulunabilir:
mqtt:switch: - platform: tplink adı: Yatak Odası Isıtıcı ana bilgisayarı: 192.168.2.11
sensör 1:
platform: mqtt state_topic: 'ha/yatak odası_temp' adı: Yatak Odası Sıcaklık birimi_measurement: '°F' value_template: '{{ value_json.temperature }}'
otomasyon:
- takma ad: _Temp Bedroom Temp Yüksek tetik: - platform: numeric_state entity_id: sensor. Bedroom_Temp yukarıda: 73
eylem:
hizmet: homeassistant.turn_off entity_id: switch. Bedroom_Heater
- takma ad: _Temp Yatak Odası Sıcaklığı Düşük
tetik: - platform: numeric_state entity_id: sensor. Bedroom_Temp aşağıda: 73 action: service: homeassistant.turn_on entity_id: switch. Bedroom_Heater
4. Adım: Son Adımlar
Artık ev asistanınız konfigürasyonunuz ve Arduino kod kurulumunuz ile tüm sistemi aktive etmeye hazır olacaksınız. Böylece ısıtıcı/fan/soğutucu fişinizi akıllı fişe takın ve akıllı fişe takın. Hazır olduğunda, küçük bir USB şarj cihazı ve ardından WiFi özellikli Sıcaklık probu takmanız gerekecektir. Her şey çevrimiçi olduğunda, ev asistanınızın kontrol paneline bakabilmeli ve rapor edilen yeni sıcaklığı görebilmelisiniz.
Tüm yardımlarınız ve desteğiniz için çok teşekkür ederim. Bir beğeni bıraktığınızdan emin olun ve https://www.youbue.com/misperry adresindeki kanalı ziyaret edin ve sizin için orada nelerimiz olduğunu görün. Kanala yardımcı olmak için abone olduğunuzdan ve arkadaşlarınızla paylaştığınızdan emin olun.
Önerilen:
Bluetooth Akıllı Telefon Kontrollü Akıllı LED Lamba: 7 Adım
Bluetooth Akıllı Telefon Kontrollü Akıllı LED Lamba: Her zaman aydınlatma cihazlarımı kontrol etmeyi hayal ediyorum. Sonra biri inanılmaz renkli bir LED lamba yaptı. Geçenlerde Youtube'da Joseph Casha'nın bir LED Lambasına rastladım. Ondan ilham alarak, bağlantıyı korurken birkaç işlev eklemeye karar verdim
Donanım ve Yazılım Hack Akıllı Cihazlar, Tuya ve Broadlink LEDbulb, Sonoff, BSD33 Akıllı Fiş: 7 Adım
Donanım ve Yazılım Hack Akıllı Cihazlar, Tuya ve Broadlink LEDbulb, Sonoff, BSD33 Akıllı Fiş: Bu Derste size birkaç akıllı cihazı kendi yazılımımla nasıl flashladığımı gösteriyorum, böylece onları Openhab kurulumum aracılığıyla MQTT ile kontrol edebilirim. onları hacklediğimde yeni cihazlar.Tabii ki özel f
Akıllı Fiş ESP8266: 6 Adım
Akıllı Fiş ESP8266: Bienvenue sur cet makalesi, hemen hemen her şeyi gözden geçirin ve yeniden tasarlayın. Ayant toujours adoré les, automatiques et optimisées, j'ai décidé de créer moi-même mes prises connectées'i seçer. WiFi üzerinden Celles-ci sont komutaları. La
Akıllı Telefon Kontrollü Akıllı Alışveriş Sepeti: 7 Adım
Akıllı Telefon Kontrollü Akıllı Alışveriş Sepeti: Alışveriş merkezlerini ziyaret etmek eğlenceli olabilir. Ancak Alışveriş Sepetini bir şeylerle doldururken sürüklemek, düpedüz can sıkıcı bir şey. O dar koridorlardan itip o keskin dönüşleri yapmanın acısı! İşte size (bir tür) teklif
Bir USB Güç Kontrollü Fiş Şeridi. İzolasyonlu: 4 Adım (Resimli)
Bir USB Güç Kontrollü Fiş Şeridi. İzolasyon ile: Bu Eğitilebilir Yazının tüm amacı, bilgisayarım için tüm aksesuarları düşünmeden açmama izin vermekti. Ve sonra bilgisayarı kullanmadığımda tüm küçük güçlü vampir duvar siğillerine güç verme. Fikir basit, siz