Daftar Isi:

Tombol Pintu Virtual Menggunakan OS Mongoose dan XinaBox: 10 Langkah
Tombol Pintu Virtual Menggunakan OS Mongoose dan XinaBox: 10 Langkah

Video: Tombol Pintu Virtual Menggunakan OS Mongoose dan XinaBox: 10 Langkah

Video: Tombol Pintu Virtual Menggunakan OS Mongoose dan XinaBox: 10 Langkah
Video: Belajar NodeJS | 21. Instalasi & Konfigurasi MongoDB 2024, November
Anonim
Tombol Pintu Virtual Menggunakan OS Mongoose dan XinaBox
Tombol Pintu Virtual Menggunakan OS Mongoose dan XinaBox

Menggunakan Mongoose dan beberapa xChips, kami membuat tombol pintu virtual. Alih-alih tombol fisik untuk mengaktifkan staf, mereka sekarang dapat melakukannya sendiri.

Langkah 1: Hal-hal yang Digunakan dalam Proyek Ini

Komponen perangkat keras

  • XinaBox CW02 x 1 Anda bisa menggunakan CW01 sebagai gantinya
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 Anda bisa menggunakan IP01 untuk daya, jika Anda tidak ingin memprogram lebih banyak modul.
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 "lem" yang membuat semuanya bekerja!

Aplikasi perangkat lunak dan layanan online

Mongoose OS Alat pengembangan IoT yang sangat mengagumkan dan mudah … dan gratis

Langkah 2: Cerita

Dalam resepsi kami, staf kami perlu dihubungi, jadi kami memutuskan untuk mengambil obat kami sendiri dan membuat tombol virtual. Kode ini memungkinkan Anda untuk mengirim RPC (Remote Procedure Call), yang terlihat seperti panggilan HTTP normal dari browser apa pun. Kami menggunakan Mongoose, karena sangat mudah dan cepat untuk digunakan dan memiliki pembaruan kode OTA (Over The Air) bawaan, berarti kami dapat menginstal teknologi kami dan terus meningkatkan firmware, tanpa membongkarnya untuk memprogram ulang.

Langkah 3: Persiapan

  • Instal Mongoose-OS: Langsung saja, ikuti langkah-langkah yang sangat mudah ini untuk OS Anda di sini:
  • Klik IP01 dan CW02 bersama-sama menggunakan konektor XC10. Lihat gambar di bawah ini:
Gambar
Gambar
  • Masukkan IP01 ke port USB Anda
  • Pastikan sakelar IP01 berada di posisi B dan DCE.
  • Flash OS Mongoose ke CW02 dari baris perintah Anda. Seperti ini:

CD

ekspor MOS_PORT= bin/mos flash esp32

Anda juga bisa masuk ke konsol dan melakukan sebagian besar dari sana, tetapi di sini kami melakukannya dari baris perintah, sehingga pekerjaan selesai dengan cepat. Untuk masuk ke konsol:

CD

tempat sampah/mos

Langkah 4: Konfigurasi

Meskipun langkah-langkah ini dapat dilakukan dalam satu pernyataan yang panjang, kami memutuskan untuk membaginya, dan karena Anda akan menyalin dan menempelkannya, mari kita permudah:

Atur pin I2C ke standar xChips:

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

Hubungkan CW02 Anda ke WiFi Anda:

bin/mos wifi

Putuskan sambungan WiFi dalam mode AP dan atur nama domain, sehingga Anda dapat terhubung ke CW01 dengan nama host alih-alih menemukan alamat IP yang benar. Ini hanya akan berfungsi jika:

  • Anda memutuskan koneksi WiFi dalam mode AP seperti yang kami lakukan di bawah ini.
  • Gunakan Mac atau instal Bonjour di mesin Windows Anda.

bin/mos panggil Config. Set '{"config": {"wifi": {"ap": {"enable": false}}}}'

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

Dan akhirnya Anda harus me-reboot CW02 agar konfigurasi berfungsi

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

Sangat cepat setelah ini, Anda seharusnya dapat melakukan ping ke xinabox_switch.local

Langkah 5: Menginstal

Cabut IP01 dari komputer Anda dan pasang sirkuit sesuai gambar atas.

Colokkan PU01 (atau jika Anda memutuskan untuk tetap menggunakan IP01) ke sumber daya USB. Hubungkan kabel paralel dari sakelar yang ada (biarkan saja, untuk berjaga-jaga) ke OC03 (polaritas tidak masalah). Lihat gambar Fritzing.

Setelah dinyalakan dan untuk melihat bahwa Anda benar-benar berbicara dengan xCW02 Anda, bagaimana dengan memindai BUS, alias bus I2C:

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

Jika semuanya berfungsi dan xOC03 Anda diinstal dengan benar, Anda akan melihat angka '56' ditampilkan. Itu adalah alamat I2C dari OC03 dalam desimal (dalam hex adalah 0x38).

Langkah 6: Pemrograman

  • Sekarang buka Mongoose dalam mode konsol, lihat di atas. Itu harus terbuka dengan Jendela di mana ia meminta nomor port, masukkan: ws://xinabox_switch.local/rpc
  • Ini akan berkomunikasi dengan CW02, dan menyadari bahwa unit sudah di-flash dan terhubung ke WiFi, jadi itu hanya akan memberikan 3 tanda centang. Tutup jendela dan segarkan daftar file
  • Salin dan tempel kode di bawah ini ke init.js, dan klik simpan+reboot
  • Sirkuit Anda sekarang diprogram.

Langkah 7: Uji

Anda sekarang telah menerapkan panggilan RPC lain sehingga dari terminal Anda, Anda dapat memasukkan:

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

… dan bel Anda akan berbunyi selama 2 detik. Anda juga bisa melakukannya dari - hampir - browser apa pun:

xinabox_switch.local/rpc/Switch

… dengan efek yang sama.

Langkah 8: Langkah Selanjutnya

Anda dapat menggunakan alat apa pun yang dapat mengaktifkan URL. Saya melakukannya dari Aplikasi Apple bernama Workflow, yang memungkinkan saya melakukannya dari ponsel saya atau sebagai komplikasi dari Apple Watch saya, tetapi ada banyak opsi lain di luar sana. Ini skrip Workflow saya, tetapi dengan alamat IP hardcode: Selamat menikmati!

Gambar
Gambar

Aplikasi Apple: Alur Kerja - di sini dengan alamat IP yang di-hardcode

Langkah 9: Skema

Rangkaian Buzzer Pasang OC03 secara paralel dengan push button yang ada.

Unduh di sini.

Sirkuit OC03 Pasang OC03 secara paralel dengan push button yang ada.

Unduh di sini.

Gambar
Gambar

Langkah 10: Kode

init.js JavaScript Kode utama dan satu-satunya Anda untuk proyek ini.

load('api_config.js');

load('api_gpio.js'); load('api_i2c.js'); load('api_net.js'); load('api_sys.js'); load('api_timer.js'); load("api_rpc.js"); let led = Cfg.get('pins.led'); misalkan adr = 0x38; biarkan bus = I2C.get(); I2C.writeRegB(bus, adr, 3, 0); I2C.writeRegB(bus, 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); /* jika OC03 terhubung kembali */ I2C.writeRegB(bus, adr, 1, 1); Timer.set(delay, false, function() { GPIO.toggle(led); I2C.writeRegB(bus, adr, 1, 0); }, null); return true; });

Direkomendasikan: