Daftar Isi:

IDC2018IOT Beritahu Saya Kapan Mematikan AC: 7 Langkah
IDC2018IOT Beritahu Saya Kapan Mematikan AC: 7 Langkah

Video: IDC2018IOT Beritahu Saya Kapan Mematikan AC: 7 Langkah

Video: IDC2018IOT Beritahu Saya Kapan Mematikan AC: 7 Langkah
Video: Pertunjukan Mokey - 425 - Matematika 2024, Juli
Anonim
Image
Image

Banyak dari kita, terutama di musim panas, menggunakan AC hampir tanpa henti, padahal pada kenyataannya pada waktu-waktu tertentu kita hanya bisa membuka jendela dan menikmati angin sepoi-sepoi. Juga, kami secara pribadi memperhatikan bahwa kami kadang-kadang bahkan lupa mematikan AC ketika meninggalkan kamar, membuang-buang energi dan uang.

Solusi yang akan kita buat akan membandingkan suhu di dalam dengan di luar, dan ketika mereka cukup dekat, akan memberi tahu kita melalui Facebook Messanger bahwa sudah waktunya untuk membuka jendela dan mengistirahatkan AC.

Juga, kami akan membuat mekanisme lain untuk memberi tahu kami ketika kami lupa AC dan meninggalkan ruangan.

Langkah 1: Sedikit Lebih Detail

Kami mengumpulkan data dari 4 sensor berbeda:

  • Dua sensor DHT mengumpulkan suhu di dalam rumah dan di luar rumah.
  • Satu sensor PIR mendeteksi pergerakan di dalam ruangan.
  • Satu mikrofon Electret digunakan untuk mendeteksi angin yang keluar dari ventilasi AC, cara sederhana dan andal untuk menentukan apakah AC menyala.

Data yang berasal dari sensor akan diproses dan dikirim ke Blynk di mana akan ditampilkan dalam antarmuka yang akan kita buat. Selain itu, kami akan memicu peristiwa IFTTT untuk memberi tahu pengguna ketika dia dapat membuka jendela alih-alih AC, dan ketika dia lupa AC menyala dan meninggalkan ruangan untuk jangka waktu yang telah ditentukan.

Antarmuka Blynk juga akan memberi kita cara untuk mengubah pengaturan yang relevan sesuai dengan preferensi pengguna, seperti yang akan kita bahas lebih detail nanti.

Bagian yang diperlukan:

  1. Modul WiFi - ESP8266
  2. sensor PIR.
  3. Sensor suhu DHT11/DHT22 x2.
  4. Resistor 10k/4.7k (DHT11 - 4.7k, DHT22 - 10k, PIR - 10k).
  5. Mikrofon listrik.
  6. Jumper.
  7. Kabel panjang (Kabel telepon akan berfungsi dengan baik).

Kode lengkap proyek dilampirkan di bagian akhir dengan komentar di seluruh kode.

Logikanya, ia memiliki beberapa lapisan fungsi yang berbeda:

  • Data dari sensor dibaca dalam interval 3 detik karena menunjukkan lebih akurat dan tidak perlu lebih dari itu.
  • Salah satu bagian dari kode ini adalah melacak status AC dengan nilai yang berasal dari mikrofon electret yang ditempatkan di atas bukaan AC.
  • Bagian lain adalah melacak pembacaan yang berasal dari sensor suhu, dan perbedaan penggunaan yang didefinisikan sebagai dapat diterima untuk mematikan AC dan membuka jendela sebagai gantinya. Kami mencari saat ketika suhu cukup dekat.
  • Bagian ketiga adalah melacak pergerakan di dalam ruangan. Jika mendeteksi tidak ada pergerakan besar (cara memeriksa mayor akan segera dijelaskan) untuk jangka waktu yang ditentukan oleh pengguna, dan status AC AKTIF, pemberitahuan akan dikirim ke pengguna.
  • Notifikasi ditangani dengan memicu IFTTT Webhooks yang mengirim pesan yang telah ditentukan sebelumnya kepada pengguna melalui Facebook Messenger
  • Bagian terakhir yang perlu diperhatikan adalah bagian yang menangani antarmuka Blynk, baik dengan mendapatkan perubahan yang dibuat pengguna pada variabel dan sebaliknya - mendorong data ke antarmuka Blynk untuk dilihat pengguna.

Langkah 2: Lebih Detail - Sensor

Lebih Detailnya - Sensor
Lebih Detailnya - Sensor
Lebih Detailnya - Sensor
Lebih Detailnya - Sensor

Ayo mulai.

Pertama, kita perlu memastikan kedua sensor DHT kita membaca suhu yang sama saat ditempatkan di tempat yang sama. Untuk itu, kami membuat sketsa sederhana yang dilampirkan di akhir bagian ini (CompareSensors.ino). Hubungkan kedua sensor, dan pastikan Anda mengubah jenis sensor DHT dalam sketsa sesuai dengan yang Anda miliki (default adalah satu DHT11 dan satu DHT22, sehingga Anda dapat melihat bagaimana keduanya ditangani dalam kode). Buka monitor serial dan biarkan bekerja sebentar, terutama jika Anda menggunakan sensor DHT11, karena sensor ini cenderung membutuhkan waktu lebih lama untuk menyesuaikan diri dengan perubahan suhu.

Perhatikan perbedaan antara sensor, dan masukkan nanti dalam kode utama dalam variabel "offset".

Penempatan sensor:

Satu sensor DHT harus ditempatkan di dinding luar rumah, jadi hubungkan ke beberapa kabel panjang, cukup panjang untuk mencapai ESP8266 Anda di dalam ruangan, dan letakkan di luar (dapat dilakukan dengan mudah melalui jendela). Sensor DHT lainnya harus diletakkan di papan tempat memotong roti, di dalam ruangan tempat kita menggunakan AC.

Mikrofon electret juga harus disambungkan ke kabel yang cukup panjang dan diletakkan di lokasi yang akan terkena angin yang keluar dari AC.

Terakhir, sensor PIR harus ditempatkan di lokasi yang menghadap ke tengah ruangan sehingga akan menangkap setiap gerakan di dalam ruangan. Perhatikan bahwa sensor memiliki dua kenop kecil, satu mengontrol penundaan (berapa lama sinyal TINGGI mendeteksi gerakan tetap TINGGI), dan yang lainnya mengontrol sensitivitas (lihat gambar).

Anda mungkin perlu bermain-main dengannya sampai Anda mendapatkan bacaan yang Anda puas. Bagi kami, hasil terbaik adalah delay ke kiri (nilai terendah) dan sensitivitas tepat di tengah. Kode menyediakan cetakan serial yang mencakup pembacaan dari semua sensor yang akan membuat debugging masalah seperti itu lebih mudah.

Menghubungkan sensor:

Nomor pin yang kami gunakan adalah sebagai berikut (dan dapat diubah dalam kode utama):

Sensor DHT luar - D2.

Di dalam sensor DHT - D3.

Listrik - A0 (pin analog).

PIR - D5.

Skema untuk menghubungkan masing-masing dapat dengan mudah ditemukan menggunakan pencarian gambar google dengan sesuatu di sepanjang baris "PIR resistor Arduino skema" (kami tidak ingin menyalinnya di sini dan melewati batas hak cipta:)).

Kami juga melampirkan gambar papan tempat memotong roti kami, mungkin sulit untuk benar-benar mengikuti koneksi, tetapi dapat memberikan perasaan yang baik untuk itu.

Seperti yang mungkin Anda ketahui, hal-hal jarang berhasil jika pertama kali kami menghubungkannya. Itulah mengapa kami membuat fungsi yang mencetak pembacaan dari sensor dengan cara yang mudah dibaca, sehingga Anda dapat men-debug cara Anda agar sensor berfungsi. Jika Anda tidak ingin kode mencoba terhubung ke Blynk saat debugging, cukup beri komentar "Blynk.begin(auth, ssid, pass);" dari bagian pengaturan kode, jalankan, dan buka monitor serial untuk melihat cetakannya. Kami juga melampirkan gambar cetakan.

Langkah 3: Lebih Banyak Detail - Urutan IFTTT

Lebih Banyak Detail - Urutan IFTTT
Lebih Banyak Detail - Urutan IFTTT

Jadi kami ingin mendapatkan pemberitahuan dalam dua skenario:

1. Suhu di luar cukup dekat dengan yang kita miliki di dalam dengan AC bekerja.

2. Kami telah meninggalkan ruangan untuk waktu yang lama dan AC masih berfungsi.

IFTTT memungkinkan kita untuk menghubungkan banyak layanan berbeda yang biasanya tidak berinteraksi, dengan cara yang sangat sederhana. Dalam kasus kami, ini memungkinkan kami mengirim pemberitahuan dengan sangat mudah melalui banyak layanan. Kami memilih Facebook Messanger, tetapi setelah membuatnya berfungsi dengan Facebook Messanger, Anda akan dapat dengan mudah mengubahnya ke layanan lain yang Anda pilih.

Proses:

Di situs web IFTTT, klik nama pengguna Anda (pojok kanan atas) dan kemudian "Applet Baru" pilih "Webhooks" sebagai pemicu ("ini"), dan pilih "Terima permintaan web". Tetapkan nama acara (mis. ruang_kosong).

Untuk layanan yang dipicu, tindakan ("itu"), pilih Facebook Messenger > Kirim pesan, dan ketik pesan yang ingin Anda terima saat peristiwa ini terjadi (mis. "Hai, sepertinya Anda lupa AC di:).

Sementara kami di sini, Anda juga harus menemukan kunci rahasia Anda yang perlu Anda masukkan di tempat yang sesuai dalam kode.

Untuk menemukan kunci rahasia Anda, buka https://ifttt.com/services/maker_webhooks/settings Di sana Anda akan menemukan URL dengan kunci Anda dalam format berikut:

Langkah 4: Lebih Detail - Blynk

Image
Image
Lebih Detail - Blynk
Lebih Detail - Blynk
Lebih Detail - Blynk
Lebih Detail - Blynk

Kami juga menginginkan antarmuka yang memiliki fitur berikut:

1. Kemampuan untuk mengatur berapa lama ruangan harus kosong dengan AC bekerja sebelum kami mendapat pemberitahuan

2. Kemampuan untuk memilih seberapa dekat seharusnya suhu luar dengan bagian dalam.

3. Tampilan untuk pembacaan dari sensor suhu

4. Sebuah led memberitahu kita keadaan AC (on/off).

5. Dan yang paling penting, tampilan untuk menunjukkan berapa banyak $$$ dan energi yang kita hemat.

Cara membuat antarmuka Blynk:

Jika Anda belum memiliki aplikasi Blynk, unduh ke ponsel Anda. Saat Anda membuka aplikasi dan membuat proyek baru, pastikan untuk memilih perangkat yang sesuai (mis. ESP8266).

Anda akan mendapatkan email dengan token otentikasi, yang akan Anda masukkan ke dalam kode di tempat yang sesuai (Anda juga dapat mengirim ulang kepada diri sendiri dari pengaturan nanti jika Anda kehilangannya).

Tempatkan widget baru di layar Anda, klik tanda + di bagian atas. Pilih widget, lalu klik widget untuk memasukkan pengaturannya. Kami telah menambahkan gambar pengaturan untuk semua widget yang kami gunakan, untuk referensi Anda.

Setelah Anda selesai dengan aplikasi, dan ketika Anda akhirnya ingin menggunakannya, cukup klik ikon "mainkan" di sudut kanan atas untuk menjalankan aplikasi Blynk. Anda juga akan dapat melihat saat ESP8266 Anda terhubung.

Catatan - tombol "perbarui" digunakan untuk mengambil suhu dan keadaan AC untuk kita lihat di aplikasi. Ini tidak diperlukan saat mengubah pengaturan (seperti perbedaan suhu), karena akan didorong secara otomatis.

Langkah 5: Kode

Kami berusaha keras untuk mendokumentasikan setiap bagian dari kode dengan cara yang akan membuat pemahamannya semudah mungkin.

Bagian dalam kode yang harus Anda ubah sebelum menggunakannya (seperti kunci auth untuk Blynk, SSID dan kata sandi wifi Anda, dll …) diikuti oleh komentar //*ubah* sehingga Anda dapat dengan mudah mencarinya.

Anda harus memiliki library yang digunakan dalam kode, Anda dapat menginstalnya melalui Arduino IDE dengan mengklik Sketch>Include Libraries>Manage Libraries. Di sana Anda dapat mencari nama perpustakaan dan menginstalnya. Juga, pastikan Anda meletakkan file generic8266_ifttt.h di lokasi yang sama dengan ACsaver.ino.

Salah satu bagian dari kode yang akan kami jelaskan di sini karena kami tidak ingin mengacaukan kode, adalah bagaimana kami memutuskan kapan harus mengubah keadaan AC dari hidup ke mati, dan keadaan ruangan dari kosong menjadi tidak kosong.

Kami membaca dari sensor setiap 3 detik, tetapi karena sensor tidak 100% akurat, kami tidak ingin satu pembacaan pun mengubah keadaan yang kami yakini ada di ruangan sekarang. Untuk mengatasi ini, apa yang dilakukan kode, adalah kita memiliki penghitung yang kita ++ ketika kita mendapatkan pembacaan yang mendukung "AC aktif", dan -- jika tidak. Kemudian, ketika kita mendapatkan nilai yang ditentukan dalam SWITCHAFTER (default ke 4), kita mengubah status menjadi "AC aktif", ketika kita mendapatkan -SWITCHAFTER (negatif dengan nilai yang sama), kita mengubah status menjadi "AC mati ".

Dampak pada waktu yang diperlukan untuk beralih dapat diabaikan, dan kami merasa sangat andal dalam mendeteksi hanya perubahan yang benar.

Langkah 6: Menyatukan Semuanya

Oke, jadi semua sensor ada di tempatnya dan berfungsi dengan baik. Antarmuka Blynk diatur (dengan pin virtual yang benar!). Dan acara IFTTT sedang menunggu pemicu kami.

Anda telah memasukkan kunci rahasia IFTTT dalam kode, kunci auth dari Blynk, SSID WiFi dan kata sandi Anda, dan Anda bahkan memeriksa bahwa sensor DHT dikalibrasi dan jika tidak, mengubah offset yang sesuai (misalnya, kami Di luar DHT membaca suhu lebih tinggi 1 derajat Celcius dari yang seharusnya, jadi kami menggunakan offset = -1).

Pastikan WiFi Anda aktif, mulai aplikasi Blynk Anda, dan muat kode ke ESP8266 Anda.

Itu dia. Jika semuanya dilakukan dengan benar, Anda dapat bermain-main sekarang dan melihatnya beraksi.

Dan jika Anda hanya ingin melihatnya beraksi tanpa kesulitan menyatukan semuanya… Nah… Gulir ke atas dan tonton videonya. (Tonton dengan subtitle! Tanpa suara)

Langkah 7: Pikiran

Kami memiliki dua tantangan utama di sini.

Pertama-tama, bagaimana kita tahu AC menyala? Kami mencoba menggunakan penerima IR yang akan "mendengarkan" komunikasi antara AC dan remote. Tampaknya terlalu rumit, karena datanya sangat berantakan dan tidak cukup konsisten untuk memahami "ok, ini adalah sinyal AKTIF". Jadi kami mencari cara lain. Salah satu ide adalah menggunakan baling-baling kecil yang akan menghasilkan arus kecil ketika bergerak dari angin AC, ide lain yang kami coba adalah memiliki akselerometer yang mengukur sudut sayap yang berputar pada ventilasi dan mendeteksi pergerakannya dari posisi OFF.

Akhirnya, kami menyadari cara paling sederhana untuk melakukannya adalah dengan mikrofon electret, yang sangat andal mendeteksi angin yang keluar dari AC.

Membuat sensor DHT bekerja sangat mudah;), tetapi baru kemudian kami menyadari salah satunya agak jauh dari suhu sebenarnya. Sensor PIR juga memerlukan beberapa penyesuaian, seperti yang dijelaskan sebelumnya.

Tantangan kedua adalah membuat seluruh solusi menjadi sederhana, dan dapat diandalkan. Dalam arti bahwa itu harus mengganggu untuk digunakan, itu harus ada di sana dan menyenggol saat Anda membutuhkannya. Jika tidak, kita sendiri mungkin akan berhenti menggunakannya.

Jadi kami memikirkan apa yang seharusnya ada di antarmuka Blynk dan mencoba membuat kode ini seandal mungkin, dengan menangani setiap kasus tepi yang bisa kami buat.

Tantangan lain, yang gagal kami selesaikan pada saat menulis instruksi ini, adalah menambahkan blaster IR yang memungkinkan kami mematikan AC dari antarmuka Blynk. Apa gunanya mengetahui Anda lupa AC hidup tanpa kemungkinan untuk mati? (yah… Anda bisa bertanya pada seseorang apakah mereka ada di rumah).

Sayangnya, kami mengalami beberapa kesulitan untuk memutar ulang sinyal yang kami rekam dari remote control, kembali ke AC dengan ESP8266. Kami berhasil mengontrol AC dengan Arduino Uno, mengikuti instruksi ini:

www.instructables.com/id/How-to-control-th…

Kami akan segera mencoba lagi, dan memperbarui instruksi dengan temuan kami, dan semoga petunjuk tentang cara menambahkan kemampuan itu.

Keterbatasan lain yang kami lihat adalah fakta bahwa kami perlu menghubungkan sensor di luar jendela, yang mungkin tidak dapat dilakukan dalam situasi tertentu, dan juga berarti kabel yang panjang harus keluar. Solusinya mungkin dengan mengambil data cuaca lokasi Anda dari internet. Juga, sensor electret yang berjalan dari AC dapat diganti dengan penerima IR yang kami jelaskan di atas, untuk model AC dengan kode IR yang lebih dikenal atau mudah didekode.

Proyek ini dapat diperpanjang dengan banyak cara. Seperti dikatakan di atas, kami akan mencoba menemukan cara untuk memasukkan kontrol IR atas AC, yang kemudian membuka peluang dunia baru untuk menghidupkan dan mematikan AC dari mana saja di dunia, atau mengatur waktu hidup dan mati melalui Blynk aplikasi, sebagai contoh lain. Setelah mengetahui kesulitan teknis IR, menambahkan kode cukup sederhana dan mudah, dan tidak akan memakan waktu lama.

Jika kita benar-benar ingin bermimpi besar… Proyek ini dapat diubah menjadi modul lengkap yang membuat AC apapun menjadi AC pintar. Dan itu tidak membutuhkan lebih dari yang kita lakukan. Hanya lebih banyak kode, lebih banyak pemanfaatan IR, dan jika kita ingin itu diproduksi secara massal, mungkin pastikan untuk mengambil data cuaca berdasarkan lokasi, lalu kita dapat memasukkan semuanya ke dalam kotak kecil.

Sungguh, yang kita butuhkan hanyalah sensor suhu untuk suhu bagian dalam, sensor PIR untuk mendeteksi gerakan, dan LED IR sebagai blaster, dan penerima IR untuk "mendengarkan" komunikasi antara AC dan remote yang kita gunakan.

Blynk menyediakan semua kemampuan yang kita butuhkan untuk mengontrol kotak ajaib, dengan cara yang sangat sederhana dan dapat diandalkan.

Membuat proyek penuh seperti itu akan memakan waktu, terutama dari sudut pandang membuatnya cukup fleksibel untuk mengonfigurasi dirinya sendiri dan secara otomatis mendeteksi dan memahami sebagian besar AC.

Tapi buat sendiri, yah, kalau buat di waktu senggang, kami perkirakan tidak lebih dari satu atau dua minggu. Tergantung pada berapa banyak waktu luang yang Anda miliki… Tantangan utama di sini adalah menyimpan semua sinyal berbeda yang dapat dikirim oleh remote AC, dan memahaminya. (Meskipun hanya memutar ulang mereka seharusnya lebih mudah).

Direkomendasikan: