Jadi, kami beralih ke bagian kedua dari cerita kami tentang integrasi kontrol nirkabel nooLite dalam sistem otomasi rumah. Dan pada bagian ini kita akan berbicara tentang modul kontrol MT1132 nooLite dan integrasinya ke dalam sistem Server Arduino Mega yang populer. Ini memperluas kemampuan AMS yang sudah sangat berkembang dengan mengendalikan lampu dan peralatan listrik secara nirkabel di Rumah Cerdas Anda.Tentang bagian pertama
Bagian pertama dari seri ini berbicara tentang cara kerja kontrol nirkabel nooLite dan bagaimana Anda dapat mengontrol peralatan ini dari sketsa di Arduino. Dan pada bagian pertama, informasi rinci diberikan tentang menghubungkan modul MT1132 dan pemrogramannya. Dan itu akan banyak membantu kita sekarang.MengapaKarena Arduino Mega Server adalah Arduino. Dan semua yang ditulis di artikel sebelumnya juga berlaku untuk Arduino Mega Server. Karena itu, sebelum membaca artikel ini, Anda disarankan untuk membiasakan diri dengan bagian pertama dari siklus.Beberapa kata tentang Arduino Mega Server
Arduino Mega Server adalah sistem multi-fungsional dengan banyak fitur unik. Anda dapat mempelajari lebih lanjut tentang ini di situs web proyek. Itu dengan jelas dan dengan "gambar" menggambarkan fitur utamanya. Singkatnya, ini adalah sistem operasi untuk pengontrol Arduino. Dan kemampuan pengontrol telanjang berbeda dari kemampuan pengontrol dengan AMS di papan dalam banyak cara yang sama seperti kemampuan komputer telanjang berbeda dari kemampuan komputer dengan Windows atau Linux di papan.Ini adalah perbandingan figuratif, tetapi memberikan ide yang bagus tentang apa itu Arduino Mega Server.Integrasi
Sekarang mari kita lihat bagaimana modul kontrol MT1132 terintegrasi ke dalam sistem. Secara fisik, menghubungkan modul tidak berbeda dengan menghubungkan ke Arduino Mega atau Arduino Due, yang dijelaskan dalam artikel sebelumnya. Karena itu, saya kembali merujuk Anda ke artikel sebelumnya agar tidak mengulangi hal yang sama di sini.Dengan kabel - daya, arde, dan RX untuk menerima perintah kontrol dari Arduino dan modul siap bekerja. Sungguh, nooLite MT1132 adalah juara dalam kemudahan menghubungkan peralatan ke mikrokontroler.Bagian perangkat lunak juga sangat mirip dengan yang dijelaskan dalam artikel sebelumnya dan bertepatan dengan 85%. Perbedaannya hanya pada variabel dan fungsi spesifik AMS, yang akan kami periksa secara rinci dalam artikel ini.Kernel Manajemen NooLite
Dengan inti kontrol nooLite yang kami maksud adalah kode yang melakukan fungsi dasar menghasilkan perintah dan mengendalikan modul MT1132 (yang, pada gilirannya, mengirimkan perintah ke udara).Kode ini, sesuai dengan ideologi struktur modular AMS, dirancang sebagai modul terpisah dan merupakan unit logis terpisah dari sistem. Modul ini dapat dihidupkan (jika Anda memerlukan kontrol nooLite) atau dimatikan (jika Anda tidak memerlukan kontrol nooLite).
Ini menguntungkan karena menghemat memori mikrokontroler yang berharga dan tidak menggunakan modul ini untuk mereka yang tidak memerlukan kontrol nooLite. Modul ini dapat dimatikan secara dinamis (saat memori tidak disimpan), dan dapat dimatikan pada tahap kompilasi dengan hanya mengomentari baris kode.
Dan dalam hal ini, semua memori yang ditempati oleh modul tetap bebas. Sistem dirancang sedemikian rupa sehingga secara otomatis mengenali modul yang dikompilasi atau tidak dan memproses acara ini dengan benar.
Untuk kenyamanan pengguna, informasi tentang status semua modul sistem ditampilkan di dasbor di header situs. Dan di sana Anda dapat langsung melihat status mereka saat ini. Ini berfungsi baik dalam versi Arduino Mega dan versi Arduino Due.Kode modul kernel NooLite
Sekarang, mari kita lihat kode untuk modul โnooโ dari sistem Arduino Mega Server. Fungsi-fungsi yang dibahas pada artikel sebelumnya, saya akan hilangkan di sini. Jika Anda tiba-tiba tidak mengerti sesuatu, maka kembali ke artikel sebelumnya dan tinjau kembali.Kode modul dibingkai dalam arahan kompilasi bersyarat, yang digunakan untuk mengaktifkan atau menonaktifkan kode modul dari kompilasi sesuai dengan instruksi Anda.#ifdef NOO_FEATURE
โฆ
#endif
Selanjutnya, kesimpulan ditetapkan dimana modul MT1132 terhubung (output ke-19 adalah opsional, ini berfungsi untuk mengkonfirmasi keberhasilan pengiriman perintah oleh modul)byte const PIN_TX = 18;
byte const PIN_RX = 19;
Dan huruf saluran diatur (hanya untuk kemudahan penggunaan)byte const NOO_CHANNEL_1 = 0;
byte const NOO_CHANNEL_2 = 1;
Saat ini, hanya dua saluran yang digunakan, tetapi tidak ada yang mencegah Anda menambahkan beberapa baris kode dan menggunakan semua 32 saluran.Modul diinisialisasi oleh fungsivoid nooInit() {
Serial1.begin(9600);
modulNoo = MODUL_ENABLE;
started("nooLite");
}
di mana Serial1 diinisialisasi pada frekuensi standar 9600, modul diberikan status "ENABLE" dan pesan pengujian ditampilkan dalam Serial untuk mengontrol proses inisialisasi.Fungsi "utama" yang membentuk perintah dan fungsi "pembungkus" yang menyederhanakan perintah hingga batas dijelaskan secara rinci dalam artikel sebelumnya. Itulah inti utama dari kontrol nooLite. Sekarang kita dapat dengan bebas mengakses fungsi kontrol dari mana saja dalam kode Arduino Mega Server. Dan kendalikan peralatan nooLite dengan cara apa pun.Berikut ini adalah kode kernel kontrol nooLite lengkap.Kode kernel lengkap/*
Modul nooLite
part of Arduino Mega Server project
*/
#ifdef NOO_FEATURE
byte const PIN_TX = 18; // TX PIN (to RX noolite)
byte const PIN_RX = 19; // RX PIN (to TX noolite)
byte const NOO_CHANNEL_1 = 0; // channel (address) 0...31 (MT1132)
byte const NOO_CHANNEL_2 = 1;
byte const NOO_CHANNEL_3 = 2;
byte const NOO_CHANNEL_4 = 3;
byte const NOO_CHANNEL_5 = 4;
void nooInit() {
Serial1.begin(9600);
modulNoo = MODUL_ENABLE;
started(ยซnooLiteยป);
}
void nooWork() {
}
void nooSendCommand(byte channel, byte command, byte data, byte format) {
byte buf[12];
for (byte i = 0; i < 12; i++) {
buf[i] = 0;
}
buf[0] = 85;
buf[1] = B01010000;
buf[2] = command;
buf[3] = format;
buf[5] = channel;
buf[6] = data;
int checkSum = 0;
for (byte i = 0; i < 10; i++) {
checkSum += buf[i];
}
buf[10] = lowByte(checkSum);
buf[11] = 170;
for (byte i = 0; i < (12); i++) {
Serial1.write(buf[i]);
}
}
void nooBind (byte ch) {nooSendCommand(ch, 15, 0, 0);}
void nooUnbind (byte ch) {nooSendCommand(ch, 9, 0, 0);}
void nooOn (byte ch) {nooSendCommand(ch, 2, 0, 0);}
void nooOff (byte ch) {nooSendCommand(ch, 0, 0, 0);}
void nooTrigger(byte ch) {nooSendCommand(ch, 4, 0, 0);}
void nooCancel (byte ch) {nooSendCommand(ch, 10, 0, 0);}
void nooUp (byte ch) {nooSendCommand(ch, 3, 0, 0);}
void nooDown (byte ch) {nooSendCommand(ch, 1, 0, 0);}
void nooRevers (byte ch) {nooSendCommand(ch, 5, 0, 0);}
void nooValue (byte ch, byte v) {nooSendCommand(ch, 6, v, 1);}
#endif // NOO_FEATURE
Binding dan Untying Interface
Karena Arduino Mega Server memberi kita antarmuka yang mewah, kita dapat menggunakannya untuk semua fungsi bekerja dengan modul dan sistem nooLite itu sendiri. Kami tidak perlu melakukan apa pun secara manual, komunikasi dengan semua fungsi sistem nooLite akan terjadi menggunakan elemen antarmuka standar yang Anda kenal ketika bekerja dengan situs-situs di Internet. Ini akan menjadi tombol, daftar drop-down, dll.Mari kita mulai dengan antarmuka "mengikat" dan blok daya "membuka ikatan". Semuanya sangat sederhana di sini: di daftar turun bawah, Anda memilih nomor saluran yang diinginkan, lalu pilih jenis tindakan - "Bind" atau "Unbind" dan klik "Kirim". Berikut adalah petunjuk singkat tentang apa yang harus dilakukan setelah mengklik tombol "Kirim". Secara umum, semuanya dilakukan dengan sangat sederhana dan elegan.
Anda dapat "mengikat" dan "membuka ikatan" blok dalam jumlah berapa pun dan pada saluran apa pun (mungkin ada banyak blok daya pada satu saluran dan mereka akan menyala secara bersamaan, karena mereka berada di saluran yang sama).Di sini Anda hanya perlu mengingat bahwa dalam 0,14 kontrol perakitan atas dua saluran diterapkan. Jika dua saluran tidak cukup untuk Anda, maka Anda dapat, dengan analogi, menambahkan kontrol untuk sejumlah saluran yang Anda butuhkan (hingga 32).Kontrol antarmuka
Sekarang mari kita lihat bagaimana antarmuka manajemen perangkat nooLite di AMS diatur. Di menu sistem ada item "Management nooLite". Ketika Anda mengkliknya, halaman terbuka yang dengannya Anda dapat menghidupkan dan mematikan perangkat nooLite secara nirkabel. Seperti yang saya katakan, kontrol versi 0.14 diatur pada dua saluran. Mereka disebut "Blok 1" dan "Blok 2" (artinya blok dimer daya nirkabel nooLite).
Kami mengklik "Blok 1" dan kami melihat tombol yang bagus - ini adalah antarmuka kontrol dari blok daya pertama. Anda dapat menghubungkan penerangan atau alat listrik apa pun (dengan daya yang sesuai) ke unit ini dan ... dengan mudah dan nyaman mengontrol dan mematikannya dengan menekan tombol ini.Antarmuka Arduino Mega Server bersifat adaptif, yang berarti bahwa Anda dapat mengontrol on dan off peralatan listrik langsung dari smartphone Anda - antarmuka akan "lipat" dan penggali akan besar dan mudah untuk menekan pada smartphone.
Bukan itu saja. Selain sekadar menghidupkan dan mematikan perangkat, sistem nooLite memungkinkan Anda melakukan lebih banyak hal lain, misalnya meredupkan (dengan lancar mengubah) kecerahan lampu atau mengatur daya beban yang diperlukan. Elemen antarmuka lain dirancang untuk ini - widget untuk mengatur daya dan peredupan.Widget Daya dan Peredupan
Pada saluran kedua ada dua elemen antarmuka - tombol on dan off dan widget pengaturan daya. Menggunakan widget ini, Anda dapat mengatur daya, dinilai sebagai persentase maksimum. Ini adalah solusi universal yang cocok untuk sebagian besar kasus.Anda juga dapat terhubung dengan baik ke dimer nirkabel nooLite (misalnya, SU111-300) lampu di kamar Anda atau perangkat listrik yang memerlukan penyesuaian daya (dalam peringkat daya unit daya Anda) dan Anda dapat dengan mudah memasang daya yang diinginkan langsung dari halaman web.
Jika Anda perlu menyesuaikan daya dengan cara yang berbeda, misalnya, dengan akurasi lebih besar atau non-linear, maka Anda dapat mengubah widget standar dengan menyesuaikan kode sumber (yang, tentu saja, sepenuhnya dapat diakses).Gambar menunjukkan saat ketika daya diatur ke maksimum 20%. Pada saat yang sama, Anda dapat mengubah daya dari sketsa ke Arduino secara otomatis. Misalnya, dengan sistem ini, tidak ada artinya untuk mengatur "jam alarm fajar" yang sangat modis sekarang, ketika kecerahan lampu meningkat perlahan dan "secara alami" membangunkan Anda di pagi hari. Dan tanpa kabel! Kekuatan dan kontrol, itu sudah cukup untuk mengintegrasikan dimer ke dalam lampu atau lampu.Widget dan tombol berfungsi secara independen. Ini berarti bahwa Anda dapat mengatur daya yang Anda butuhkan (kecerahan) dan setelah mematikan dan menghidupkannya lagi, daya yang dipasang akan dihemat, yang sangat nyaman.Fungsi lainnya
Dalam dokumen dari "Nootehnika" menggambarkan kontrol perangkat perintah nooLite, masih banyak tim lain, beberapa di antaranya sudah ada dalam nukleus, dan beberapa - tidak. Jika Anda memerlukan perintah lain, maka Anda dapat menambahkannya sendiri, karena ini sama sekali tidak sulit dan sistem sudah memiliki banyak contoh.Kesimpulan
Jadi, kami memeriksa integrasi modul kontrol nooLite MT1132 ke dalam Arduino Mega Server dan prinsip pengorganisasian antarmuka manajemen perangkat keras nooLite . Dengan inti kontrol terintegrasi, Anda dapat dengan mudah mengontrol perangkat nooLite dari AMS di Smart Home Anda.Pada ini, artikel kedua berakhir, dan pada artikel ketiga dari seri Anda akan berkenalan dengan konsep yang benar-benar fantastis dari sistem Arduino Mega Server "100 in 1", ketika satu pengontrol dengan AMS di papan menggantikan Anda dengan banyak perangkat dan sistem dan menghemat biaya Anda.Dan itu akan ditampilkan pada contoh stasiun solder, yang akan kita buat secara harfiah dari nol - dari satu dimer nirkabel nooLite.PSArduino Mega Server adalah sistem serbaguna dan fleksibel yang dapat diintegrasikan dengan apa saja, oleh karena itu, perusahaan yang tertarik untuk mempopulerkan teknologi mereka dan memperluas basis pengguna diundang untuk bekerja sama - peralatan Anda juga dapat dengan mudah diintegrasikan dengan sistem Arduino Mega Server yang populer.Memiliki modul Anda sendiri (dan situs web) di Arduino Mega Server adalah ide yang sangat bagus.Bagian pertama , ketiga dan keempat dari siklus.Selain itu . Saluran Youtube terbuka dan berikut ini adalah video promo dari Arduino Mega Server, yang menunjukkan cara bekerja dengan sistem nyata.