İçindekiler:
- 1. Adım: Sorumluluk Reddi
- Adım 2: Ücretsiz IFTTT Hesabı Kurun
- 3. Adım: Bir IFTTT Uygulaması oluşturun
- Adım 4: Applet'inizin "bu" Kısmını yapılandırın
- Adım 5: WebHooks Hizmetini Applet'inize ekleyin
- Adım 6: Bir Web İsteği Al Tetikleyicisini Kurun
- 7. Adım: Bir Etkinlik Adı Sağlayın
- Adım 8: Applet'inizin "o" Kısmını yapılandırın
- 9. Adım: Bir Eylem Hizmeti Kurun
- Adım 10: Google E-Tablolar'a bağlanın
- 11. Adım: Bir Eylem Seçin
- Adım 12: Eylemi Ayarlayın
- Adım 13: Applet'inizi İnceleyin ve Sonlandırın
- Adım 14: Daha Sonra Gereken Yapılandırma Bilgilerini Alın
- 15. Adım: API Anahtarı için Webhooks Belgelerine geçin
- Adım 16: API Anahtarını Kaydedin
- Adım 17: Bileşenleri Toplayın
- Adım 18: Bileşenleri Birleştirin
- Adım 19: Arduino Kodunu Yazın
- Adım 20: Sonuçlar
- Adım 21: Krediler
Video: Kapı ve Sıcaklık Durum Kaydedici Projesi: 21 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Bu Eğitilebilir Tablo, bir ESP8266 NodeMCU, bir DHT11 sıcaklık ve nem sensörü, bir kapı/pencere indükleme anahtarı, bir 10K ohm direnç ve bir miktar bağlantı kablosu kullanarak 10,00 doların altında basit bir kapı ve sıcaklık durum kaydedicisinin nasıl yapıldığını gösterecektir.
Bu projenin doğuşu, Arduino kartıyla daha fazla ev otomasyonu yapma arzumdan geldi, Arduino uyumlu EPS8266 NodeMCU hakkında çok şey okuduğumdan, bu kartın bazı deneyler yapmak için mükemmel, düşük maliyetli bir kart olacağına karar verdim. ESP8266 kartlarını kullanarak İnternet'te ev otomasyon projeleri için arama yaptıktan sonra, ilk denememde bir sıcaklık ve kapı durum kaydedicisini birleştirmeye karar verdim. Sonunda bu proje, büyükbabamın 50 yıl önce tasarlayıp inşa ettiği küçük bir serayı otomatikleştirmek için servolar, nem sensörleri ve diğer elektroniklerle birleştirilecek. Sıcaklık sensörü, ısıtma sisteminin devreye girmesi veya devreden çıkarılması gerektiğini belirlemek ve gerektiğinde havalandırma sistemini açmak ve kapatmak için servolara sinyal vermek için kullanılacaktır. Havalandırma sisteminin durumu, manyetik reed anahtarları kullanılarak izlenecektir. Son olarak, bir sulama sistemini otomatikleştirmek için nem sensörleri kullanılacaktır.
1. Adım: Sorumluluk Reddi
Bu talimatı izlemenin bir sonucu olarak meydana gelen hiçbir şey için HİÇBİR sorumluluk almadığımızı belirtmek için kısa bir sorumluluk reddi. Herhangi bir şey inşa ederken üretici talimatlarını ve güvenlik sayfalarını takip etmek her zaman en iyisidir, bu nedenle kendinizinkini oluşturmak için kullandığınız herhangi bir parça ve araç için lütfen bu belgelere bakın. Biz sadece kendi adımlarımızı oluşturmak için kullandığımız adımlar hakkında bilgi veriyoruz. Biz profesyonel değiliz. Nitekim bu yapıya katılan her 3 kişiden 2'si çocuk.
Adım 2: Ücretsiz IFTTT Hesabı Kurun
Henüz bir hesabınız yoksa, ana sayfasına giderek ücretsiz bir IFTTT hesabı oluşturmanın tam zamanı. bu hizmetlerden yeni yollarla yararlanmanızı sağlar. Bu proje için, bir ESP8266'nın bir kamış anahtarı aracılığıyla bir kapının durumunu ve bir Google E-Tablolar belgesindeki DHT11 sensörü aracılığıyla sıcaklık ve nemi kaydetmesine izin vermek için IFTTT kullanacağız.
3. Adım: Bir IFTTT Uygulaması oluşturun
Hala IFTTT'deyken “Uygulamalarım” bölümüne ilerleyin ve “Yeni Uygulama” düğmesine tıklayarak yeni bir uygulama oluşturun.
Adım 4: Applet'inizin "bu" Kısmını yapılandırın
Yukarıdaki şekilde vurgulandığı gibi, mavi renkte olan “bu” kelimeye tıklayın.
Adım 5: WebHooks Hizmetini Applet'inize ekleyin
Arama çubuğunda “Web kancaları” hizmetini arayın ve Web kancaları simgesini seçin.
"Web kancaları" hizmetini bulduğunuzda, üzerine tıklayın.
Adım 6: Bir Web İsteği Al Tetikleyicisini Kurun
"Bir web isteği al" tetikleyicisini seçin.
7. Adım: Bir Etkinlik Adı Sağlayın
Metin kutusunda yeni uygulamanıza bir olay adı girin. Ben "Data Logger"ı seçtim ama sen istediğini seçebilirsin.
Adım 8: Applet'inizin "o" Kısmını yapılandırın
Yukarıdaki şekilde vurgulandığı gibi, mavi renkte olan “o” kelimeye tıklayın.
9. Adım: Bir Eylem Hizmeti Kurun
Arama kutusunda "Google E-Tablolar" hizmetini arayın ve Google E-Tablolar simgesini tıklayın.
Adım 10: Google E-Tablolar'a bağlanın
Henüz yapmadıysanız, IFTTT hesabınızı Google E-Tablolar'a bağlamanız gerekmez. Yukarıda gösterilen Bağlan düğmesine basın ve ekrandaki talimatları izleyin.
11. Adım: Bir Eylem Seçin
"E-tabloya Satır Ekle" ye tıklayın.
Adım 12: Eylemi Ayarlayın
"E-tablo adı" metin kutusuna bir ad girin. Tutarlılık için "Data_Logger" kullanmayı seçiyorum. Ayarın geri kalanını olduğu gibi bırakın (başka bir zamanda bu ayarlarla deneme yapabilirsiniz) ve ardından ekranın altındaki "Eylem Oluştur" düğmesine basın.
Adım 13: Applet'inizi İnceleyin ve Sonlandırın
Applet yapılandırmanızdan memnun kaldığınızda "Son" düğmesine basın.
Adım 14: Daha Sonra Gereken Yapılandırma Bilgilerini Alın
Yukarıda vurgulandığı gibi "Web kancaları"na tıklayın.
15. Adım: API Anahtarı için Webhooks Belgelerine geçin
Garip görünebilir, ancak benzersiz API Anahtarınızla sayfaya ilerlemek için sağ üstteki Belgeler bağlantısını tıklayın.
Adım 16: API Anahtarını Kaydedin
Dokümantasyon ekranının ilk satırı, benzersiz API Anahtarınızı görüntüler. Bu anahtarı daha sonra kullanmak üzere kopyalayın ve kaydedin.
Ayrıca uygulamayı burada test etmek de iyi bir fikirdir. {event} öğesini Data_Logger veya etkinliğinize ne ad verdiyseniz değiştirmeyi unutmayın ve 3 boş değere biraz veri ekleyin ve ardından sayfanın altındaki "Test Et" düğmesini tıklayın. “Olay tetiklendi” diyen yeşil bir mesaj görmelisiniz. Öyleyse, Google Dokümanlar'a ilerleyin ve test sayfasına girdiğiniz verilerin Google E-Tablolar belgesinde göründüğünü onaylayın.
Adım 17: Bileşenleri Toplayın
Sadece birkaç parçaya ihtiyacınız olacak.
1) ESP8266 NodeMcu Geliştirme Kartı
2) DHT11 Sıcaklık/Nem Sensörü
3) Kapı/Pencere Reed Anahtarı
4) 10k Ohm Direnç
5) Bağlantı Teli
Adım 18: Bileşenleri Birleştirin
1) ESP8266'daki 3v3 pininden birini DHT11'deki vcc pinine bağlayın.
2) ESP8266'daki topraklama pinlerinden birini DHT11'deki topraklama pinine bağlayın.
3) ESP8266'daki D4 pimini (IDE'deki diğer adıyla pim 2) DHT11'deki veri pimine bağlayın.
4) ESP8266 üzerindeki başka bir 3v3 pinini kapı/pencere indükleme anahtarının bir tarafına bağlayın.
5) ESP8266'daki D5 pinini (IDE'deki pin 14 olarak da bilinir) kapı/pencere indükleme anahtarının diğer tarafına bağlayın ve ayrıca 10k ohm rezistörün bir tarafına bağlayın.
6) 10k ohm'luk direncin diğer tarafını ESP8266'daki başka bir topraklama pinine bağlayın.
ESP8266 pin seçimleri için lütfen bu faydalı şemaya veya çok faydalı videoya bakın.
Adım 19: Arduino Kodunu Yazın
Aşağıdaki kodu kopyalayıp Arduino IDE'nize yapıştırın.
#include #include #include "DHT.h"
#define DHTPIN 2 // hangi dijital pine bağlıyız
#define DOORPIN 14 // kapı anahtarının hangi dijital pinde olduğu.
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
int sayı = 1;
const char* ssid = "some_ssid"; // bunu ssid const char* şifrenizi kullanacak şekilde değiştirin = "some_password"; // parolanızı kullanmak için bunu değiştirin int sleepTime = 100;
// Maker Web kancaları IFTTT
const char* sunucu = "maker.ifttt.com";
// IFTTT URL kaynağı
const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; //Servis adınızı ve API anahtarınızı kullandığınızdan emin olun.
String doorStatus = "Kapalı";
uçucu bool stateChanged = false;
// Saatlerce uyuyorsanız, aralığı sa * 60 dakika * 60 saniye * 1000 milisaniye olarak ayarlayın
const uzun aralık = 1.0 * 60 * 60 * 1000; // 1 saat işaretsiz uzun öncekiMillis = 0 - (2 * aralık);
geçersiz kurulum () {
Seri.başla(115200); AttachInterrupt(digitalPinToInterrupt(DOORPIN), eventTriggered, CHANGE); pinMode(DOORPIN, GİRİŞ); //Kapı Sensörü dht.begin(); WiFi.begin(ssid, şifre);
Serial.print("\nBağlanıyor..");
while (WiFi.status() != WL_CONNECTED) { gecikme(1000); Seri.print("."); } Serial.print("\n"); }
void eventTriggered(){
durumChanged = true; Serial.println("Kapı kontrol ediliyor!"); if (digitalRead(DOORPIN)==HIGH) // Kapının açık olup olmadığını kontrol edin { Serial.println("Kapı kapalı!"); doorStatus = "Kapalı"; } else { Serial.println("Kapı açık!"); doorStatus = "Açıldı"; } }
geçersiz checkStatus(){
if (WiFi.status() == WL_CONNECTED) { //WiFi bağlantı durumunu kontrol edin // Sıcaklık veya nem okuması yaklaşık 250 milisaniye sürer! // Sensör okumaları ayrıca 2 saniyeye kadar 'eski' olabilir (çok yavaş bir sensördür) float h = dht.readHumidity(); // Sıcaklığı Celsius (varsayılan) olarak oku float t = dht.readTemperature(); // Sıcaklığı Fahrenheit olarak oku (isFahrenheit = true) float f = dht.readTemperature(true); // Herhangi bir okumanın başarısız olup olmadığını kontrol edin ve erken çıkın (tekrar denemek için). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("DHT sensöründen okunamadı!"); //Seri.print("."); //DHT sensöründen okunamadı! dönüş; } // Isı endeksini Fahrenhayt cinsinden hesapla (varsayılan) float hif = dht.computeHeatIndex(f, h); // Isı endeksini Celsius cinsinden hesaplayın (isFahreheit = false) float hic = dht.computeHeatIndex(t, h, false);
Seri.print("\n");
Serial.print("Sıcaklık: "); Seri.baskı(f); Serial.print(" *F ("); Serial.print(t); Serial.print(" *C)"); Seri.print("\t"); Serial.print("Isı indeksi: "); Seri.print(hif); Serial.print(" *F ("); Serial.print(hic); Serial.print(" *C)%"); Seri.print("\t"); Serial.print("Nem: "); Seri.println(h);
if (digitalRead(DOORPIN)==HIGH) // Kapının açık olup olmadığını kontrol edin
{ Serial.println("Kapı kapalı!"); doorStatus = "Kapalı"; } else { Serial.println("Kapı açık!"); doorStatus = "Açıldı"; } String jsonObject = String("{"value1\":\"") + f +"*F (" + t + "*C) / "+ hif +"*F (" + hic + "*C) " + "\", \"değer2\":\"" + h + "\", \"değer3\":\"" + kapıDurumu + " \"}"; HTTPClient http; String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin(completeUrl); // http.begin(sunucu); http.addHeader("İçerik Türü", "uygulama/json"); http. POST(jsonObject); http.writeToStream(&Seri); http.end(); //Yakın bağlantı
durumChanged = yanlış;
int sleepTimeInMinutes = aralık / 1000 / 60; Serial.print("\n\nUyumaya git "); Serial.print(sleepTimeInMinutes); Serial.println("dakika(lar) …"); } }
boşluk döngüsü () {
imzasız uzun akımMillis = millis(); gecikme(4000); //Geçen süreyi aştıysak, kapıyı ve sıcaklığı kontrol etmeye zorla. if(currentMillis - öncekiMillis >= interval){ stateChanged = true; öncekiMillis = şimdikiMillis; Seri.print(sayım++); Serial.println(") Geçen süre nedeniyle kontrol ediliyor!"); }else if(stateChanged){ Serial.print(count++); Serial.println(") Durum değişikliği nedeniyle kontrol ediliyor!"); }
//Durum değiştiyse kapıyı ve sıcaklığı kontrol edin.
if(stateChanged){ checkStatus(); }
gecikme (uyku zamanı);
}
Adım 20: Sonuçlar
Bir önceki adımda kaynak kodunu yüklediğinizde, yukarıda gösterilen örnekteki gibi sonuçlar elde etmiş olmalısınız.
Adım 21: Krediler
Random Nerd Tutorials'tan birçok yararlı ipucu ve ipucu buldum ve tüm yardımları için onlara teşekkür etmek istiyorum. Özellikle ESP32 ESP8266 hakkındaki mükemmel öğreticileri, bu Talimatın büyük bölümlerinin dayandığı Google Sayfalarına Sensör Okumaları Yayınlayın.
Ek olarak, TheCircuit'ten DHT11 Instructable, bu çok ucuz ama ilginç küçük sensörün nasıl kullanılacağını anlamama yardımcı oldu.
Ayrıca, Garaj Kapısı Monitörü ve Rastgele Nerd Öğreticilerinden bir diğeri gibi kapılarınızı izlemekle ilgili birçok eğitim vardır. Kamış anahtarımın düzgün çalışmasını nasıl sağlayacağımı anlamama yardımcı olması için bunların parçalarını kullandım.
Son olarak, bu bilgilerle ve internette bulduğum diğer detaylarla ihtiyaçlarımı karşılayan bir sistem oluşturabildim. Umarım bu Eğitilebilirliği faydalı bulursunuz ve kendinize ait bir tane oluşturursunuz.
Önerilen:
Arduino UNO ve SD-Kart ile Nem ve Sıcaklık Gerçek Zamanlı Veri Kaydedici Nasıl Yapılır - Proteus'ta DHT11 Veri Kaydedici Simülasyonu: 5 Adım
Arduino UNO ve SD-Kart ile Nem ve Sıcaklık Gerçek Zamanlı Veri Kaydedici Nasıl Yapılır | Proteus'ta DHT11 Veri Kaydedici Simülasyonu: Giriş: merhaba, ben Liono Maker, işte YouTube bağlantısı. Arduino ile yaratıcı projeler yapıyoruz ve gömülü sistemler üzerinde çalışıyoruz
Minik ESP8266 Sıcaklık Kaydedici (Google Sayfaları): 15 Adım
Tiny ESP8266 Sıcaklık Kaydedici (Google E-Tablolar): Bu, kendi, kesinlikle küçük WiFi özellikli sıcaklık kaydedicinizi nasıl yapacağınıza dair bir kılavuzdur. ESP-01 modülüne ve DS18B20 dijital sıcaklık sensörüne dayanmaktadır ve 200 mAh lityum pil ve mikro U ile sıkı bir 3D baskılı kasaya paketlenmiştir
Raspberry Pi Sıcaklık Kaydedici: 8 Adım
Raspberry Pi Sıcaklık Kaydedici: 5,00 ABD doları I2C sıcaklık sensörü kullanarak basit bir sıcaklık kaydedici oluşturma talimatları. Veriler SD kartta saklanır ve kolayca excel'e aktarılabilir. Basitçe diğer sensörleri değiştirerek veya ekleyerek diğer veri türleri de b
Acil Durum Güç Bankası - DIY Araç Kutusu Solar: Radyo+ Şarj Cihazı+ Acil Durum için Işık!: 4 Adım
Acil Durum Güç Bankası - Kendin Yap Araç Kutusu Solar: Radyo+ Şarj Cihazı+ Acil Durum için Işık!: Ekle 28 Mart 2015: Alet kutumu acil durumlar için yaptım ve şimdi şehrim çamura gömüldüğü için kullanıyorum. Tecrübe olarak telefon şarj etmek ve radyo dinlemek için hizmet ettiğimi söyleyebilirim. Eski bir alet çantası mı? eski bir bilgisayar hoparlörü? kullanılmayan 12 voltluk bir pil mi? Yapabilirsiniz
AtticTemp - Sıcaklık / İklim Kaydedici: 10 Adım (Resimlerle)
AtticTemp - Sıcaklık / İklim Kaydedici: Tavan arası veya diğer dış mekan yapılarınız için yüksek toleranslı sıcaklık göstergesi ve iklim kaydedici