Mündəricat:

Qapı və Temperatur Vəziyyəti Logger Layihəsi: 21 Adım
Qapı və Temperatur Vəziyyəti Logger Layihəsi: 21 Adım

Video: Qapı və Temperatur Vəziyyəti Logger Layihəsi: 21 Adım

Video: Qapı və Temperatur Vəziyyəti Logger Layihəsi: 21 Adım
Video: Şehid olan esger dirilir .ŞOK .ŞOK.ŞOK 2024, Noyabr
Anonim
Qapı və Temperatur Vəziyyəti Logger Layihəsi
Qapı və Temperatur Vəziyyəti Logger Layihəsi

Bu Təlimat, ESP8266 NodeMCU, DHT11 temperatur və rütubət sensoru, qapı/pəncərə qamışı açarı, 10K ohm rezistor və bəzi bağlama teli istifadə edərək 10.00 dolların altında sadə bir qapı və temperatur statusu qeyd cihazının necə hazırlanacağını sizə göstərəcək.

Bu layihənin yaranması Arduino lövhəsi ilə daha çox ev avtomatlaşdırması etmək istəyimdən qaynaqlandı, çünki Arduino ilə uyğun olan EPS8266 NodeMCU haqqında çox oxuduğum üçün bu lövhənin bəzi təcrübələr aparmaq üçün mükəmməl aşağı qiymətli lövhə olacağına qərar verdim. ESP8266 lövhələrindən istifadə edərək ev avtomatlaşdırma layihələri üçün İnternetdə axtarış etdikdən sonra ilk cəhdim üçün bir temperatur və qapı statusu qeydini birləşdirməyə qərar verdim. Nəhayət, bu layihə, babamın 50 il əvvəl hazırladığı kiçik bir istixananı avtomatlaşdırmaq üçün servo, nəm sensoru və digər elektronika ilə birləşdiriləcək. İstilik sisteminin işə salınması və ya söndürülməsi lazım olduğunu təyin etmək və lazım olduqda havalandırma sistemini açmaq və bağlamaq üçün servolara siqnal vermək üçün temperatur sensoru istifadə ediləcək. Havalandırma sisteminin vəziyyəti maqnit qamış açarlarının istifadəsi ilə izləniləcəkdir. Nəhayət, nəm sensorlar bir suvarma sistemini avtomatlaşdırmaq üçün istifadə ediləcək.

Addım 1: İmtina

Bu təlimatı izləmək nəticəsində baş verən hər hansı bir hadisəyə görə heç bir məsuliyyət daşımadığımızı bildirmək üçün tez bir şəkildə imtina etməliyik. Bir şey tikərkən istehsalçıların təlimatlarına və təhlükəsizlik vərəqələrinə riayət etmək həmişə ən yaxşısıdır. Sadəcə, özümüzü yaratmaq üçün istifadə etdiyimiz addımlar haqqında məlumat veririk. Biz peşəkar deyilik. Əslində bu quruluşa qatılan hər 3 nəfərdən 2 -si uşaqdır.

Addım 2: Pulsuz IFTTT Hesabını qurun

Pulsuz IFTTT Hesabı qurun
Pulsuz IFTTT Hesabı qurun

Hələ biriniz yoxdursa, indi ana səhifələrinə gedərək pulsuz bir IFTTT hesabı qurmağın vaxtıdır.. IFTTT, Əgər Bu Odursa deməkdir və İnternetə əsaslanan xidmətləri yeni yollarla bağlamağa imkan verən pulsuz bir platformadır. bu xidmətlərdən yeni yollarla istifadə etməyə imkan verir. Bu layihə üçün, bir ESP8266 -nın Google Sheets sənədindəki DHT11 sensoru vasitəsi ilə qapının vəziyyətini qamış açarı və temperatur və rütubət vasitəsi ilə qeyd etməsinə icazə vermək üçün IFTTT istifadə edəcəyik.

Addım 3: IFTTT Appleti yaradın

IFTTT tətbiqi yaradın
IFTTT tətbiqi yaradın

Hələ IFTTT -də olarkən "Mənim Appletlərim" bölməsinə keçin və "New Applet" düyməsini basaraq yeni bir applet yaradın.

Addım 4: Appletinizin "bu" hissəsini konfiqurasiya edin

Konfiqurasiya edin
Konfiqurasiya edin

Yuxarıdakı şəkildə göstərildiyi kimi mavi rəngdə olan "bu" sözünü vurun.

Addım 5: WebHooks Xidmətini Appletinizə əlavə edin

WebHooks Xidmətini Appletinizə əlavə edin
WebHooks Xidmətini Appletinizə əlavə edin

Axtarış çubuğunda "Webhooks" xidmətini axtarın və Webhooks simgesini seçin.

"Webhooks" xidmətini tapdıqdan sonra üzərinə vurun.

Addım 6: Veb İstəyi Tetikleyicisini Alın

Veb İstəyi Tetikleyicisini Alın
Veb İstəyi Tetikleyicisini Alın

"Veb sorğusu al" tetikleyicisini seçin.

Addım 7: Bir hadisə adı verin

Bir hadisə adı verin
Bir hadisə adı verin

Mətn qutusuna bir hadisə adı ilə yeni tətbiqetməni daxil edin. "Data Logger" i seçdim, amma istədiyinizi seçə bilərsiniz.

Adım 8: Appletinizin "o" hissəsini konfiqurasiya edin

Konfiqurasiya edin
Konfiqurasiya edin

Yuxarıdakı şəkildə göstərildiyi kimi mavi rəngdə olan "o" sözünə vurun.

Addım 9: Fəaliyyət Xidməti qurun

Fəaliyyət Xidməti qurun
Fəaliyyət Xidməti qurun

Axtarış qutusunda "Google Cədvəllər" xidmətini axtarın və Google Cədvəllər simgesini basın.

Addım 10: Google Cədvəllərə qoşulun

Google Cədvəllərə qoşulun
Google Cədvəllərə qoşulun

Əgər bunu hələ etməmisinizsə, IFTTT hesabınızı Google Cədvəllərə bağlamalısınız. Yuxarıda göstərilən Bağlan düyməsini basın və ekrandakı təlimatları izləyin.

Addım 11: Bir hərəkət seçin

Fəaliyyət seçin
Fəaliyyət seçin

"Cədvələ Satır Əlavə et" düyməsini basın.

Addım 12: Fəaliyyəti qurun

Fəaliyyəti qurun
Fəaliyyəti qurun

"Elektron tablo adı" mətn qutusuna bir ad daxil edin. Ardıcıllıq üçün "Data_Logger" istifadə etməyi seçirəm. Ayarın qalan hissəsini tək buraxın (başqa vaxt bu parametrlərlə təcrübə edə bilərsiniz) və sonra ekranın altındakı "Fəaliyyət Yarat" düyməsini basın.

Addım 13: Appletinizi nəzərdən keçirin və tamamlayın

Appletinizi nəzərdən keçirin və tamamlayın
Appletinizi nəzərdən keçirin və tamamlayın

Applet konfiqurasiyasından razı qaldıqdan sonra "Finish" düyməsini basın.

Addım 14: Daha sonra lazım olan Konfiqurasiya məlumatlarını əldə edin

Daha sonra lazım olan Konfiqurasiya məlumatlarını əldə edin
Daha sonra lazım olan Konfiqurasiya məlumatlarını əldə edin

Yuxarıda göstərildiyi kimi "Webhooks" düyməsini basın.

Addım 15: API Açarı üçün Webhooks Sənədlərinə keçin

API Açarı üçün Webhooks Sənədlərinə keçin
API Açarı üçün Webhooks Sənədlərinə keçin

Qəribə görünə bilər, ancaq unikal API Açarınızla səhifəyə keçmək üçün yuxarı sağdakı Sənədlər bağlantısını vurun.

Addım 16: API Açarını qeyd edin

API Açarını qeyd edin
API Açarını qeyd edin
API Açarını qeyd edin
API Açarını qeyd edin

Sənədlər ekranının ilk sətri unikal API Açarınızı göstərir. Daha sonra istifadə etmək üçün bu açarı kopyalayın və saxlayın.

Appleti burada sınamaq da yaxşı bir fikirdir. {Event} -ni Data_Logger olaraq dəyişdirməyi və ya hadisənizi adlandırdığınız hər şeyi 3 boş dəyərə əlavə etməyi unutmayın, sonra səhifənin altındakı "Test et" düyməsini basın. "Hadisə tetiklendi" yazan yaşıl bir mesaj görməlisiniz. Əgər belədirsə, Google Sənədlərə keçin və test səhifəsinə daxil etdiyiniz məlumatların Google Cədvəl sənədində göründüyünü təsdiq edin.

Addım 17: Komponentləri toplayın

Komponentləri toplayın
Komponentləri toplayın
Komponentləri toplayın
Komponentləri toplayın
Komponentləri toplayın
Komponentləri toplayın

Yalnız bir neçə hissəyə ehtiyacınız olacaq.

1) ESP8266 NodeMcu İnkişaf Lövhəsi

2) DHT11 Temperatur/Rütubət Sensoru

3) Qapı/Pəncərə Reed Switch

4) 10k Ohm rezistor

5) Bağlama teli

Addım 18: Komponentləri yığın

1) ESP8266 üzərindəki 3v3 pindən birini DHT11 üzərindəki vcc pininə qoşun.

2) ESP8266 üzərindəki torpaq pinlərindən birini DHT11 üzərindəki topraklama pininə bağlayın.

3) ESP8266 üzərindəki D4 pinini (IDE -də 2 -ci pin) DHT11 -dəki məlumat pininə qoşun.

4) ESP8266 üzərindəki başqa bir 3v3 pimi qapının/pəncərə sazının açarının bir tərəfinə bağlayın.

5) ESP8266 üzərindəki D5 pinini (IDE -də a.1 pin) qapı/pəncərə çubuğu açarının digər tərəfinə bağlayın və 10k ohm müqavimətinin bir tərəfinə bağlayın.

6) 10k ohm müqavimətinin digər tərəfini ESP8266 -dakı başqa bir yerə bağlayın.

ESP8266 pin seçimləri üçün bu faydalı diaqrama və ya çox faydalı videoya baxın.

Addım 19: Arduino Kodunu yazın

Arduino kodunu yazın
Arduino kodunu yazın

Aşağıdakı kodu kopyalayın və Arduino IDE -yə yapışdırın.

#əlavə edin #əlavə edin "DHT.h" daxil edin

#dehine DHTPIN 2 // bağlı olduğumuz rəqəmsal pin

#deorine DOORPIN 14 // qapı açarının hansı rəqəmsal pin olduğunu.

#DHTTYPE DHT11 // DHT 11 təyin edin

DHT dht (DHTPIN, DHTTYPE);

int sayı = 1;

const char* ssid = "some_ssid"; // ssid const char* password = "some_password" istifadə etmək üçün bunu dəyişdirin; // parolunuzu istifadə etmək üçün bunu dəyişdirin int sleepTime = 100;

// İstehsalçı Webhooks IFTTT

const char* server = "maker.ifttt.com";

// IFTTT URL mənbəyi

const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; // Xidmət adınızı və api açarınızı istifadə etdiyinizə əmin olun.

String doorStatus = "Bağlandı";

uçucu bool stateChanged = false;

// Saatlarla yatırsınızsa, aralığınızı saat * 60 dəqiqə * 60 saniyə * 1000 milisaniyə ilə təyin edin

const uzun interval = 1.0 * 60 * 60 * 1000; // 1 saat imzasız uzun əvvəlkiMillis = 0 - (2 * interval);

boş quraşdırma () {

Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DOORPIN, GİRİŞ); // Qapı Sensoru dht.begin (); WiFi.begin (ssid, parol);

Serial.print ("\ nBağlanır..");

while (WiFi.status ()! = WL_CONNECTED) {gecikmə (1000); Serial.print ("."); } Serial.print ("\ n"); }

