~ SMAK ~ - pengontrol yang dapat diprogram untuk homestead pintar menggunakan pustaka asyncio di MicroPython



Pembukaan


Penggunaan Internet hal-hal di daerah pedesaan jauh lebih luas daripada otomatisasi rumah, meskipun ini, tentu saja, adalah masalah terminologi - apa yang dimaksud dengan ini. Namun demikian, saya memahami konsep Smart Homestead sebagai proyek otomatisasi rasional proses yang terjadi pada objek yang terletak di wilayah perkebunan saya, dan kadang-kadang pada jarak yang layak dari tempat di mana saya berada pada satu waktu atau yang lain, tetapi pada saat yang sama saya ingin setidaknya menjadi cukup yakin bahwa apa yang terjadi pada benda-benda ini tidak akan melampaui batas-batas dari apa yang diizinkan, bahwa saya dapat, jika perlu, dengan cepat mendapatkan gambaran tentang situasi di perkebunan secara keseluruhan dan pada setiap objek yang dikendalikan pada khususnya, serta Dalam esai Anda, untuk campur tangan dalam proses tidak terburu-buru, ke objek yang menyebabkan kekhawatiran saya,karena pada saat ini saya sibuk dengan sesuatu yang penting, atau hanya dingin dan terlalu malas untuk meninggalkan rumah.

Pada saat yang sama, penerapan konsep ini akan memungkinkan saya untuk memperdalam pemahaman saya tentang penggunaan mikrokontroler menggunakan kemampuan MicroPython, yang saya suka dengan ilusi ringannya dibandingkan dengan C ++, di mana dalam kehidupan masa lalu saya heroik melakukan proyek dengan kompleksitas yang berbeda-beda, serta mengimplementasikan algoritma hingga baik yang tidak sampai ke tangan, atau belum diwujudkan dalam perpustakaan dalam bahasa tingkat tinggi. Ini, pada kenyataannya, menentukan minat saya justru pada implementasi saya sendiri, tanpa menggunakan solusi luas mulai dari produsen terkenal dari Xiaomi yang sama hingga aplikasi khusus seperti EspHome atau kerangka kerja. Meskipun saya tidak mengesampingkan kemungkinan bahwa, setelah menjalankan lingkaran besar dan berduri dari desain saya sendiri, diisi dengan benjolan dan jagung, cukup dipetik tetapi tentu saja tidak dikalahkan, saya akan menghembuskan napas,Saya akan menghabiskan uang saya dengan susah payah untuk perangkat yang dikemas dan dirancang dengan indah dari produksi asing dan Rusia dengan harga yang sangat murah dan menerapkan pengalaman yang diperoleh dalam cuaca mendung dan tidak seperti monster seperti MiHime, Domoticz, IFTT atau yang lainnya.

Merangkum - Saya ingin menikmati penemuan sepeda, ketika untuk ini, akhirnya, ada waktu sebelum penderitaan musim panas, ketika itu tidak lagi mudah dilakukan, tetapi tidak ada waktu untuk berpikir, ketika melayani tanah saya. Saya menulis ini untuk memahami sendiri apa yang saya inginkan, tetapi untuk memberi diri saya hak di muka untuk tidak menanggapi komentar yang mungkin menyarankan solusi yang ada dan jelas lebih komprehensif. Meskipun algoritma untuk memecahkan masalah tertentu terkait dengan implementasi rencana sangat disambut baik.



Pendekatan umum


Proses yang terjadi pada objek dikendalikan oleh pengontrol yang dapat diprogram, yang perlu dikembangkan untuk menyelesaikan masalah lokal, menggabungkannya nanti dalam hierarki, jika perlu, dengan membentuk koneksi nirkabel. Tugas lokal diselesaikan jika memungkinkan untuk menyediakan koneksi kabel atau koneksi radio pendek dengan sensor dan aktuator, menggunakan protokol paling sederhana untuk bertukar informasi. Solusi spasial terdiri dari kenyataan bahwa beban pengambilan keputusan maksimum jatuh pada pengontrol yang mengontrol daun grafik berorientasi dalam bentuk sensor dan perangkat, yang, pada saat yang sama, memiliki kemampuan untuk mengirim informasi ringkasan dalam bentuk paket ke simpul grafik nirkabel ini yang meminta informasi tersebut.Di Internet, di telepon atau perangkat lain, cukup bagi saya untuk melihat layar kosong, yang berarti bahwa semuanya berfungsi seperti biasa, tetapi kemampuan untuk meminta detail dan, dalam keadaan darurat, campur tangan dalam tindakan pengendali akhir harus menjadi milik saya sebagai Pencipta ruang ini. Masalah keamanan dan perlindungan dari pengaruh eksternal ditunda hingga nanti.

Pengontrol itu sendiri mungkin sudah memiliki saluran komunikasi yang lebih kuat dan menggunakan protokol yang lebih canggih seperti MQTT atau ZigBee untuk mengatur grafik jaringan mesh yang stabil dengan akses selanjutnya ke Internet.

Saat ini, konsep ini dibatasi oleh logika dari pengontrol yang dapat diprogram, dengan mempertimbangkan kemungkinan untuk dimasukkan ke dalam kawanan, atau, dengan kata lain, dalam kelompok yang dihubungkan oleh koneksi nirkabel. Ruang lingkup controller adalah objek yang tunduk pada kontrol dan manajemen, tidak berarti daftar lengkap yang saya berikan di bawah ini:

  • Rumah kaca - suhu, pencahayaan, kelembaban tanah dan udara
  • Kebun - penyiraman, kelembaban tanah
  • Inkubator - suhu, kelembaban, rotasi baki, suara
  • Bruder - suhu, kelembaban dan pencahayaan
  • Kandang - suhu, pencahayaan
  • Sarang lebah - suhu, kelembaban, berat dan suara (berkerumun)
  • – , ,
  • – ,
  • – ,
  • – ,
  • – ,
  • – ( ) (, )

Untuk menggambarkan, mempelajari dan memecahkan masalah, bahasa logam telah dikembangkan yang memungkinkan kita untuk secara singkat menggambarkan driver perangkat yang digunakan sebagai sumber dan konsumen, keterlambatan yang terkait dengan pemrosesan informasi, saluran komunikasi yang dilalui informasi ini, jadwal dan timer untuk menghasilkan tindakan siklik, variabel, yang berisi informasi penting untuk kontrol dan manajemen proses yang terjadi di fasilitas.

Pada bagian ini, bahasa logam memungkinkan Anda membaca deskripsi proyek dalam bentuk yang dapat dibaca, yang akan berguna untuk menghasilkan dokumentasi serta daftar perangkat dan logika perangkat keras yang dinyatakan dalam papan sirkuit tercetak di mana atau di mana perangkat perangkat keras ini harus terhubung.

Pada bagian kedua, bahasa logam menyajikan primitif yang dengannya proses dikendalikan dan yang digunakan dalam inisialisasi dan analisis selanjutnya dari keadaan proses yang dikendalikan oleh pengontrol. Jika ada sumber daya yang cukup dari mikrokontroler yang digunakan, bagian ini dapat diimplementasikan sebagai juru bahasa, input yang diumpankan dengan file teks yang menggambarkan inisialisasi driver, saluran komunikasi, variabel dan skrip itu sendiri, yang menggambarkan logika controller dan tidak perlu mengubah menjahit jika skenario diklarifikasi.

Ketika Anda memanggil sebuah ide, itulah yang akan melayang, karena itu Smart Manor adalah Rumah Cerdas, tempat kelahiran sebuah ide adalah Altai, namun, Otomasi juga cocok, meskipun itu adalah semacam tautologi dalam konteks ini untuk definisi Smart dan, tentu saja, dengan cara yang menggunakan Pengontrol yang dapat diprogram. . Menggabungkan huruf besar dan mencampur kata-kata bahasa Inggris dan Rusia, ternyata - ~ SMAK ~ , tetapi Bahasa Meta dari Deskripsi Sistem, masing-masing, ~ DAGING ~ . Konsep kuliner ini keluar - aplikasi ~ SMAK ~ using ~ DAGING ~ . Ngomong-ngomong, protokol nirkabel primitif untuk interaksi pengontrol dan perangkat yang tidak diberkahi protokol mereka sendiri sebelumnya, aku memanggil ~ JuJu ~ .

Implementasi perangkat keras dikandung menggunakan kemampuan ESP8266 dan Arduino dengan RF24 + atau lainnya, lebih modern, tetapi tidak kalah murah - untuk sensor dan aktuator - relay, katup, sakelar, dll., Jika mereka tidak dapat dihubungkan secara langsung karena alasan apa pun, logikanya sendiri coba letakkan controller pada ESP32, dan jika gagal, pada STM32. Tujuannya adalah untuk meminimalkan biaya besi. Saya mengakui penggunaan implementasi perangkat keras dari sejumlah proses seperti pengontrol suhu dengan histeresis atau alat pengukur kualitas udara, tetapi karena saya bukan insinyur elektronik, mengembangkan sirkuit menggunakan kapasitor, resistansi dan transistor sangat menyakitkan bagi saya dan ini menentukan keseimbangan yang wajar antara implementasi perangkat keras dan perangkat lunak, dan juga keinginan untuk berpartisipasi langsung,atau setidaknya perenungan tentang apa yang terjadi di controller.

Implementasi perangkat lunak didasarkan pada sintaks dari bahasa metal ~ DAGING ~ , perpustakaan asyncio dan algoritma terkait, logika umum ~ SMAK ~ dijelaskan di bawah ini. Tugas mengendalikan proses yang terjadi di fasilitas ditujukan untuk mempertahankan kondisi operasi tertentu, serta memulihkan kondisi ini jika terjadi penyimpangan, apalagi dengan deviasi yang lebih kuat, tindakan yang lebih energik dapat digunakan, serta respons terhadap situasi darurat.

Di masa depan, terminologi berikut akan digunakan dalam teks:

Sumber (Sumber) - sensor, saluran komunikasi yang masuk
Konsumen - perangkat eksekutif, saluran komunikasi keluar

Interaksi Sumber dan Konsumen dijelaskan dalam Skenario dengan menganalisis nilai-nilai yang diterima dari sumber; status pengatur waktu dan konsumen; nilai-nilai variabel; jadwal, atas dasar yang perintah kontrol dikeluarkan kepada konsumen.

Register sumber digunakan untuk menyimpan data terbaru yang diperoleh sebagai hasil survei sumber, yang masing-masing dapat diinterogasi dengan frekuensinya sendiri. Setelah memperbarui data setidaknya satu sumber, unit analisis diluncurkan untuk mengklarifikasi mode operasi konsumen.

Register konsumen digunakan untuk memisahkan program dan data fisik untuk mengimplementasikan mekanisme logika prioritas untuk eksekusi skrip, yang terdiri dari fakta bahwa dalam proses menganalisis kondisi yang dijelaskan dalam skrip, perintah yang bertentangan dengan perangkat yang sama dapat dikeluarkan dan perintah akhir akan dipertimbangkan yang tercatat terakhir dalam skrip. Dengan demikian, dengan membentuk urutan pemeriksaan kondisi dalam skenario pengoperasian perangkat, prioritas mereka dapat dibentuk. Secara fisik, perintah akan dieksekusi hanya setelah akhir unit analisis.

Interogasi sumber dan pelaksanaan perintah oleh konsumen berlangsung dalam mode asinkron, yaitu driver mereka mentransfer kontrol ke perencana sistem untuk mengantisipasi saat penyelidikan atau perintah, serta dalam kasus inersia operasi, di mana sumber atau konsumen berada dalam keadaan sibuk dan kemudian permintaan berikutnya ditempatkan belok.

Tergantung pada jenis perangkat, pengemudi dapat menggunakan lebih dari satu saluran informasi, misalnya, sensor suhu dan kelembaban DHT menggunakan 2 saluran untuk mentransmisikan suhu dan kelembaban, dan perangkat DS18B20 yang terhubung ke bus umum untuk mengontrol kolektor lantai hangat - bahkan lebih, atau drive servo terintegrasi, mengendalikan beberapa motor atau katup secara bersamaan.

Karakteristik pengemudi meliputi serangkaian permintaan dan perintah khusus untuk perangkat, waktu tunda untuk pelaksanaannya, serta jenis komunikasi yang dilalui sinyal, yang dapat berupa perangkat keras (1Wire, I2C, SPI, UART, dll.) Dan nirkabel (WiFi, RF-radio, BT, dll.), yang melengkapi metode untuk mengirimkan permintaan dan perintah. Selain itu, driver menyediakan mode diagnosis mandiri saat dimuat, tindakan saat dimatikan, dan diagnosa kondisi yang tidak terduga selama operasi normal dalam mode asinkron. Pengemudi dapat menjalankan beberapa tugas tidak sinkron, misalnya, jika umpan balik tentang status perangkat diperlukan.

Dari unit analisis, Anda dapat mengakses register sumber, konsumen, timer dan variabel, ke konstanta sistem serta jadwal. Idealnya, unit analisis dipandang sebagai penerjemah bahasa deskripsi skrip sederhana, diwakili oleh file teks, tetapi dalam versi pertama, ketika menulis skrip dalam kode firmware, saya akan mematuhi primitif dasar bahasa ini untuk menghasilkan presentasi yang lebih ringkas. Saat ini, bahasa deskripsi skrip digunakan untuk mensimulasikan operasi objek (inkubator, brooder, kandang ayam, peternakan lebah, rumah kaca, taman, ruang ketel, kamar hotel), menentukan jumlah perangkat yang diperlukan dan karakteristiknya, yang telah terbukti sangat berguna.

Lebih lanjut dalam rencana adalah publikasi yang sudah diakumulasikan dan dibuat:

  • ~ SMAK ~ - deskripsi algoritma yang berfungsi umum
  • ~ SMAK ~ - deskripsi bahasa logam ~ DAGING ~
  • ~ SMAK ~ - deskripsi protokol ~ JuJu ~
  • ~ SMAK ~ - deskripsi persyaratan untuk membuat driver perangkat di ~ SMAK ~
  • ~ SMAK ~ - praktik aplikasi

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


All Articles