สารบัญ:

ปุ่มประตูเสมือนโดยใช้ Mongoose OS และ XinaBox: 10 ขั้นตอน
ปุ่มประตูเสมือนโดยใช้ Mongoose OS และ XinaBox: 10 ขั้นตอน

วีดีโอ: ปุ่มประตูเสมือนโดยใช้ Mongoose OS และ XinaBox: 10 ขั้นตอน

วีดีโอ: ปุ่มประตูเสมือนโดยใช้ Mongoose OS และ XinaBox: 10 ขั้นตอน
วีดีโอ: เรียนรู้การติดตั้งและใช้งาน MongoDB ร่วมกับ NodeJS ( 2022 Edition ) 👨‍💻💯 2024, พฤศจิกายน
Anonim
ปุ่มประตูเสมือนโดยใช้ Mongoose OS และ XinaBox
ปุ่มประตูเสมือนโดยใช้ Mongoose OS และ XinaBox

เราใช้ Mongoose และ xChips เพื่อสร้างปุ่มประตูเสมือน แทนที่จะใช้ปุ่มจริงเพื่อส่งเสียงบอกพนักงาน ตอนนี้พวกเขาสามารถทำเองได้

ขั้นตอนที่ 1: สิ่งที่ใช้ในโครงการนี้

ส่วนประกอบฮาร์ดแวร์

  • XinaBox CW02 x 1 คุณสามารถใช้ CW01 แทนได้
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 คุณสามารถใช้ IP01 เพื่อจ่ายไฟได้ หากคุณไม่ต้องการตั้งโปรแกรมโมดูลเพิ่มเติม
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 "กาว" ที่ลงตัวทุกอย่าง!

แอพซอฟต์แวร์และบริการออนไลน์

Mongoose OS เครื่องมือพัฒนา IoT ที่ยอดเยี่ยมและง่ายจริงๆ … และฟรี

ขั้นตอนที่ 2: เรื่องราว

ที่แผนกต้อนรับของเรา พนักงานของเราต้องส่งเสียงดัง ดังนั้นเราจึงตัดสินใจใช้ยาของเราเองและสร้างปุ่มเสมือน รหัสนี้ช่วยให้คุณส่ง RPC (การเรียกขั้นตอนระยะไกล) ซึ่งดูเหมือนการโทร HTTP ปกติจากเบราว์เซอร์ใดก็ได้ เราใช้ Mongoose เนื่องจากใช้งานได้ง่ายและรวดเร็ว และมีการอัพเดตโค้ด OTA (Over The Air) ในตัว หมายความว่าเราสามารถติดตั้งเทคโนโลยีของเราและยังคงอัปเกรดเฟิร์มแวร์เมื่อเวลาผ่านไป โดยไม่ต้องแยกส่วนเพื่อตั้งโปรแกรมใหม่

ขั้นตอนที่ 3: การเตรียมการ

  • ติดตั้ง Mongoose-OS: ตรงไปตรงมา เพียงทำตามขั้นตอนง่าย ๆ สำหรับระบบปฏิบัติการของคุณที่นี่:
  • คลิก IP01 และ CW02 พร้อมกันโดยใช้ตัวเชื่อมต่อ XC10 ดูภาพด้านล่าง:
ภาพ
ภาพ
  • เสียบ IP01 เข้ากับพอร์ต USB ของคุณ
  • ตรวจสอบให้แน่ใจว่าสวิตช์ IP01 อยู่ในตำแหน่ง B และ DCE
  • แฟลช Mongoose-OS เป็น CW02 จากบรรทัดคำสั่งของคุณ แบบนี้:

ซีดี

ส่งออก MOS_PORT= bin/mos แฟลช esp32

คุณยังสามารถเข้าสู่คอนโซลและทำสิ่งต่างๆ ได้มากที่สุดจากที่นั่น แต่ที่นี่ เราทำจากบรรทัดคำสั่ง เพื่อให้งานเสร็จสิ้นอย่างรวดเร็ว ในการเข้าสู่คอนโซล:

ซีดี

ถังขยะ/มอส

ขั้นตอนที่ 4: การกำหนดค่า

แม้ว่าขั้นตอนเหล่านี้สามารถทำได้ในคำสั่งยาวๆ คำเดียว แต่เราตัดสินใจแยกออก และเนื่องจากคุณจะคัดลอกและวางมัน เรามาทำให้มันง่ายกันเถอะ:

ตั้งค่าพิน I2C เป็นมาตรฐาน xChips:

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

เชื่อมต่อ CW02 ของคุณกับ WiFi ของคุณ:

bin/mos wifi

ยกเลิกการเชื่อมต่อ WiFi ในโหมด AP และตั้งค่าชื่อโดเมน เพื่อให้คุณสามารถเชื่อมต่อกับ CW01 โดยใช้ชื่อโฮสต์ แทนที่จะค้นหาที่อยู่ IP ที่ถูกต้อง สิ่งนี้จะได้ผลก็ต่อเมื่อ:

  • คุณยกเลิกการเชื่อมต่อ WiFi ในโหมด AP ตามที่เราทำด้านล่าง
  • ใช้ Mac หรือติดตั้ง Bonjour บนเครื่อง Windows ของคุณ

bin/mos เรียก Config. Set '{"config": {"wifi": {"ap": {"enable": false}}}}'

bin/mos เรียก Config. Set '{"config": {"dns_sd": {"enable": true}}}' bin/mos call Config. Set '{"config": {"dns_sd": {"host- ชื่อ": "xinabox_switch"}}}

และสุดท้ายคุณต้องรีบูต CW02 เพื่อให้การกำหนดค่าทำงานได้

bin/mos เรียก Config. Save '{"reboot": true}'

หลังจากนี้ คุณควรจะสามารถ ping xinabox_switch.local. ได้อย่างรวดเร็ว

ขั้นตอนที่ 5: การติดตั้ง

ถอดปลั๊ก IP01 ออกจากคอมพิวเตอร์และประกอบวงจรตามภาพด้านบน

เสียบ PU01 (หรือถ้าคุณตัดสินใจที่จะติดกับ IP01) เข้ากับแหล่งพลังงาน USB ต่อสายไฟแบบขนานจากสวิตช์ที่มีอยู่ของคุณ (ปล่อยไว้ในกรณีนั้น) กับ OC03 (ขั้วไม่สำคัญ) ดูภาพวาด Fritzing

เมื่อเปิดเครื่องและเห็นว่าคุณกำลังคุยกับ xCW02 อยู่จริงๆ แล้วการสแกน BUS หรือที่รู้จักในชื่อบัส I2C:

bin/mos --port ws://xinabox_switch.local/rpc โทร I2C. Scan

หากใช้งานได้ทั้งหมดและติดตั้ง xOC03 อย่างถูกต้อง คุณจะเห็นหมายเลข '56' ถูกส่งกลับ นั่นคือที่อยู่ I2C ของ OC03 เป็นทศนิยม (ในฐานสิบหกคือ 0x38)

ขั้นตอนที่ 6: การเขียนโปรแกรม

  • ตอนนี้เปิด Mongoose ในโหมดคอนโซล ดูด้านบน ควรเปิดด้วยหน้าต่างที่ขอหมายเลขพอร์ต ป้อน:ws://xinabox_switch.local/rpc
  • มันจะสื่อสารกับ CW02 และตระหนักว่าเครื่องนั้นแฟลชและเชื่อมต่อกับ WiFi แล้ว ดังนั้นมันจะให้เครื่องหมาย 3 อันเท่านั้น ปิดหน้าต่างและรีเฟรชรายการไฟล์
  • คัดลอกและวางโค้ดด้านล่างลงใน init.js แล้วคลิก save+reboot
  • วงจรของคุณได้รับการตั้งโปรแกรมแล้ว

ขั้นตอนที่ 7: ทดสอบ

คุณได้ใช้การเรียก RPC อีกครั้งแล้ว ดังนั้นจากเทอร์มินัลของคุณ คุณสามารถป้อน:

bin/mos --port ws://xinabox_switch.local/rpc โทร Switch

… และออดของคุณควรจะไปเป็นเวลา 2 วินาที คุณสามารถทำได้จาก - เกือบ - เบราว์เซอร์ใดก็ได้:

xinabox_switch.local/rpc/Switch

… มีผลเช่นเดียวกัน

ขั้นตอนที่ 8: ขั้นตอนต่อไป

คุณสามารถใช้เครื่องมือใดก็ได้ที่สามารถปิด URL ได้ ฉันทำจากแอป Apple ชื่อเวิร์กโฟลว์ ซึ่งช่วยให้ฉันทำจากโทรศัพท์หรือเป็นความซับซ้อนจาก Apple Watch ได้ แต่มีตัวเลือกอื่นอีกมากมาย นี่คือสคริปต์เวิร์กโฟลว์ของฉัน แต่มีที่อยู่ IP แบบฮาร์ดโค้ด: สนุก!

ภาพ
ภาพ

Apple App: เวิร์กโฟลว์ - ที่นี่พร้อมที่อยู่ IP แบบฮาร์ดโค้ด

ขั้นตอนที่ 9: แผนผัง

Buzzer Circuit ติดตั้ง OC03 ควบคู่ไปกับปุ่มกดที่มีอยู่

ดาวน์โหลดได้ที่นี่

วงจร OC03 ติดตั้ง OC03 ควบคู่ไปกับปุ่มกดที่มีอยู่

ดาวน์โหลดได้ที่นี่

ภาพ
ภาพ

ขั้นตอนที่ 10: รหัส

init.js JavaScript รหัสหลักและรหัสเดียวของคุณสำหรับโครงการนี้

โหลด ('api_config.js');

โหลด ('api_gpio.js'); โหลด ('api_i2c.js'); โหลด ('api_net.js'); โหลด ('api_sys.js'); โหลด ('api_timer.js'); โหลด ("api_rpc.js"); ให้นำ = Cfg.get('pins.led'); ให้ adr = 0x38; ให้บัส = I2C.get(); I2C.writeRegB(บัส, adr, 3, 0); I2C.writeRegB(บัส, adr, 1, 0); /* ปิดเพื่อให้แน่ใจ */ let delay = 2000; GPIO.set_mode (นำ GPIO. MODE_OUTPUT); RPC.addHandler('Switch', function(args) { GPIO.toggle(led); I2C.writeRegB(bus, adr, 3, 0); /* ในกรณีที่ OC03 เชื่อมต่อใหม่ */ I2C.writeRegB(bus, adr, 1, 1); Timer.set(ดีเลย์, เท็จ, function() { GPIO.toggle(led); I2C.writeRegB(bus, adr, 1, 0); }, null); return true; });

แนะนำ: