Isi kandungan:

Butang Pintu Maya Menggunakan OS Mongoose dan XinaBox: 10 Langkah
Butang Pintu Maya Menggunakan OS Mongoose dan XinaBox: 10 Langkah

Video: Butang Pintu Maya Menggunakan OS Mongoose dan XinaBox: 10 Langkah

Video: Butang Pintu Maya Menggunakan OS Mongoose dan XinaBox: 10 Langkah
Video: Когда одного босса уже мало... ► 9 Прохождение Elden Ring 2024, November
Anonim
Butang Pintu Maya Menggunakan OS Mongoose dan XinaBox
Butang Pintu Maya Menggunakan OS Mongoose dan XinaBox

Dengan menggunakan Mongoose dan beberapa xChips, kami membuat butang pintu maya. Daripada butang fizikal untuk membuat kakitangan masuk, mereka kini boleh melakukannya sendiri.

Langkah 1: Perkara Yang Digunakan dalam Projek Ini

Komponen perkakasan

  • XinaBox CW02 x 1 Anda boleh menggunakan CW01 sebagai gantinya
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 Anda hanya boleh menggunakan IP01 untuk kekuatan, jika anda tidak bermaksud untuk memprogram lebih banyak modul.
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 "Lem" yang menjadikan semuanya berfungsi!

Aplikasi perisian dan perkhidmatan dalam talian

Mongoose OS Alat pengembangan IoT yang sangat hebat dan mudah… dan percuma

Langkah 2: Cerita

Di penerimaan kami, kakitangan kami perlu diberi perhatian, jadi kami memutuskan untuk mengambil ubat sendiri dan membuat butang maya. Kod ini membolehkan anda menghantar RPC (Panggilan Prosedur Jauh), yang kelihatan seperti panggilan HTTP biasa dari penyemak imbas mana pun. Kami menggunakan Mongoose, kerana ia sangat mudah dan pantas untuk dikerjakan dan ia adalah pembaharuan kod OTA (Over The Air) terbina dalam, ini bermaksud kami dapat memasang teknologi kami dan masih dari masa ke masa meningkatkan firmware, tanpa membongkarnya untuk memprogram ulang.

Langkah 3: Persiapan

  • Pasang Mongoose-OS: Lurus ke hadapan, ikuti langkah-langkah yang sangat mudah untuk OS anda di sini:
  • Klik IP01 dan CW02 bersama-sama menggunakan penyambung XC10. Lihat gambar di bawah:
Imej
Imej
  • Masukkan IP01 ke port USB anda
  • Pastikan suis IP01 berada di kedudukan B dan DCE.
  • Kilat Mongoose-OS ke CW02 dari baris arahan anda. Seperti ini:

cd

eksport MOS_PORT = bin / mos flash esp32

Anda juga boleh memasuki konsol dan melakukan sebahagian besar dari sana, tetapi di sini kami melakukannya dari baris arahan, jadi kerja cepat selesai. Untuk memasuki konsol:

cd

tong sampah / mos

Langkah 4: Konfigurasi

Walaupun langkah-langkah ini dapat dilakukan dalam satu pernyataan panjang, kami memutuskan untuk memisahkannya, dan kerana anda akan menyalin dan menampalnya, mari memudahkan:

Tetapkan pin I2C ke standard xChips:

bin / mos config-set i2c.scl_gpio = 14 i2c.sda_gpio = 2

Sambungkan CW02 anda ke WiFi anda:

wifi bin / mos

Putuskan sambungan WiFi dalam mod AP dan siapkan nama domain, sehingga anda dapat menyambung ke CW01 dengan nama host dan bukannya mencari alamat IP yang betul. Ini hanya akan berfungsi sekiranya:

  • Anda memutuskan sambungan WiFi dalam mod AP seperti yang kami lakukan di bawah.
  • Gunakan Mac atau pasang Bonjour pada mesin Windows anda.

bin / mos call Config. Set '{"config": {"wifi": {"ap": {"enabled": false}}}}'

bin / mos call Config. Set '{"config": {"dns_sd": {"enable": true}}}' bin / mos call Config. Set '{"config": {"dns_sd": {"host- nama ":" xinabox_switch "}}}

Dan akhirnya anda harus menghidupkan semula CW02 agar konfigurasi berfungsi

bin / mos call Config. Save '{"reboot": true}'

Sangat cepat selepas ini anda seharusnya dapat melakukan ping xinabox_switch.local

Langkah 5: Memasang

Cabut palam IP01 dari komputer anda dan pasangkan litar seperti pada gambar atas.

Pasang PU01 (atau jika anda memutuskan untuk tetap menggunakan IP01) ke sumber kuasa USB. Sambungkan wayar selari dari suis sedia ada anda (tinggalkan itu, sekiranya berlaku) ke OC03 (polariti tidak menjadi masalah). Lihat lukisan Fritzing.

Setelah dihidupkan dan untuk melihat bahawa anda sebenarnya bercakap dengan xCW02 anda, bagaimana dengan mengimbas BUS, aka bas I2C:

bin / mos --port ws: //xinabox_switch.local/rpc hubungi I2C. Scan

Sekiranya semuanya berfungsi dan xOC03 anda dipasang dengan betul, anda akan melihat nombor '56' dikembalikan. Itulah alamat I2C dari OC03 dalam perpuluhan (dalam hex adalah 0x38).

Langkah 6: Pengaturcaraan

  • Sekarang buka Mongoose dalam mod konsol, lihat di atas. Ia harus dibuka dengan Window di mana ia meminta nombor port, masukkan: ws: //xinabox_switch.local/rpc
  • Ia akan berkomunikasi dengan CW02, dan menyedari bahawa unit ini sudah dimatikan dan disambungkan ke WiFi, jadi ia hanya akan memberikan 3 tanda semak. Tutup tetingkap dan muat semula senarai fail
  • Salin dan tampal kod di bawah ke dalam init.js, dan klik save + reboot
  • Litar anda kini diprogramkan.

Langkah 7: Uji

Anda kini telah melaksanakan panggilan RPC yang lain sehingga dari terminal anda dapat memasukkan:

bin / mos --port ws: //xinabox_switch.local/rpc panggilan Tukar

… dan bel anda perlu selama 2 saat. Anda juga boleh melakukannya dari - hampir - penyemak imbas mana-mana:

xinabox_switch.local/rpc/Switch

… dengan kesan yang sama.

Langkah 8: Langkah seterusnya

Anda boleh menggunakan mana-mana alat yang dapat mematikan URL. Saya melakukannya dari Aplikasi Apple yang disebut Workflow, yang membolehkan saya melakukannya dari telefon saya atau sebagai komplikasi dari Apple Watch saya, tetapi terdapat banyak pilihan lain di luar sana. Inilah skrip Workflow saya, tetapi dengan alamat IP hardcod: Nikmati!

Imej
Imej

Aplikasi Apple: Aliran Kerja - di sini dengan alamat IP berkod keras

Langkah 9: Skematik

Litar Buzzer Pasang OC03 selari dengan butang tekan yang ada.

Muat turunnya di sini.

Litar OC03 Pasang OC03 selari dengan butang tekan yang ada.

Muat turunnya di sini.

Imej
Imej

Langkah 10: Kod

init.js JavaScript Kod utama dan satu-satunya anda untuk projek ini.

muat ('api_config.js');

muat ('api_gpio.js'); muat ('api_i2c.js'); muat ('api_net.js'); muat ('api_sys.js'); muat ('api_timer.js'); muat ("api_rpc.js"); let led = Cfg.get ('pins.led'); biarkan adr = 0x38; biarkan bas = I2C.get (); I2C.writeRegB (bas, adr, 3, 0); I2C.writeRegB (bas, adr, 1, 0); / * matikan hanya untuk memastikan * / let delay = 2000; GPIO.set_mode (dipimpin, GPIO. MODE_OUTPUT); RPC.addHandler ('Switch', function (args) {GPIO.toggle (led); I2C.writeRegB (bus, adr, 3, 0); / * sekiranya OC03 dihubungkan semula * / I2C.writeRegB (bus, adr, 1, 1); Timer.set (delay, false, function () {GPIO.toggle (led); I2C.writeRegB (bus, adr, 1, 0);}, null); kembali benar;});

Disyorkan: