Isi kandungan:

Projek Logger Status Pintu dan Suhu: 21 Langkah
Projek Logger Status Pintu dan Suhu: 21 Langkah

Video: Projek Logger Status Pintu dan Suhu: 21 Langkah

Video: Projek Logger Status Pintu dan Suhu: 21 Langkah
Video: Jordan Vincent ‘Prank’ Pegang Tangan Anna Jobling, Netizen Petik Nama Meerqeen,“Ada Yang Merajuk Ni 2024, Julai
Anonim
Projek Pembalak Status Pintu dan Suhu
Projek Pembalak Status Pintu dan Suhu

Instructable ini akan menunjukkan cara membuat logger status pintu dan suhu sederhana dengan harga di bawah $ 10.00 menggunakan ESP8266 NodeMCU, sensor suhu dan kelembapan DHT11, suis reed pintu / tingkap, perintang 10K ohm dan beberapa wayar hookup.

Permulaan projek ini berasal dari keinginan saya untuk membuat lebih banyak automasi rumah dengan papan Arduino, Oleh kerana saya telah banyak membaca mengenai EPS8266 NodeMCU yang serasi dengan Arduino, saya memutuskan bahawa papan ini akan menjadi papan kos rendah yang sempurna untuk melakukan percubaan. Setelah mencari di Internet untuk projek automasi rumah menggunakan papan ESP8266, saya memutuskan untuk menggabungkan pencatat status suhu dan pintu untuk percubaan pertama saya. Akhirnya projek ini akan digabungkan dengan servo, sensor kelembapan dan elektronik lain untuk mengautomasikan rumah hijau kecil yang dirancang dan dibina oleh datuk saya 50 tahun yang lalu. Sensor suhu akan digunakan untuk menentukan apakah sistem pemanasan harus diaktifkan atau dilepaskan serta memberi isyarat kepada servo untuk membuka dan menutup sistem pengudaraan apabila diperlukan. Keadaan sistem pengudaraan akan dipantau dengan menggunakan suis reed magnetik. Akhirnya, sensor kelembapan akan digunakan untuk mengautomasikan sistem penyiraman.

Langkah 1: Penafian

Sekadar penafian cepat untuk menyatakan bahawa kami TIDAK bertanggung jawab atas apa sahaja yang berlaku akibat mengikuti arahan ini. Selalu lebih baik mengikuti arahan dan helaian keselamatan pengeluar semasa membuat apa-apa, jadi sila rujuk dokumen tersebut untuk mana-mana bahagian dan alat yang anda gunakan untuk membina sendiri. Kami hanya memberikan maklumat mengenai langkah-langkah yang kami gunakan untuk membuat langkah kami. Kami bukan profesional. Sebenarnya, 2 dari 3 individu yang mengambil bahagian dalam binaan ini adalah kanak-kanak.

Langkah 2: Sediakan Akaun IFTTT Percuma

Sediakan Akaun IFTTT Percuma
Sediakan Akaun IFTTT Percuma

Sekiranya anda belum memilikinya, sekarang adalah masa untuk menyediakan akaun IFTTT percuma dengan pergi ke halaman utama mereka.. IFTTT bermaksud If This Then That dan merupakan platform percuma yang membolehkan anda menghubungkan perkhidmatan berasaskan internet dengan cara baru untuk membolehkan anda memanfaatkan perkhidmatan tersebut dengan cara baru. Untuk projek ini kita akan menggunakan IFTTT untuk membolehkan ESP8266 mencatat status pintu melalui suis buluh dan suhu dan kelembapan melalui sensor DHT11 dalam dokumen Helaian Google.

Langkah 3: Buat Applet IFTTT

Buat Applet IFTTT
Buat Applet IFTTT

Ketika masih dalam IFTTT, lanjutkan ke bagian "My Applet" dan buat applet baru dengan mengklik butang "Applet Baru".

Langkah 4: Konfigurasikan Bahagian "ini" dari Applet Anda

Konfigurasikan
Konfigurasikan

Klik pada kata "ini" yang berwarna biru - seperti yang disorot pada gambar di atas.

Langkah 5: Tambahkan Perkhidmatan WebHooks ke Applet Anda

Tambahkan Perkhidmatan WebHooks ke Applet Anda
Tambahkan Perkhidmatan WebHooks ke Applet Anda

Di bar carian, cari perkhidmatan "Webhooks" dan pilih ikon Webhooks.

Sebaik sahaja anda menjumpai perkhidmatan "Webhooks", klik padanya.

Langkah 6: Siapkan Penerima Permintaan Web Pencetus

Siapkan Pencetus Permintaan Web
Siapkan Pencetus Permintaan Web

Pilih pemicu "Terima permintaan web".

Langkah 7: Sediakan Nama Acara

Berikan Nama Acara
Berikan Nama Acara

Dalam kotak teks berikan applet baru anda dengan nama acara. Saya memilih "Data Logger" tetapi anda boleh memilih apa sahaja yang anda suka.

Langkah 8: Konfigurasikan Bahagian "itu" dari Applet Anda

Konfigurasikan
Konfigurasikan

Klik pada kata "itu" yang berwarna biru - seperti yang disorot pada gambar di atas.

Langkah 9: Sediakan Perkhidmatan Tindakan

Sediakan Perkhidmatan Tindakan
Sediakan Perkhidmatan Tindakan

Di kotak carian, cari perkhidmatan "Helaian Google", dan klik ikon Helaian Google.

Langkah 10: Sambungkan ke Helaian Google

Sambung ke Helaian Google
Sambung ke Helaian Google

Sekiranya anda belum melakukannya, anda tidak perlu menyambungkan akaun IFTTT anda ke Helaian Google. Tekan butang Connect yang ditunjukkan di atas dan ikuti arahan di skrin.

Langkah 11: Pilih Tindakan

Pilih Tindakan
Pilih Tindakan

Klik pada "Tambah Baris ke Spreadsheet".

Langkah 12: Siapkan Tindakan

Siapkan Tindakan
Siapkan Tindakan

Berikan nama di kotak teks "Spreadsheet name". Saya memilih untuk menggunakan "Data_Logger" untuk konsistensi. Tinggalkan pengaturan yang lain (anda boleh bereksperimen dengan tetapan tersebut pada waktu lain) dan kemudian tekan butang "Buat Tindakan" di bahagian bawah skrin.

Langkah 13: Kaji dan Selesaikan Applet Anda

Kaji dan Selesaikan Applet Anda
Kaji dan Selesaikan Applet Anda

Setelah berpuas hati dengan konfigurasi applet anda tekan butang "Selesai".

Langkah 14: Dapatkan Maklumat Konfigurasi yang Diperlukan Kemudian

Dapatkan Maklumat Konfigurasi Diperlukan Kemudian
Dapatkan Maklumat Konfigurasi Diperlukan Kemudian

Klik pada "Webhooks" seperti yang dinyatakan di atas.

Langkah 15: Teruskan ke Dokumentasi Webhooks untuk Kunci API

Teruskan ke Dokumentasi Webhooks untuk Kunci API
Teruskan ke Dokumentasi Webhooks untuk Kunci API

Nampaknya pelik tetapi klik pada pautan Dokumentasi di kanan atas untuk meneruskan ke halaman dengan Kunci API unik anda.

Langkah 16: Simpan Kunci API

Simpan Kunci API
Simpan Kunci API
Simpan Kunci API
Simpan Kunci API

Baris pertama skrin Dokumentasi memaparkan Kunci API unik anda. Salin dan Simpan kunci ini untuk digunakan kemudian.

Adalah idea yang baik untuk menguji applet di sini. Ingatlah untuk menukar {event} menjadi Data_Logger atau apa sahaja yang anda namakan acara anda dan tambahkan beberapa data ke 3 nilai kosong kemudian klik butang "Uji Itu" di bahagian bawah halaman. Anda akan melihat mesej hijau yang mengatakan "Acara telah dipicu". Sekiranya demikian, teruskan ke Dokumen Google dan sahkan bahawa data yang anda masukkan di halaman ujian muncul dalam dokumen Helaian Google.

Langkah 17: Kumpulkan Komponen

Kumpulkan Komponen
Kumpulkan Komponen
Kumpulkan Komponen
Kumpulkan Komponen
Kumpulkan Komponen
Kumpulkan Komponen

Anda hanya memerlukan beberapa bahagian.

1) Lembaga Pembangunan NodeMcu ESP8266

2) Sensor Suhu / Kelembapan DHT11

3) Suis Reed Pintu / Tingkap

4) Perintang 10k Ohm

5) Kawat Hookup

Langkah 18: Susun Komponen

1) Sambungkan salah satu pin 3v3 pada ESP8266 ke pin vcc di DHT11.

2) Sambungkan salah satu pin ground pada ESP8266 ke pin ground di DHT11.

3) Sambungkan pin D4 (sebutan pin 2 di IDE) pada ESP8266 ke pin data di DHT11.

4) Sambungkan pin 3v3 lain pada ESP8266 ke satu sisi suis buluh pintu / tingkap.

5) Sambungkan pin D5 (a.k.a. pin 14 di IDE) pada ESP8266 ke sisi lain suis reed pintu / tingkap dan sambungkan juga ke satu sisi perintang 10k ohm.

6) Sambungkan sisi lain perintang 10k ohm ke pin ground yang lain pada ESP8266.

Untuk pemilihan pin ESP8266, sila rujuk gambar rajah berguna ini atau video yang sangat membantu.

Langkah 19: Tulis Kod Arduino

Tuliskan Kod Arduino
Tuliskan Kod Arduino

Salin dan tampal kod di bawah ini ke Arduino IDE anda.

#include #include #include "DHT.h"

#tentukan DHTPIN 2 // pin digital apa yang kita sambungkan

#define DOORPIN 14 // pin digital apa suis pintu dihidupkan.

#tentukan DHTTYPE DHT11 // DHT 11

DHT dht (DHTPIN, DHTTYPE);

kiraan int = 1;

const char * ssid = "some_ssid"; // ubah ini untuk menggunakan ssid const char * password = "some_password" anda; // ubah ini untuk menggunakan kata laluan anda int sleepTime = 100;

// Pembuat Webhooks IFTTT

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

// Sumber URL IFTTT

const char * resource = "/ trigger / SOME_SERVICE_NAME / dengan / key / SOME_API_KEY"; // Pastikan menggunakan nama perkhidmatan dan kunci api anda.

String doorStatus = "Tutup";

keadaan bool tidak menentuChanged = false;

// Jika tidur berjam-jam kemudian tetapkan selang dengan jam * 60 minit * 60 saat * 1000 milisaat

selang panjang const = 1.0 * 60 * 60 * 1000; // 1 jam yang lama tidak ditandatangani sebelumnyaMillis = 0 - (selang 2 *);

batal persediaan () {

Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, TUKAR); pinMode (DOORPIN, INPUT); // Sensor Pintu dht.begin (); WiFi.begin (ssid, kata laluan);

Serial.print ("\ nSambungan..");

sementara (WiFi.status ()! = WL_CONNECTED) {kelewatan (1000); Cetakan bersiri ("."); } Serial.print ("\ n"); }

acara batalTriggered () {

stateChanged = benar; Serial.println ("Memeriksa pintu!"); if (digitalRead (DOORPIN) == TINGGI) // Periksa untuk melihat apakah pintu terbuka {Serial.println ("Pintu ditutup!"); doorStatus = "Tutup"; } lain {Serial.println ("Pintu terbuka!"); doorStatus = "Dibuka"; }}

batal semakStatus () {

if (WiFi.status () == WL_CONNECTED) {// Periksa status sambungan WiFi // Suhu atau kelembapan bacaan memerlukan masa sekitar 250 milisaat! // Bacaan sensor juga boleh sampai 2 saat 'lama' (ini adalah sensor yang sangat perlahan) float h = dht.readHumidity (); // Baca suhu sebagai Celsius (lalai) terapung t = dht.readTemperature (); // Baca suhu sebagai Fahrenheit (isFahrenheit = true) apungan f = dht.readTemperature (benar); // Periksa sama ada bacaan gagal dan keluar lebih awal (untuk mencuba lagi). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Gagal membaca dari sensor DHT!"); //Serial.print ("."); // Gagal membaca dari sensor DHT! kembali; } // Hitung indeks haba di Fahrenheit (lalai) float hif = dht.computeHeatIndex (f, h); // Hitung indeks haba dalam Celsius (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);

Cetakan bersiri ("\ n");

Serial.print ("Suhu:"); Cetakan bersiri (f); Serial.print ("* F ("); Serial.print (t); Serial.print ("* C)"); Serial.print ("\ t"); Serial.print ("Indeks haba:"); Serial.print (hif); Serial.print ("* F ("); Serial.print (hic); Serial.print ("* C)%"); Serial.print ("\ t"); Serial.print ("Kelembapan:"); Bersiri.println (h);

if (digitalRead (DOORPIN) == TINGGI) // Periksa untuk melihat apakah pintu terbuka

{Serial.println ("Pintu ditutup!"); doorStatus = "Tutup"; } lain {Serial.println ("Pintu terbuka!"); doorStatus = "Dibuka"; } String jsonObject = String ("{" value1 / ": \" ") + f +" * F ("+ t +" * C) / "+ hif +" * F ("+ hic +" * C) "+" / ", \" nilai2 / ": \" "+ h +" / ", \" nilai3 / ": \" "+ pintuStatus +" / "}"; HTTPClient http; Rentetan lengkapUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (pelayan); http.addHeader ("Content-Type", "application / json"); http. POST (jsonObject); http.writeToStream (& Serial); http.end (); // Tutup sambungan

stateChanged = salah;

int sleepTimeInMinutes = selang / 1000/60; Serial.print ("\ n / nPergi tidur"); Serial.print (sleepTimeInMinutes); Serial.println ("minit …"); }}

gelung kosong () {

arus panjang yang tidak ditandatanganiMillis = millis (); kelewatan (4000); // Jika kita melampaui masa yang berlalu maka paksa pemeriksaan pintu dan temp. if (currentMillis - sebelumnyaMillis> = selang) {stateChanged = true; sebelumnyaMillis = currentMillis; Serial.print (kiraan ++); Serial.println (") Memeriksa kerana masa berlalu!"); } lain jika (stateChanged) {Serial.print (hitung ++); Serial.println (") Memeriksa kerana perubahan keadaan!"); }

// Sekiranya keadaan berubah maka periksa pintu dan temp.

jika (stateChanged) {checkStatus (); }

kelewatan (sleepTime);

}

Langkah 20: Hasil

Keputusan
Keputusan

Sebaik sahaja anda memuat naik kod sumber pada langkah sebelumnya, anda akan mendapat hasil seperti contoh yang ditunjukkan di atas.

Langkah 21: Kredit

Saya menemui banyak petua dan petua dari Random Nerd Tutorials dan ingin mengucapkan terima kasih atas bantuan mereka. Terutama tutorial mereka yang sangat baik mengenai ESP32 ESP8266 Terbitkan Sensor Bacaan ke Helaian Google di mana bahagian utama dari Instructable ini berdasarkan.

Selain itu, DHT11 Instructable from TheCircuit membantu saya memahami bagaimana menggunakan sensor kecil yang sangat murah tetapi menarik ini.

Selain itu, terdapat banyak tutorial yang berkaitan dengan memantau pintu anda seperti Garage Door Monitor dan satu lagi dari Random Nerd Tutorials. Saya menggunakan potongan-potongan ini untuk membantu saya memahami cara agar suis buluh saya berfungsi dengan baik.

Akhirnya, dengan maklumat ini dan perincian lain yang saya dapati di Internet saya dapat membuat sistem yang memenuhi keperluan saya. Saya harap anda mendapat Arahan ini berguna dan bina sendiri.

Disyorkan: