WiFi Exhaust Fan Controller

gambar
Hampir dua tahun telah berlalu sejak pembuatan pengendali kontrol kelembaban untuk kamar mandi . Selama ini, controller berfungsi dengan setia tanpa gangguan dan pembekuan, layaknya perangkat yang bagus, dan bahkan mendapat tas buatan tangan yang glamor dari tangan istri saya.

gambar

Tetapi kemajuan teknologi tak terhindarkan berjalan maju dan tren baru lagi menghantuiku. Saya telah lama memupuk gagasan menerapkan konsep rumah pintar pada modul WiFi ESP8266. Dia bereksperimen dengan modul-modul ini untuk beberapa waktu dan sekarang memutuskan untuk mentransfer "rumah pintar" -nya kepada mereka.

Tujuan utama dari proyek ini adalah implementasi fitur-fitur baru yang akan saya gunakan di perangkat lain di masa depan.
Jadi, apa yang akan saya berikan pada pengontrol kipas pada ESP8266?

Fitur baru


  • Lihat semua indikator WiFi dari komputer / tablet / telepon.
  • Pemrosesan parameter tambahan - waktu pengoperasian kipas dan waktu menyala lampu di kamar mandi.
  • Kontrol kipas WiFi dari komputer / tablet / telepon.
  • Menyiapkan controller melalui WiFi dengan menyimpan nilai ke memori non-volatile.
  • Secara berkala merekam nilai semua indikator pada server di Internet.
  • Nah, karena masih ada internet, waktu tampil dengan sinkronisasi melalui protokol NTP.

Semua fungsi ini memungkinkan untuk menganalisis operasi pengontrol dan, di masa depan, mengoptimalkan parameter dari algoritma kontrol. Nah, pengontrol ini akan masuk ke sistem umum rumah pintar dengan memantau parameter lingkungan dari kamar mandi.
gambar
Skema tidak banyak berubah dari versi sebelumnya:
  • Atmega328 digantikan oleh ESP8266
  • Indikator tujuh segmen menggantikan modul tampilan jadi dengan TN1637
  • Triac dengan optocoupler digantikan oleh solid-state relay (sama, tetapi dalam case).

Semua perbedaan utama dalam program pengontrol.

Daftar komponen


  • Modul ESP8266 ESP07 dengan papan adaptor ~ $ 2.3
  • Layar tujuh segmen empat digit pada chip TM1637 dengan koneksi I2C ~ $ 1
  • Relay Solid State OMRON G3MB-202P ~ $ 1
  • Catu Daya 220V / 3.3V 600mA ~ $ 2.2
  • Sensor suhu dan kelembaban (akurasi rendah, tetapi cukup untuk tugas saya) DHT11 ~ $ 0,7
  • Kasing plastik instrumen 110x73x34 ~ $ 1
  • Photoresistor, hanya resistor, papan tempat memotong roti dan kabel

Total sekitar $ 9
Semua bagian kecuali kasing dan catu daya dibeli di aliexpress.com. Saya memesan kasing dan catu daya dengan harga yang wajar dari taobao.com
gambar

Perakitan pengontrol


Pengontrol ini adalah prototipe untuk perangkat masa depan pada ESP8266, jadi pemasangan dilakukan pada papan tempat memotong roti.
gambar
Saya membuat filter cahaya di bawah indikator dari sudut folder untuk kertas, dibeli di toko alat tulis. Jendela transparan untuk fotoresistor - film pelindung yang tersisa dari beberapa ponsel (saya memesannya sekali dengan margin, sekarang tergeletak di sekitar).
gambar
Dan ini adalah pengontrol lama saya yang bekerja di kamar mandi selama dua tahun.
gambar
Ketika melakukan debug, cacat teknologi terdeteksi - fotodioda di belakang jendela dalam kasing itu menerima terlalu sedikit cahaya dan tanpa penguat itu tidak berfungsi ketika lampu dinyalakan di kamar mandi, saya harus membawanya ke arah lampu
gambar
gambar

Sekarang saya akan memberi tahu Anda tentang fitur program, algoritma kontrol dan pengaturan pengontrol ini.

ESP8266, tidak seperti Atmega328, di mana versi sebelumnya diterapkan, memiliki lebih banyak memori (RAM, ROM. EEPROM), yang, bersama dengan WiFi bawaan, memungkinkan Anda untuk mengimplementasikan fungsi-fungsi server WEB built-in tanpa menyimpan memori untuk string teks.

Tetapi dengan GPIO, ESP8266 sangat buruk, oleh karena itu, kemewahan seperti mengelola indikator tujuh segmen tidak secara langsung dapat diakses. Oleh karena itu, indikator pada chip TM1637 dipilih, yang hanya membutuhkan dua output untuk koneksi.

Lingkungan pengembangan


Saya telah bermain cukup dengan berbagai firmware ESP8266 yang memungkinkan saya untuk menulis program pada built-in interpreter LUA, JC dan umumnya memprogram melalui WEB. Saya mencoba menulis di satu SDK. Dia memilih opsi kompromi - pemrograman di Arduino IDE.
Instalasi yang cukup sederhana, pemrograman dan sejumlah besar perpustakaan yang sudah jadi, yang, sebagian besar, bekerja pada ESP. Lingkungan ini memungkinkan penggunaan banyak kode lama yang menyediakan logika dasar untuk pengoperasian pengendali kontrol kipas, yang telah dipertahankan dari versi sebelumnya.

Pada dasarnya, itu menarik untuk mentransfer algoritma yang terbukti dengan baik yang mengimplementasikan mesin negara deterministik terbatas yang dijelaskan dalam tabel transisi keadaan:
gambar
perpustakaan Arduino datang tanpa masalahDHT untuk bekerja dengan sensor kelembaban / suhu dari Adafruit dan untuk bekerja dengan indikator pada TM1637 DigitalTube .

Rincian penggunaan IDE Arduino untuk memprogram ESP8266 dijelaskan dengan baik dalam artikel ini.

Menerapkan Fitur Baru


Sangat tidak nyaman untuk membuat pengontrol WiFi di mana parameter koneksi jaringan dijahit. Bayangkan apa perubahan nama titik akses atau kata sandi yang akan dihasilkan jika ada selusin pengontrol seperti di rumah?

Oleh karena itu, program ini mengimplementasikan fungsi menyimpan parameter koneksi dalam memori EEPROM yang tidak mudah menguap dan mengaturnya melalui jaringan. Struktur untuk menyimpan parameter, serta membaca dan menulisnya, diimplementasikan dalam file WC_EEPROM.h dan WC_EEPROM.cpp proyek saya. Verifikasi membaca dan menulis dilakukan dengan menghitung checksum konfigurasi dan membandingkannya dengan yang tertulis dalam EEPROM.

Selain konfigurasi jaringan, semua batas waktu dan parameter lain dari algoritma kontrol kipas juga disimpan dalam memori, yang memungkinkan pengoptimalan dan penyetelan pengontrol ini secara langsung “over the air”.

Tampilan mode operasi, konfigurasi pengontrol, serta kontrol kipas langsung diimplementasikan menggunakan server WEB bawaan (file WC_HTTP.h dan WC_TTP.cpp)

Algoritme konfigurasi titik akses adalah sebagai berikut:

Jika kabinet ESP tidak dapat terhubung ke titik akses yang ditentukan dalam konfigurasi EEPROM , lalu menaikkan titik aksesnya dan pada alamat 192.168.4.1, memungkinkan Anda untuk mengonfigurasi.
Nah, jika terhubung, itu berfungsi seperti biasa.
Halaman utama server WEB menunjukkan parameter dasar dari pengontrol dan memungkinkan Anda untuk mengaktifkan / menonaktifkan pengontrol secara manual (analog dengan menekan tombol kontrol manual)
gambar
Di sini Anda juga dapat pergi ke
gambar
halaman pengaturan jaringan dan halaman pengaturan dari algoritma operasi pengontrol
gambar
Dari dua halaman ini, Anda dapat me-reboot controller dan mengatur ulang semua pengaturan "default".

Saya berencana untuk membawa keindahan ke antarmuka di masa depan, ketika konsep rumah pintar pada WiFi lebih atau kurang menetap di kepala saya.

Fungsi lain yang diterapkan dalam program ini adalah jam waktu nyata yang disinkronkan melalui protokol NTP di Internet. (File WC_NTP.h dan WC_NTP.cpp)

Saya tidak akan menjelaskan algoritma utama, logika kerja telah bekerja dengan baik dan tetap sama, Anda dapat membacanya di artikel sebelumnya. Perubahan besar telah memengaruhi tampilan. Saya ingin menarik perhatian ke satu "fitur" - fungsi DisplaySpecialChar (), yang memungkinkan Anda untuk menampilkan karakter apa pun yang dapat Anda pikirkan untuk ditampilkan pada indikator tujuh segmen menggunakan bitmask. Saya datang dengan simbol "persen" ini di layar kelembaban
gambar
dan simbol "derajat" di layar suhu.
gambar
Bit dalam bitmask sesuai dengan segmen indikator.

Nah, yang terakhir dari fitur-fitur baru adalah menyimpan parameter ke server di Internet untuk tampilan dan analisis selanjutnya. Nilai kelembaban, suhu, port analog dengan photoresistor untuk menyesuaikan ambang batas untuk pencahayaan, waktu kipas, waktu membakar cahaya dan waktu UPTIME dari pengontrol dari reboot terakhir disimpan.

Perekaman ke server terjadi dalam dua mode. Parameter dicatat dengan frekuensi yang lebih besar, ketika "sesuatu terjadi" di kamar mandi, saat ini baik lampu menyala atau kipas sedang bekerja. Semua batas waktu dikonfigurasi melalui antarmuka WEB.

Data disimpan di server saya di Internet. Alamat server dapat dikonfigurasi, tetapi format rekaman masih dijahit ke dalam program. Sekali lagi, sampai kali konsep ustanivaniya lebih baik))). Sekarang parameter disimpan oleh skrip PHP paling sederhana ke sebuah tabel dengan struktur sederhana.
gambar
Sangat mudah untuk mengkonfigurasi ulang pengaturan penyimpanan ke "pemantauan publik" yang sama. Secara pribadi, server ini tidak cocok untuk saya dengan pembatasan pada frekuensi penyimpanan data dan kedalaman arsip.

Optimalkan pengaturan pengontrol


Setelah "operasi percobaan", Anda dapat menentukan apakah ambang batas pencahayaan dan kelembaban diatur dengan benar, serta batas waktu berbagai aktivitas. Dalam implementasi sebelumnya, saya mengatur waktu respons menjadi 20 menit, duduk di kamar mandi dengan stopwatch. Setelah mengamati grafik parameter selama beberapa kali mandi, saya melihat yang berikut:
gambar
  • Kelembaban di musim dingin berubah 35-40%
  • Waktu normalisasi kelembaban dengan ventilasi alami 20-25 menit
  • Waktu normalisasi kelembaban dengan kipas yang bekerja 10-12 mnt
  • Kipas angin menggandakan efisiensi ventilasi

Berdasarkan hal ini, Anda dapat dengan aman mengurangi waktu pengoperasian kipas hingga 12 menit, sehingga memperpanjang masa servis dan menghemat energi. Analisis serupa dapat dilakukan untuk musim lain, ketika kelembaban di apartemen benar-benar berbeda.

Sekarang, setelah analisis, Anda dapat meningkatkan periode penulisan parameter ke server.

Kesimpulan



  • Kontroler pada ESP8266 stabil, ia menjalankan fungsinya.
  • Fungsionalitasnya telah berkembang, sekarang mudah untuk dikelola dan terintegrasi secara normal ke dalam sistem Smart Home
  • Beberapa hal perlu ditingkatkan, misalnya, antarmuka WEB, otorisasi akses, bagian server dan beberapa ketidakakuratan dalam menghitung kipas dan jam pengoperasian yang ringan. Keinginan perbaikan lain mungkin terungkap.
  • Proyek percontohan untuk Smart Home pada WiFi dapat dianggap berhasil;)

Sketsa dapat diunduh di sini. Saya akan sangat berterima kasih jika Anda melaporkan bug.

Sketsa pengontrol kipas pada WiFi

Waktu yang dihabiskan untuk proyek ini adalah dua hari libur

PS Saya langsung menjawab pertanyaan, mengapa begitu sulit? Bisakah saya duduk secara paralel dengan sakelar atau penghitung waktu?
- Ya kamu bisa. Tapi masuknya timer dan lampu tidak cocok untukku. Selain itu, itu adalah hobi, penerapan beberapa ide yang digunakan dalam proyek lain.

Fasilitas penyimpanan itu buggy lagi, begitu gambar-gambar dari blog saya . Di sana Anda bisa melihat perkembangan saya di rumah pintar

Source: https://habr.com/ru/post/id389751/


All Articles