Timer - Mulai

Semuanya dimulai dengan dia. Ini adalah pembelian pertama saya di Aliexpress untuk otomasi pertama di negara ini - Saya ingin membuat autowatering di rumah kaca. Timer datang dalam kotak kusut, dengan topi pelindung retak, tetapi bekerja. Dia melakukan pekerjaan yang baik menyiram mentimun sepanjang musim panas, dia dipindahkan dan disembunyikan di tempat yang hangat dan kering selama musim dingin. Tetapi musim berikutnya saya menunggu kejutan yang tidak menyenangkan - timer mulai menggantung, berhenti merespons tombol kontrol dan membuka air. Awalnya saya berdosa dengan baterai murah dan menggantinya dengan Duracell bermerek. Saya pikir masalahnya adalah aliran listrik dan arus masuk. Itu tidak membantu. Kemudian saya mengeluarkan besi solder dan menyolder semua yang saya bisa di dalamnya, bahkan menambahkan beberapa kapasitor yang hilang. Tapi dia dengan keras kepala terus menggantung. Sayangnya, produk ini tidak terlalu dapat dipertahankan - karena saya menggunakan drop sirkuit mikro terbuka dan, tampaknya, ada sesuatu yang dilepas tepat di bawah senyawa dengan sirkuit mikro. Entah bagaimana musim berakhir dengan timer yang menggelepar, dan aku mulai berpikir untuk apa aku harus menggantinya.

Pikiran pertama saya adalah untuk mengambil modul Arduino Mini, modul jam, indikator, dan entah bagaimana mendorong semuanya ke dalam kasus timer yang rusak dan menggunakan motor asli dan katup bola. Tapi entah bagaimana itu tidak benar-benar pergi ke sana, itu akan mengkonsumsi lebih jelas daripada mengisi asli (yang berarti Anda dapat melupakan baterai dalam kasing) dan itu membosankan dan tidak dapat diukur - saya ingin menyirami tidak hanya rumah kaca, tetapi hanya satu timer yang rusak.

Dan kemudian pada Ali, saya menemukan katup bola bermotor yang normal. Inilah pria yang tampan:



Ya, itu membutuhkan uang yang layak, tetapi tidak menakutkan untuk menghubungkannya dengan pasokan air musim panas dan meninggalkannya tanpa pengawasan selama seminggu. Pada umumnya cukup padat, meskipun dengan gearbox plastik - sekarang beberapa keran bekerja pada pasokan air utama saya, di mana tekanannya 5 atm.

Idenya sederhana. Saputangan dengan modul WiFi ESP8266 menunggu di laci meja. Diputuskan untuk meninggalkan penghematan daya demi aki mobil bekas, yang, menurut perhitungan, seharusnya sudah cukup untuk setidaknya satu bulan masa pakai baterai. Agar tidak ketinggalan momen pelepasan baterai, sirkuit menyediakan pembagi yang digunakan oleh ESP8266 ADC bawaan untuk secara terus-menerus mengukur tegangan suplai . Modul DS3231 dengan baterai seharusnya berfungsi sebagai jam di sirkuit, dan saputangan per m / s MP1584EN seharusnya menurunkan tegangan dari 12V ke 3.3V.

Berikut adalah diagram blok prototipe:


Dan di sini ada foto implementasinya


sudah sedikit implementasi dibongkar - modul DC-DC masuk ke derek, modul jam di bagian belakang papan tempat memotong roti

Kontrol motor derek dilakukan di sini hanya - transistor yang ditemukan di laci meja, mereka dipasang. Pada kenyataannya, motor dapat dikontrol, misalnya, melalui m / s ULN2003 dengan menyalakan beberapa saluran secara paralel baik dengan transistor efek medan dengan kontrol logis atau secara umum melalui modul relai dengan isolasi-opto. Hanya perlu memperhitungkan bahwa motor, dengan arus operasi sekitar 70 mA, memiliki arus masuk (dan arus pada saat pemblokiran rotasi) dengan urutan 300-350 mA.

Sketsa cepat akan ditulis dalam bahasa Arduino dengan antarmuka Web sederhana:



Dan prototipe berdiri pada tugas uji. Saya meneruskan antarmuka web crane melalui router dan perangkat itu selalu tersedia secara online.

Dan pikiran terus mengalir. Satu prototipe bagus, tapi saya ingin beberapa keran ini dan melakukan semuanya di atas papan tempat memotong roti bukanlah pilihan. Derek telah dibuka. Dan menjadi jelas bahwa ada banyak ruang di dalam di bawah penutup tertutup dan bahkan ada tempat untuk memperbaiki:



Di faucet yang digunakan dalam prototipe, di bawah penutup adalah papan sirkuit kecil dengan relay, yang menyediakan logika kontrol. Dan di foto ada crane dengan indeks CR05. Tidak ada logika atau papan sirkuit di keran ini. Kabel kontrol motor dan kabel sakelar batas hanya ditarik. Dan Anda perlu mengontrol derek tersebut dengan mengubah polaritas tegangan pada motor. Pada saat yang sama, sangat disarankan untuk mengontrol momen akhir penutupan / pembukaan di titik akhir TC, kami ingat bahwa arus pada saat ini sudah 300-350mA.

Diagram blok mulai tampak seperti ini:



Sekarang kita mengambil caliper, selembar kertas di tangan kita dan mulai melakukan pengukuran, menggambar garis besar papan sirkuit cetak dan mencoba menempatkan komponen di atasnya. Baterai CR2032 besar ditinggalkan dan CR1220 kecil (atau 1225) digunakan. Untuk waktu yang sangat lama, chip H-bridge dipilih untuk mengendalikan motor. Pilihannya tampaknya besar, tetapi banyak dari sirkuit mikro ini tidak dapat bekerja dengan tegangan suplai 12V, atau mereka menggunakan transistor bipolar dengan penurunan tegangan yang sangat besar, baik, atau casing tidak berhasil. Chip TB6612 pada awalnya tidak menarik perhatian saya untuk waktu yang lama, dan kemudian tampak sangat berlebihan dan tidak nyaman untuk penyolderan. Tetapi pada akhirnya saya fokus padanya - itu terjangkau dan murah pada Ali. Jembatan-H di sana dibangun di atas transistor efek medan dan dapat beroperasi pada tegangan hingga 15 volt. Modul konverter DC-DC (MP1584EN) ditinggalkan oleh modul - ternyata lebih murah secara detail dan mudah untuk menyoldernya. Hal utama, untuk keandalan, adalah untuk mengganti tala resistor di dalamnya dengan yang konstan (27 kOhm - itu akan memberikan tegangan output 3.4V). Microcircuit dari jam dapat digunakan dalam kasus yang lebih kompak, tetapi ada satu peringatan - saya akan memesan semua komponen untuk Ali dan ada risiko mendapatkan semua komponen untuk Ali dan ada risiko mendapatkan sirkuit palsu atau rusak. Oleh karena itu, pada tahap awal, direncanakan untuk membeli semua sirkuit mikro sebagai bagian dari modul jadi dan menyolder ke papan yang dikembangkan. Dan dalam modul, jam hanya dalam kasus SO16. Bahkan, hanya satu arloji microcircuit ternyata rusak atau palsu - frekuensi kuarsa adalah 32727 dengan 32768 kHz yang ditetapkan.

Setelah semua pekerjaan persiapan, kami mengambil KiKad, google sedikit mencari kursi yang hilang, menggambar beberapa komponen sendiri dan mulai membiakkan papan:



Kami memeriksanya dengan mencetak pada skala 1: 1. Kami melampirkan komponen dan modul dan, jika semua cocok, kami menyiapkan file Gerber untuk produksi dan mengirim ke EasyEda. Setelah 3 minggu, kami mendapatkan 10 sapu tangan imut dan mengumpulkannya.


Ada 5 yang tersisa di foto, sisanya semuanya berfungsi


Perakitan modul

Lubang untuk pengencang, tentu saja, tidak bertepatan sedikit, beberapa kursi tidak berubah seperti yang mereka inginkan, tetapi secara umum produk, setelah perakitan dan firmware, langsung bekerja. Ekor listrik hermetis dibeli pada Ali, melewati segel tekanan standar di gedung, dan timer WiFi crane mendapatkan tampilan pabriknya:



Berikut beberapa crane yang bertugas di negara ini:

di pos


Tetapi kemudian pikiran itu berjalan lagi. Saya ingin lebih banyak otomatisasi di negara ini, dan modulnya ternyata cukup ringkas dan universal. Melalui H-bridge Anda dapat dengan mudah mengontrol relai konvensional. Untuk otomatisasi DIY, banyak yang mengambil Sonoff, tetapi ternyata saya sendiri tidak bisa melakukan yang lebih buruk.

Dan di sini dimulai transformasi keran Wi-Fi sederhana menjadi apa yang diberi nama kode SHAPEsp - kependekan dari Esp 8266 berdasarkan S mart H ome A utomation P latform. Seperti yang direncanakan, ini harus menjadi modul universal yang murah untuk otomatisasi rumah. Dan semua ini harus dapat diandalkan dan terlihat seperti produk jadi setelah perakitan dalam kasus yang terjangkau.

Anehnya, ternyata dalam kasus China dengan Aliexpress pada 2DIN, unitnya baik-baik saja, bodi di tubuhnya, konverter HiLink AC / DC 220V / 12V yang populer (baik, atau klonnya), relai dan konektor daya, dan tentu saja modul saya yang sedikit dikonversi dengan ESP8266, jam dan H-jembatan.

Lakukan sekali


Lakukan dua


Lakukan tiga

modul ini dapat dipasang di badan derek dan di rumah rak DIN

Dan kita mendapatkan:



Sedikit mengubah bentuk modul. Saya menambahkan konektor edge ke dalamnya sehingga bisa berdiri tegak dalam paket 2DIN. Saya menempatkan LED indikator di ujung atas papan, yang terlihat dalam cahaya dalam wadah plastik. Yah, saya menyebar papan media untuk sumber daya dan relay. Untuk membuatnya lebih murah, semua ini dikirim ke produksi dengan satu papan:



Saya mengumpulkan dua prototipe seperti itu dan meletakkannya di pondok untuk mengontrol masuknya konvektor untuk kedatangan musim dingin:

Di pos lain

Salah satu modul di panel, di sebelah sepasang kontaktor yang menyertakan konvektor

Tetapi kemudian dia memutuskan untuk memperbaikinya lebih dan membuatnya lebih universal. Untuk firmware yang lebih andal dan nyaman, saya menempatkan skema firmware dari NodeMcu pada modul. Dia menyimpulkan semua pin yang mungkin dan menambahkan bantalan kontak untuk kenyamanan menghubungkan berbagai sensor. Semua pin tepi ditempatkan dengan peningkatan 2,54 mm, sehingga modul dapat dimasukkan ke papan tempat memotong roti. Secara alami saya menguji koneksi termometer ds1820, sensor BME280 gabungan dan sensor kelembaban pada komparator. Ternyata, selain timer sederhana dengan relay atau crane, Anda dapat dengan mudah membangun stasiun cuaca atau misalnya sistem aquastop. Semua jenis pemberitahuan dan sistem kontrol lainnya ...

Diusir, menggambar model modulnya untuk Fritzing. Jadi, Anda dapat mengevaluasi dan memutar berbagai opsi aplikasi secara virtual:



Tautan ke model GitHub ada di bagian bawah artikel.

Nah, kemudian bagian yang paling sulit dimulai - dukungan perangkat lunak untuk modul. Awalnya, saya menguji dan menguji semuanya dengan sketsa Arduino yang agak sederhana. HTML sederhana, sedikit skrip Java, berbagai cara sederhana mentransmisikan data, hanya fungsi timer dan beberapa sensor yang saya butuhkan. Tetapi dengan cepat menjadi jelas bahwa tidak akan begitu mudah untuk menguasai segala sesuatu di dunia modern IoT dan membangun rumah pintar. Dan juga hanya kemalasan (di sini ada senyum yang tersenyum). Dan kadang-kadang saya tidak ingin menemukan kembali roda.

Oleh karena itu, diputuskan untuk melihat apa yang ada dari firmware siap pakai di mana Anda dapat menambahkan dukungan untuk modul Anda. Sebagai titik awal, Firmwares alternatif untuk produk Sonoff diambil: Sonoff-Tasmota, ESPurna, ESPEasy. Pencarian dapat menemukan ulasan perbandingan dari firmware ini.

Sebagai contoh:

https://lobradov.imtqy.com/FOSS-Firmware-comparison-overview/

https://lobradov.imtqy.com/FOSS-Firmware-comparison-developers/

Pada kenyataannya, saya entah bagaimana berlari melalui kode sumber dalam repositori dari firmware ini dengan mata saya, saya menyadari bahwa cara termudah bagi saya adalah menambahkan modul saya ke firmware ESPurna. Kode firmware terstruktur dengan cukup baik dan pada awalnya mengasumsikan penambahan modul dan fungsi baru. Dalam firmware adalah fungsi timer yang saya butuhkan, Sheduler mandiri. Selain itu, dapat dikatakan di luar kotak, hanya menggambarkan konfigurasi saya dengan relay sederhana di file hardware.h, saya mendapatkan versi yang berfungsi dari firmware relai WiFi.

Namun, modul saya memiliki fungsi yang lebih kaya dan lebih kompleks. Dan diputuskan untuk berkontribusi pada firmware. Di satu sisi, ini cukup sederhana - kami menulis fungsionalitas dan melakukan permintaan-tarik, tetapi pada kenyataannya itu adalah proses yang membosankan dan panjang dengan hasil yang tidak selalu positif atau cepat. Ini adalah biaya dari kenyataan bahwa fungsi yang diusulkan pada umumnya hanya dibutuhkan oleh saya dan papan tidak dikenal saya.

Saya mulai dengan dukungan arloji. Dalam firmware ESPurna, semuanya bekerja melalui NTP dan Time library untuk Arduino - yah, secara historis, Anda perlu tahu waktu, tetapi produk Sonoff tidak memiliki jam otonom dan diasumsikan bahwa mereka selalu memiliki akses Internet. Untuk mendukung jam RTC, saya menulis modul sederhana yang, jika diinginkan, mengganti fungsi penyedia waktu dari NTP murni ke NTP + RTC. Prinsipnya sederhana - jika sinkronisasi NTP tidak tersedia, maka kami mencoba membaca waktu dari jam RTC lokal. Ketika akses ke server NTP muncul, kami mengembalikan sinkronisasi dan, jika diinginkan, menyinkronkan jam lokal. Jadi jam pada modul saya mulai bekerja. Permintaan tarik diterima dengan cepat, tetapi masuk ke cabang espurna-rtc yang terpisah.

Berikutnya adalah permintaan tarik sepele. Karena saya mengukur tegangan suplai ke konverter DC-DC untuk melacak pelepasan baterai, saya perlu memonitor bukan tegangan suplai modul ESP8266, tetapi beberapa yang ditentukan pengguna. Yang saya dirancang sebagai permintaan tarik "tambahkan dukungan untuk pemantauan VCC khusus". Tetapi permintaan ini entah bagaimana menggantung di udara ... dan keinginan untuk berkontribusi entah bagaimana mereda.

Selain itu, menjadi jelas bahwa menambahkan modul Anda ke daftar perangkat jadi yang didukung tidak akan semudah itu - ia memiliki banyak konfigurasi yang berbeda. Oleh karena itu, diputuskan untuk hanya mengembangkan garpu firmware-nya. Dan jika mungkin dan ingin mempertahankan sinkronisasi, buat permintaan tarik atau tawarkan pilihan ceri di gudang firmware utama.

Setelah keputusan seperti itu, semuanya menjadi lebih sederhana. Dalam firmware, sistem kontrol relai sebagian ditulis ulang. Mode kontrol H-bridge ditambahkan dan menjadi lebih nyaman dalam hal menambahkan mode operasi relai kustom.

Studi lebih lanjut dari kode firmware menunjukkan bahwa tidak mungkin untuk melakukan refactor. Gaya penulisan dan penggunaan sumber daya di beberapa tempat sangat kejam untuk mikrokontroler (meskipun agak pintar 32-bit). Sebagai contoh, sistem untuk mengeluarkan pesan debug melahap tumpukan dengan kecepatan tinggi, tetapi pada saat yang sama, hanya untuk tidak menjatuhkan seluruh sistem, itu diblokir ketika ukuran tumpukan menjadi kurang dari 10kB. Saya menulis ulang kode di utas saya sedikit sehingga sekarang semua pesan debug dan prompt di konsol ditampilkan sepenuhnya.

Nah, saat ini, subsistem perhitungan telah ditambahkan ke firmware
Sunrises / matahari terbenam dan SunriseSensor virtual, sehingga Anda dapat membangun relay astronomi sederhana dari modul SHAPEsp. Dibutuhkan keberanian dan komitmen pada repositori utama. Saya pikir ini adalah fungsi yang berguna.

Berikut adalah kisah transformasi ide-ide DIY dari prototipe ke produk yang hampir selesai. Mungkin produk dalam permintaan. Yang paling menakjubkan adalah saya belum mencoba sistem rumah pintar - semua modul bekerja untuk saya sepenuhnya secara otonom dari satu sama lain dan hanya dapat diakses melalui antarmuka web di Internet. Dan begitu membeli papan PC OrangePi terletak di laci dan menunggu di sayap untuk menjadi pengontrol rumah pintar.

Daftar tautan:

  1. Fritzing model dan bagaimana saya berkumpul saya pikir akan ada tata letak sirkuit dan modul di Kikad
  2. Firmware uji sederhana untuk modul
  3. Garpu firmware ESPurna dengan dukungan modul
  4. Repositori firmware ESPurna utama

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


All Articles