void eventTriggered () {

stateChanged = doğru; Serial.println ("Qapının yoxlanılması!"); if (digitalRead (DOORPIN) == HIGH) // Qapının açıq olub olmadığını yoxlayın {Serial.println ("Qapı bağlıdır!"); doorStatus = "Bağlandı"; } başqa {Serial.println ("Qapı açıqdır!"); doorStatus = "Açıldı"; }}

void checkStatus () {

if (WiFi.status () == WL_CONNECTED) {// WiFi bağlantısının vəziyyətini yoxlayın // Oxuma temperaturu və ya rütubət təxminən 250 millisaniyə çəkir! // Sensor oxunuşları da 2 saniyəyə qədər ola bilər (çox yavaş bir sensordur) float h = dht.readHumidity (); // İstiliyi Celsius olaraq oxuyun (standart) float t = dht.readTemperature (); // İstiliyi Fahrenheit (isFahrenheit = true) float f = dht.readTemperature (doğru) olaraq oxuyun; // Oxunanların uğursuz olub olmadığını yoxlayın və erkən çıxın (yenidən cəhd etmək üçün). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("DHT sensorundan oxunmadı!"); //Serial.print ("."); // DHT sensorundan oxumaq alınmadı! qayıtmaq; } // Fahrenheit -də istilik indeksini hesablayın (standart) float hif = dht.computeHeatIndex (f, h); // İstilik indeksini Selsi ilə hesablayın (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);

Serial.print ("\ n");

Serial.print ("Temperatur:"); Serial. çap (f); Serial.print (" *F ("); Serial.print (t); Serial.print (" *C)"); Serial.print ("\ t"); Serial.print ("İstilik indeksi:"); Serial. çap (hif); Serial.print (" *F ("); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print ("Rütubət:"); Serial.println (h);

if (digitalRead (DOORPIN) == HIGH) // Qapının açıq olub olmadığını yoxlayın

{Serial.println ("Qapı bağlıdır!"); doorStatus = "Bağlandı"; } başqa {Serial.println ("Qapı açıqdır!"); doorStatus = "Açıldı"; } String jsonObject = String ("{" dəyər1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" dəyər2 / ": \" " + h +" / ", \" dəyər3 / ": \" " + qapı vəziyyəti +" / "}"; HTTPClient http; String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (server); http.addHeader ("Content-Type", "application/json"); http. POST (jsonObject); http.writeToStream (& Serial); http.end (); // Bağlantını bağlayın

stateChanged = yalan;

int sleepTimeInMinutes = interval / 1000/60; Serial.print ("\ n / nYuxuya get"); Serial.print (sleepTimeInMinutes); Serial.println ("dəqiqə (lər)…"); }}

boşluq döngəsi () {

işarəsiz uzun cariMillis = millis (); gecikmə (4000); // Keçən vaxtı keçsək, qapını və istiliyi yoxlayın. if (currentMillis - previousMillis> = interval) {stateChanged = true; əvvəlkiMillis = cariMillis; Serial.print (say ++); Serial.println (") Keçmiş vaxta görə yoxlanılır!"); } else if (stateChanged) {Serial.print (count ++); Serial.println (") Vəziyyət dəyişikliyinə görə yoxlanılır!"); }

// Vəziyyət dəyişərsə, qapını və istiliyi yoxlayın.

if (stateChanged) {checkStatus (); }

gecikmə (yuxu vaxtı);

}

Addım 20: Nəticələr

Nəticələr
Nəticələr

Əvvəlki addımda mənbə kodunu yüklədikdən sonra yuxarıda göstərilən nümunə kimi nəticələr əldə etməlisiniz.

Addım 21: Kreditlər

Random Nerd Dərsliklərindən bir çox faydalı göstərişlər və məsləhətlər tapdım və bütün köməklərinə görə onlara təşəkkür etmək istəyirəm. Xüsusilə ESP32 ESP8266 -da bu Təlimat kitabının əsas hissələrinin əsaslandığı Google Cədvəllərində Sensor Oxumalarını Nəşr etdirmək üzrə əla dərsliklər.

Əlavə olaraq, TheCircuit -dən DHT11 Instructable, bu çox ucuz, lakin maraqlı kiçik sensordan necə istifadə edəcəyimi başa düşməyimə kömək etdi.

Bundan əlavə, Garage Door Monitor və Random Nerd Tutorials -dan başqa qapılarınızı izləməklə məşğul olan bir çox dərslər var. Çubuğumun düzgün işləməsini başa düşməyimə kömək etmək üçün bunların bir hissəsini istifadə etdim.

Nəhayət, İnternetdə tapdığım bu məlumatlar və digər detallarla ehtiyaclarımı ödəyən bir sistem yarada bildim. Ümid edirəm bu Təlimatlandırmanı faydalı hesab edirsiniz və özünüzdən birini qurursunuz.

Tövsiyə: