Daftar Isi:

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

Video: Proyek Logger Status Pintu dan Suhu: 21 Langkah

Video: Proyek Logger Status Pintu dan Suhu: 21 Langkah
Video: Proyek Akhir Mikrokontroler Kelompok 21 Data Logger Intensitas Lalu Lalang Manusia Teknik Elektro UI 2024, November
Anonim
Proyek Pencatat Status Pintu dan Suhu
Proyek Pencatat Status Pintu dan Suhu

Instruksi ini akan menunjukkan kepada Anda cara membuat pencatat status pintu dan suhu sederhana dengan harga di bawah $10,00 menggunakan ESP8266 NodeMCU, sensor suhu dan kelembaban DHT11, sakelar buluh pintu/jendela, resistor 10K ohm, dan beberapa kabel penghubung.

Asal usul proyek ini berasal dari keinginan saya untuk melakukan lebih banyak otomatisasi rumah dengan papan Arduino, Karena saya telah membaca banyak tentang Arduino EPS8266 NodeMCU yang kompatibel, saya memutuskan papan ini akan menjadi papan biaya rendah yang sempurna untuk melakukan beberapa eksperimen. Setelah mencari di Internet untuk proyek otomatisasi rumah menggunakan papan ESP8266, saya memutuskan untuk menggabungkan pencatat suhu dan status pintu untuk upaya pertama saya. Akhirnya proyek ini akan digabungkan dengan servos, sensor kelembaban, dan elektronik lainnya untuk mengotomatisasi rumah kaca kecil yang dirancang dan dibangun kakek saya 50 tahun yang lalu. Sensor suhu akan digunakan untuk menentukan apakah sistem pemanas harus diaktifkan atau dinonaktifkan serta memberi sinyal kepada servos untuk membuka dan menutup sistem ventilasi bila diperlukan. Keadaan sistem ventilasi akan dipantau dengan menggunakan sakelar buluh magnetik. Akhirnya, sensor kelembaban akan digunakan untuk mengotomatisasi sistem penyiraman.

Langkah 1: Penafian

Hanya penafian singkat untuk menyatakan bahwa kami TIDAK bertanggung jawab atas apa pun yang terjadi sebagai akibat dari mengikuti instruksi ini. Itu selalu yang terbaik untuk mengikuti instruksi pabrik dan lembar keselamatan ketika membangun sesuatu jadi silakan berkonsultasi dengan dokumen-dokumen tersebut untuk setiap bagian dan alat yang Anda gunakan untuk membangun Anda sendiri. Kami hanya memberikan informasi tentang langkah-langkah yang kami gunakan untuk membuat langkah kami. Kami tidak profesional. Faktanya, 2 dari 3 individu yang berpartisipasi dalam pembangunan ini adalah anak-anak.

Langkah 2: Siapkan Akun IFTTT Gratis

Siapkan Akun IFTTT Gratis
Siapkan Akun IFTTT Gratis

Jika Anda belum memilikinya, sekarang saatnya untuk menyiapkan akun IFTTT gratis dengan membuka halaman beranda mereka.. IFTTT adalah singkatan dari If This Then That dan merupakan platform gratis yang memungkinkan Anda menghubungkan layanan berbasis internet dengan cara baru ke memungkinkan Anda untuk memanfaatkan layanan tersebut dengan cara baru. Untuk proyek ini kita akan menggunakan IFTTT untuk memungkinkan ESP8266 mencatat status pintu melalui saklar buluh dan suhu dan kelembaban melalui sensor DHT11 dalam dokumen Google Sheets.

Langkah 3: Buat Applet IFTTT

Buat Applet IFTTT
Buat Applet IFTTT

Saat masih di IFTTT, lanjutkan ke bagian "Applet Saya" dan buat applet baru dengan mengklik tombol "Applet Baru".

Langkah 4: Konfigurasikan Bagian "ini" dari Applet Anda

Konfigurasikan
Konfigurasikan

Klik pada kata “ini” yang berwarna biru – seperti yang disorot pada gambar di atas.

Langkah 5: Tambahkan Layanan WebHooks ke Applet Anda

Tambahkan Layanan WebHooks ke Applet Anda
Tambahkan Layanan WebHooks ke Applet Anda

Di bilah pencarian, cari layanan "Webhooks" dan pilih ikon Webhooks.

Setelah Anda menemukan layanan "Webhooks", klik layanan tersebut.

Langkah 6: Siapkan Pemicu Permintaan Web

Siapkan Pemicu Terima Permintaan Web
Siapkan Pemicu Terima Permintaan Web

Pilih pemicu "Terima permintaan web".

Langkah 7: Berikan Nama Acara

Berikan Nama Acara
Berikan Nama Acara

Di kotak teks, berikan applet baru Anda dengan nama acara. Saya memilih "Data Logger" tetapi Anda dapat memilih apa pun yang Anda suka.

Langkah 8: Konfigurasikan Bagian "itu" dari Applet Anda

Konfigurasikan
Konfigurasikan

Klik pada kata “itu” yang berwarna biru – seperti yang disorot pada gambar di atas.

Langkah 9: Siapkan Layanan Tindakan

Siapkan Layanan Tindakan
Siapkan Layanan Tindakan

Di kotak pencarian, cari layanan "Google Sheets", dan klik ikon Google Sheets.

Langkah 10: Hubungkan ke Google Spreadsheet

Hubungkan ke Google Spreadsheet
Hubungkan ke Google Spreadsheet

Jika Anda belum melakukannya, Anda perlu menghubungkan akun IFTTT Anda ke Google Spreadsheet. Tekan tombol Connect yang ditunjukkan di atas dan ikuti petunjuk di layar.

Langkah 11: Pilih Tindakan

Pilih Tindakan
Pilih Tindakan

Klik "Tambahkan Baris ke Spreadsheet".

Langkah 12: Siapkan Aksi

Siapkan Aksi
Siapkan Aksi

Berikan nama di kotak teks "Nama spreadsheet". Saya memilih untuk menggunakan "Data_Logger" untuk konsistensi. Biarkan sisa pengaturan (Anda dapat bereksperimen dengan pengaturan tersebut di lain waktu) dan kemudian tekan tombol "Buat Tindakan" di bagian bawah layar.

Langkah 13: Tinjau dan Selesaikan Applet Anda

Tinjau dan Selesaikan Applet Anda
Tinjau dan Selesaikan Applet Anda

Setelah puas dengan konfigurasi applet Anda, tekan tombol "Finish".

Langkah 14: Ambil Informasi Konfigurasi yang Dibutuhkan Nanti

Ambil Informasi Konfigurasi yang Dibutuhkan Nanti
Ambil Informasi Konfigurasi yang Dibutuhkan Nanti

Klik "Webhooks" seperti yang disorot di atas.

Langkah 15: Lanjutkan ke Dokumentasi Webhooks untuk Kunci API

Lanjutkan ke Dokumentasi Webhooks untuk Kunci API
Lanjutkan ke Dokumentasi Webhooks untuk Kunci API

Ini mungkin tampak aneh tetapi klik tautan Dokumentasi di kanan atas untuk melanjutkan 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 layar Dokumentasi menampilkan Kunci API unik Anda. Salin dan Simpan kunci ini untuk digunakan nanti.

Ini juga merupakan ide yang baik untuk menguji applet di sini. Ingatlah untuk mengubah {event} menjadi Data_Logger atau apa pun yang Anda beri nama acara Anda dan tambahkan beberapa data ke 3 nilai kosong lalu klik tombol "Uji" di bagian bawah halaman. Anda akan melihat pesan hijau yang mengatakan "Acara telah dipicu". Jika demikian, lanjutkan ke Google Documents dan konfirmasikan bahwa data yang Anda masukkan di halaman pengujian muncul di dokumen Google Sheets.

Langkah 17: Kumpulkan Komponen

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

Anda hanya membutuhkan beberapa bagian.

1) Papan Pengembangan NodeMcu ESP8266

2) Sensor Suhu / Kelembaban DHT11

3) Saklar Buluh Pintu/Jendela

4) Resistor 10k Ohm

5) Kawat Penghubung

Langkah 18: Merakit Komponen

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

2) Hubungkan salah satu pin ground pada ESP8266 ke pin ground pada DHT11.

3) Hubungkan pin D4 (alias pin 2 pada IDE) pada ESP8266 ke pin data pada DHT11.

4) Hubungkan pin 3v3 lain pada ESP8266 ke satu sisi saklar buluh pintu/jendela.

5) Hubungkan pin D5 (alias pin 14 di IDE) pada ESP8266 ke sisi lain dari saklar buluh pintu/jendela dan hubungkan juga ke salah satu sisi resistor 10k ohm.

6) Hubungkan sisi lain dari resistor 10k ohm ke pin ground lain pada ESP8266.

Untuk pemilihan pin ESP8266 silakan lihat diagram bermanfaat ini atau video yang sangat membantu.

Langkah 19: Tulis Kode Arduino

Tulis Kode Arduino
Tulis Kode Arduino

Salin dan tempel kode di bawah ini ke Arduino IDE Anda.

#sertakan #sertakan #sertakan "DHT.h"

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

#define DOORPIN 14 // pin digital sakelar pintu apa.

#define DHTTYPE DHT11 // DHT 11

DHT dht(DHTPIN, DHTTYPE);

int jumlah = 1;

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

// Pembuat Webhook IFTTT

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

// Sumber URL IFTTT

const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; //Pastikan untuk menggunakan nama layanan dan kunci api Anda.

String doorStatus = "Tutup";

volatil bool stateChanged = false;

// Jika tidur berjam-jam maka setel interval jam * 60 menit * 60 detik * 1000 milidetik

interval panjang const = 1,0 * 60 * 60 * 1000; // 1 jam unsigned long beforeMillis = 0 - (2 * interval);

batalkan pengaturan () {

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

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

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

batal eventDipicu(){

stateChanged = benar; Serial.println("Memeriksa pintu!"); if (digitalRead(DOORPIN)==HIGH) // Periksa apakah pintu terbuka { Serial.println("Pintu tertutup!"); doorStatus = "Tutup"; } else { Serial.println("Pintu terbuka!"); doorStatus = "Dibuka"; } }

batal periksaStatus(){

if (WiFi.status() == WL_CONNECTED) { //Periksa status koneksi WiFi // Membaca suhu atau kelembapan membutuhkan waktu sekitar 250 milidetik! // Pembacaan sensor juga bisa sampai 2 detik 'lama' (sensornya sangat lambat) float h = dht.readHumidity(); // Baca suhu sebagai Celcius (default) float t = dht.readTemperature(); // Baca suhu sebagai Fahrenheit (isFahrenheit = true) float f = dht.readTemperature(true); // Periksa apakah ada pembacaan yang gagal dan keluar lebih awal (untuk mencoba 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 panas dalam Fahrenheit (default) float hif = dht.computeHeatIndex(f, h); // Hitung indeks panas dalam Celcius (isFahreheit = false) float hic = dht.computeHeatIndex(t, h, false);

Serial.print("\n");

Serial.print("Suhu: "); Serial.print(f); Serial.print(" *F("); Serial.print(t); Serial.print(" *C)"); Serial.print("\t"); Serial.print("Indeks panas: "); Serial.print(hif); Serial.print(" *F("); Serial.print(hic); Serial.print(" *C)%"); Serial.print("\t"); Serial.print("Kelembaban: "); Serial.println(h);

if (digitalRead(DOORPIN)==HIGH) // Periksa apakah pintu terbuka

{ Serial.println("Pintu tertutup!"); doorStatus = "Tutup"; } else { Serial.println("Pintu terbuka!"); doorStatus = "Dibuka"; } String jsonObject = String("{"value1\":\"") + f +"*F (" + t + "*C) / "+ hif +"*F (" + hic + "*C) " + "\", \"nilai2\":\"" + h + "\", \"nilai3\":\"" + doorStatus + " \"}"; HTTPClient http; String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin(lengkapUrl); // http.mulai(server); http.addHeader("Tipe-Konten", "aplikasi/json"); http. POST(jsonObject); http.writeToStream(&Serial); http.akhir(); //Tutup koneksi

stateChanged = salah;

int sleepTimeInMinutes = interval / 1000 / 60; Serial.print("\n\nTidur untuk "); Serial.print(sleepTimeInMinutes); Serial.println("menit…"); } }

lingkaran kosong() {

unsigned long currentMillis = milis(); penundaan (4000); //Jika kita melampaui waktu yang telah berlalu maka paksa periksa pintu dan suhu. if(Millis saat ini - Mili sebelumnya >= interval){ stateChanged = true; sebelumnyaMillis = saat iniMillis; Serial.print(jumlah++); Serial.println(") Memeriksa karena waktu yang telah berlalu!"); }else if(stateChanged){ Serial.print(count++); Serial.println(") Memeriksa karena perubahan status!"); }

//Jika keadaan berubah maka periksa pintu dan suhu.

if(stateChanged){ checkStatus(); }

penundaan (waktu tidur);

}

Langkah 20: Hasil

Hasil
Hasil

Setelah Anda mengunggah kode sumber pada langkah sebelumnya, Anda akan mendapatkan hasil seperti contoh di atas.

Langkah 21: Kredit

Saya menemukan banyak petunjuk dan tip bermanfaat dari Tutorial Nerd Acak dan ingin mengucapkan terima kasih atas semua bantuan mereka. Terutama tutorial luar biasa mereka tentang ESP32 ESP8266 Publikasikan Pembacaan Sensor ke Google Sheets yang menjadi dasar sebagian besar dari Instructable ini.

Selain itu, DHT11 Instructable dari TheCircuit membantu saya memahami cara menggunakan sensor kecil yang sangat murah namun menarik ini.

Selain itu, ada banyak tutorial yang berhubungan dengan pemantauan pintu Anda seperti Monitor Pintu Garasi dan satu lagi dari Tutorial Nerd Acak. Saya menggunakan potongan-potongan ini untuk membantu saya memahami bagaimana membuat saklar buluh saya bekerja dengan benar.

Akhirnya, dengan informasi ini serta rincian lain yang saya temukan di Internet, saya dapat membuat sistem yang memenuhi kebutuhan saya. Saya harap Anda menemukan Instructable ini berguna dan membangun salah satu dari Anda sendiri.

Direkomendasikan: