สารบัญ:

TinyLiDAR ในโรงรถของคุณ!: 10 ขั้นตอน
TinyLiDAR ในโรงรถของคุณ!: 10 ขั้นตอน

วีดีโอ: TinyLiDAR ในโรงรถของคุณ!: 10 ขั้นตอน

วีดีโอ: TinyLiDAR ในโรงรถของคุณ!: 10 ขั้นตอน
วีดีโอ: Introducing tinyLiDAR 2024, พฤศจิกายน
Anonim
TinyLiDAR ในโรงรถของคุณ!
TinyLiDAR ในโรงรถของคุณ!

โครงการที่เปิดประตูโรงรถ DIY WiFi

โลก IoT กำลังเริ่มที่จะระเบิด - บริษัทเทคโนโลยีทุกแห่งทั่วโลกกำลังพยายามค้นหาว่าพวกเขาจะเข้ากับโลกใหม่นี้ได้อย่างไร มันเป็นโอกาสที่ยิ่งใหญ่เท่านั้น! ดังนั้นสำหรับคำแนะนำนี้ เพื่อให้สอดคล้องกับธีม IoT นี้ เราจะพูดถึงวิธีสร้างผู้สาธิต IoT ของคุณเองซึ่งมีประโยชน์จริงๆ;)

สรุป TL;DR

  • ตั้งค่าเวิร์กโฟลว์ที่เชื่อถือได้สำหรับการเข้ารหัสโมดูล ESP32 WiFi
  • แฟลชมัน
  • ประกอบขึ้นบนเขียงหั่นขนมของคุณ
  • ดาวน์โหลดรหัสแอปพลิเคชันของเราแล้วเปิดเครื่องรูด
  • เพิ่มข้อมูลรับรอง WiFi ของคุณและ IP แบบคงที่
  • เชื่อมต่อกับเครือข่าย WiFi ของคุณ
  • แก้ไขธรณีประตูและติดตั้งในโรงรถของคุณ
  • ต่อเข้ากับหน้าสัมผัสที่เปิดประตูโรงรถของคุณ
  • และคลิกออกไป!
  • ไม่จำเป็นต้องบัดกรี (ยกเว้นพินสำหรับบอร์ดฝ่าวงล้อมหากจำเป็น)

อะไหล่ที่จำเป็น

  • เวลา tinyLiDAR ของโมดูลเซ็นเซอร์ระยะการบิน
  • Wipy3.0 หรือบอร์ด WiFi ที่ใช้ ESP32 ที่คล้ายกัน
  • รีเลย์โซลิดสเตตแยกแสง (Omron G3VM-201AY1) เพื่อควบคุมที่เปิดประตูโรงรถ
  • ตัวต้านทาน 470ohm (5% 1/8 วัตต์หรือใหญ่กว่าก็โอเค)
  • สวิตช์ปุ่มกดชั่วขณะสำหรับพิน BOOT (GPIO0) เพื่ออัปเกรดเฟิร์มแวร์บนบอร์ด ESP32
  • USB to Serial dongle เพื่ออัปโหลดโค้ดและโต้ตอบกับ REPL บน ESP32 (ใช้เวอร์ชัน 3.3v I/O)
  • เขียงหั่นขนม + สายไฟ
  • แหล่งจ่ายไฟ: 3.3V ถึง 5V ที่ 500mA หรือสูงกว่า คุณสามารถใช้ที่ชาร์จโทรศัพท์มือถือ microUSB สำหรับแหล่งจ่ายไฟและบอร์ดฝ่าวงล้อม microUSB เพื่อเสียบเข้ากับเขียงหั่นขนมของคุณ

ขั้นตอนที่ 1: IoT อะไรนะ?

IoT คืออะไร?
IoT คืออะไร?

ไม่ต้องสงสัยเลยว่าคุณคงเคยได้ยินคำว่า IoT ในสื่อต่างๆ มาบ้างแล้ว แต่มันหมายความว่าอย่างไร?

การพูดอย่างหลวม ๆ หมายถึงการเชื่อมต่อเซ็นเซอร์และสิ่งต่าง ๆ ที่ควบคุมได้ทุกประเภทเชื่อมต่อกับอินเทอร์เน็ต ทุกวันนี้ อินเทอร์เน็ตมีความหมายเหมือนกันกับระบบไร้สาย ดังนั้นเราจึงมีทุกอย่างอิเล็กทรอนิกส์ในทันทีที่เชื่อมต่อแบบไร้สายผ่านลิงก์ไร้สายบางประเภท เช่น WiFi/BT/LoRa/SigFox เป็นต้น เมื่อเชื่อมต่อกับอินเทอร์เน็ตแล้ว เราสามารถสัมผัสและ/หรือควบคุมได้ สิ่งเหล่านี้จากตัวควบคุมมือถือที่เราชื่นชอบเช่นโทรศัพท์มือถือของเราหรือทำให้เป็นอัตโนมัติผ่านแอพที่ทำงานอยู่ในเซิร์ฟเวอร์ที่อื่น (เช่นคลาวด์)

แม้ว่าบริษัทขนาดใหญ่จะทำการตลาดการควบคุมด้วยเสียงมากขึ้น แต่เมื่อเร็ว ๆ นี้ AI และการเชื่อมต่อระบบคลาวด์ พื้นฐานของการทำให้สิ่งนี้เกิดขึ้นทั้งหมดยังคงเหมือนเดิม คุณต้องเชื่อมต่อ "สิ่งของ" ของคุณกับลิงก์ไร้สายก่อนที่แนวคิดเหล่านี้จะเป็นไปได้ เริ่มจากพื้นฐานและเรียนรู้วิธีเชื่อมต่อเวลา TinyLiDAR ของเซ็นเซอร์ระยะการบินกับโมดูล WiFi ต้นทุนต่ำ จากนั้นแสดงเพื่อส่งข้อมูลไปมาในเครือข่าย ในตอนท้ายของคำแนะนำนี้ คุณจะมีรีโมทควบคุมประตูโรงรถที่เปิดใช้งาน WiFi พร้อมจอภาพแบบเรียลไทม์เพื่อตรวจสอบว่าประตูเปิดหรือปิดอยู่

ในทางเทคนิค ตามที่แสดงในแผนภาพบล็อกด้านบน โปรเจ็กต์นี้ใช้เว็บเซิร์ฟเวอร์ micropython ที่ทำงานบนโมดูล ESP32 WiFi โดยใช้โปรโตคอลการสื่อสาร 'websockets' เพื่อส่งข้อมูลไปมาจากเว็บเบราว์เซอร์มือถือใดๆ นอกจากนี้ เรามีเวลา tinyLiDAR ของเซ็นเซอร์ระยะการบินที่ทำการวัดตามต้องการ เพื่อให้คุณสามารถตรวจสอบได้ว่าประตูโรงรถเปิดทิ้งไว้หรือไม่

ขั้นตอนที่ 2: ลองเลย - ไม่จริง ลองใช้เลยตอนนี้

ลองเลย - ไม่จริง ลองใช้เลยตอนนี้
ลองเลย - ไม่จริง ลองใช้เลยตอนนี้

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

รหัสทั้งหมดที่ใช้ในบทความนี้ทำงานได้ดีในขณะที่เขียนบทความนี้ อย่างไรก็ตาม เนื่องจากอัตราของนวัตกรรมในพื้นที่ IoT เพิ่มขึ้น สิ่งต่างๆ อาจเปลี่ยนไปเมื่อคุณอ่านข้อความนี้ ไม่ว่าในกรณีใด การทำงานผ่านปัญหาและปรับให้เข้ากับการใช้งานของคุณเอง อย่างน้อยจะช่วยให้คุณได้เข้าสู่พื้นที่ใหม่ที่น่าตื่นเต้นนี้ และเริ่มคิดเหมือนวิศวกร IoT!

พร้อม? มาเริ่มกันที่ขั้นตอนแรกในการตั้งค่าสภาพแวดล้อมการพัฒนาที่มั่นคงของคุณเอง

ขั้นตอนที่ 3: Micropython & ESP32

Micropython & ESP32
Micropython & ESP32

โมดูล ESP32 WiFi ถูกสร้างขึ้นโดย Espressif และพวกเขาได้รับการปรับปรุงอย่างมากตั้งแต่โมดูล ESP8266 รุ่นแรกเมื่อไม่กี่ปีที่ผ่านมา เวอร์ชันใหม่เหล่านี้มีหน่วยความจำมากขึ้น โปรเซสเซอร์ที่แข็งแกร่งขึ้น และคุณสมบัติมากกว่าโมดูลดั้งเดิม และยังคงมีต้นทุนต่ำ แผนภาพด้านบนช่วยให้คุณทราบว่าพวกเขาสามารถบรรจุลงในชิป ESP32 ขนาดเล็กนี้ได้มากเพียงใด ESP32 IC นั้นเป็นไมโครคอนโทรลเลอร์แบบดูอัลคอร์พร้อมวิทยุ 802.11b/g/n WiFi และวิทยุ Bluetooth 4.2 ในตัว โดยทั่วไปแล้ว โมดูลที่ใช้ ESP32 จะเพิ่มเสาอากาศ หน่วยความจำ FLASH เพิ่มเติม และตัวควบคุมกำลัง

โปรดทราบว่าเมื่อเราพูดโมดูล ESP32 ในคำแนะนำนี้ เราหมายถึงบอร์ด Pycom Wipy3.0 ซึ่งใช้ชิป/โมดูล ESP32 จากประสบการณ์ของเรา บอร์ด Pycom ดูเหมือนจะมีคุณภาพงานสร้างที่สูงกว่าโมดูล ESP32 ราคาประหยัดทั่วไปที่มีอยู่ ในการพัฒนา การลดตัวแปรให้มากที่สุดเท่าที่จะเป็นไปได้จะเป็นประโยชน์เสมอ ดังนั้นเราจึงเลือกใช้บอร์ด Pycom แทนยาสามัญที่มีต้นทุนต่ำ

สำหรับแอปพลิเคชัน OEM ปกติแล้วการเข้ารหัส ESP32 จะใช้ภาษา C แต่โชคดีที่เรามีตัวเลือกมากมายให้คุณเลือก ดังนั้นคุณไม่จำเป็นต้องลงไปถึงระดับต่ำนี้หากคุณไม่ต้องการ เราเลือกใช้ micropython สำหรับการเข้ารหัสทั้งหมดของเราในคำแนะนำนี้

Micropython อย่างที่คุณอาจคาดเดาได้ว่าเป็นชุดย่อยของภาษาการเขียนโปรแกรม Python เต็มรูปแบบซึ่งขับเคลื่อนเสิร์ชเอ็นจิ้นและเว็บไซต์ที่ไม่ค่อยมีคนรู้จักเช่น Google, YouTube และ Instagram;)

โลโก้ Micropython
โลโก้ Micropython

Micropython เริ่มต้นจากโครงการ kickstarter สำหรับโปรเซสเซอร์ STM32 แต่ปัจจุบันได้กลายเป็นที่นิยมอย่างมากสำหรับไมโครคอนโทรลเลอร์หลายตัว เรากำลังใช้พอร์ต micropython Pycom ESP32 อย่างเป็นทางการล่าสุดที่นี่

ขั้นตอนที่ 4: วิธีที่เร็วกว่า

The Faster Way
The Faster Way

โค้ด micropython มี GUI ส่วนหน้าแบบง่ายที่เรียกว่า REPL ซึ่งย่อมาจาก "Read–Eval–Print Loop" โดยปกติแล้ว REPL ของ ESP32 จะทำงานที่ 115.2Kbaud เนื่องจากเข้าถึงได้ผ่านพอร์ตอนุกรม ภาพด้านบนแสดงพรอมต์ REPL นี้ซึ่งมีลูกศรสามดอกรอคำสั่งโดยตรง เป็นวิธีง่ายๆ ในการลองใช้คำสั่งง่ายๆ ของเรา และโปรแกรมเขียนโค้ดส่วนใหญ่ใช้สำหรับพัฒนาซอฟต์แวร์ แต่เราพบว่าวิธีนี้เป็นวิธีที่ช้ามาก ดังนั้นเราจึงตัดสินใจทำวิธีอื่นสำหรับคำแนะนำนี้ …

เนื่องจากโมดูล ESP32 มีการเชื่อมต่อ WiFi ที่รวดเร็ว เราเพียงแค่ต้องเข้าถึงโมดูลผ่าน WiFi ผ่านเซิร์ฟเวอร์ FTP ที่ฝังอยู่ภายในโค้ด micropython มาตรฐานแล้ว ซึ่งจะทำให้เราสามารถใช้ไคลเอ็นต์ FTP เช่น FileZilla เพื่อลากและวางโค้ดของเราลงใน ESP32 ได้

เพื่อที่จะทำสิ่งนี้ เราจำเป็นต้องนำโมดูล ESP32 เข้าสู่เครือข่าย WiFi ของคุณก่อน โมดูล Wipy3.0 เรียกใช้จุดเชื่อมต่อขนาดเล็กโดยค่าเริ่มต้นเมื่อเปิดเครื่อง ดังนั้นคุณจึงสามารถเชื่อมต่อได้โดยตรงจากแล็ปท็อปที่ 192.168.4.1 ตรวจสอบรายละเอียดเพิ่มเติมที่นี่ ถ้าคุณชอบวิธีนี้

เราทำงานบนเดสก์ท็อปในห้องปฏิบัติการของเรา เราจึงต้องการให้โมดูล ESP32 เชื่อมต่อกับเครือข่ายของเราแทน ในการดำเนินการนี้ เราเพียงแค่ต้องให้ที่อยู่ IP แบบคงที่และข้อมูลรหัสผ่านแก่โมดูลเพื่อเข้าสู่ระบบเครือข่าย WiFi ของเรา

ขั้นตอนที่ 5: ดาวน์โหลดทันที

ดาวน์โหลดเดี๋ยวนี้
ดาวน์โหลดเดี๋ยวนี้
ดาวน์โหลดเดี๋ยวนี้
ดาวน์โหลดเดี๋ยวนี้
ดาวน์โหลดเดี๋ยวนี้
ดาวน์โหลดเดี๋ยวนี้
ดาวน์โหลดเดี๋ยวนี้
ดาวน์โหลดเดี๋ยวนี้

ดาวน์โหลดรหัสแอปพลิเคชันทันทีและคลายซิปไฟล์ไปยังโฟลเดอร์ชั่วคราวในคอมพิวเตอร์ของคุณ จากนั้นเริ่มแก้ไขไฟล์สคริปต์ mywifi.txt และ boot.py ด้วยข้อมูลรับรองเครือข่าย WiFi ของคุณเอง

Btw - โปรแกรมแก้ไขข้อความที่เราชื่นชอบยังคงเป็น SublimeText สามารถดาวน์โหลดได้ที่นี่

คุณควรดาวน์โหลดซอฟต์แวร์เทอร์มินัล TeraTerm และซอฟต์แวร์ FileZilla FTP ทันที หากยังไม่มีในคอมพิวเตอร์

คุณจะต้องตั้งค่า FileZilla ตามที่แสดงในภาพด้านบน นอกจากนี้ ในตัวจัดการไซต์ คุณต้อง "เพิ่มไซต์ใหม่" สำหรับการเข้าสู่ระบบ ESP32 โดยใช้ที่อยู่ IP แบบคงที่ที่คุณเลือกดังที่แสดงด้านบน ผู้ใช้คือ "ไมโคร" และรหัสผ่านคือ "หลาม" สิ่งสำคัญคือต้องใช้ FTP แบบพาสซีฟและจำกัดให้ใช้ได้เฉพาะการเชื่อมต่อเดียวเท่านั้น เราพบว่าการจำกัดความเร็วในการอัปโหลดช่วยป้องกันไม่ให้การอัปโหลดค้างด้วย แม้ว่าจะไม่แสดงในรูปภาพ แต่จะเป็นประโยชน์ในการเชื่อมโยงโปรแกรม SublimeText สำหรับประเภทไฟล์ เพื่อให้คุณสามารถแก้ไขโค้ดได้โดยดับเบิลคลิกที่ด้านซ้ายของหน้าจอ FTP ในการดำเนินการนี้ เพียงไปที่เมนูการตั้งค่า และในการแก้ไขไฟล์/การเชื่อมโยงประเภทไฟล์ ให้ป้อนตำแหน่งของไฟล์ exe SublimeText ของคุณสำหรับแต่ละการเชื่อมโยง ตัวอย่างเช่นของเราคือ:

js "C:\Sublime Text Build 3065 x64\sublime_text.exe"

. "C:\Sublime Text Build 3065 x64\sublime_text.exe" htm "C:\Sublime Text Build 3065 x64\sublime_text.exe" html "C:\Sublime Text Build 3065 x64\sublime_text.exe" py "C:\Sublime สร้างข้อความ 3065 x64\sublime_text.exe" css "C:\Sublime Text Build 3065 x64\sublime_text.exe"

คัดลอกไฟล์แอปพลิเคชันที่แยกออกมาสำหรับคำแนะนำนี้ไปยังโฟลเดอร์ใหม่ชื่อ "FTP" บนคอมพิวเตอร์ของคุณเหมือนที่เราทำ การลากจากที่นี่ภายใน FileZilla จะง่ายกว่าในภายหลัง

โดยปกติแล้ว จะเป็นความคิดที่ดีที่จะให้เฟิร์มแวร์ล่าสุดทำงานบน ESP32 การอัพเกรดโมดูล Pycom เพื่อใช้ micropython ล่าสุดนั้นง่ายมาก และสามารถทำได้ภายใน 3 นาทีด้วยเครื่องมืออัปเดตเฟิร์มแวร์

เพียงต้องแน่ใจว่าได้ตั้งค่าพอร์ต COM สำหรับ USB ของคุณเป็นดองเกิลซีเรียล และยกเลิกการเลือกโหมดความเร็วสูงตามที่แสดงในภาพ "การสื่อสาร" ด้านบน ของเราเป็นพอร์ต COM 2 โปรดทราบว่าเพื่อให้โมดูล ESP32 เข้าสู่โหมดอัปเกรดนี้ คุณจะต้องกดปุ่ม GPIO0/บูต (บนพิน P2) ในขณะที่กดและปล่อยปุ่มรีเซ็ต

ขั้นตอนที่ 6: เวลาฮาร์ดแวร์

เวลาฮาร์ดแวร์
เวลาฮาร์ดแวร์
เวลาฮาร์ดแวร์
เวลาฮาร์ดแวร์

ตอนนี้เป็นเวลาที่ดีที่จะต่อฮาร์ดแวร์บนเขียงหั่นขนมตามที่แสดงในแผนภาพด้านบน

หลังจากนี้ทั้งหมดเสร็จเรียบร้อยแล้ว เริ่มต้นซอฟต์แวร์เทอร์มินัลด้วยพอร์ต COM ที่เหมาะสมสำหรับดองเกิล USB เป็น Serial ของคุณโดยตั้งค่าเป็น 115.2Kbaud

เมื่อเปิดเครื่อง โมดูลควรแสดงพรอมต์ REPL ที่คุ้นเคยซึ่งมีลูกศรสามตัว ">>>"

ไปที่ไฟล์ mywifi.txt ที่คุณแก้ไขแล้วคัดลอกเนื้อหาทั้งหมด (CTRL+C) จากนั้นไปที่หน้าจอเทอร์มินัล REPL แล้วกด CTRL+E เพื่อเข้าสู่โหมดตัดและวาง จากนั้นคุณคลิกขวาเพื่อวางเนื้อหาลงในหน้าจอ REPL จากนั้นกดปุ่ม CTRL+D เพื่อดำเนินการสิ่งที่คุณวาง

ควรเริ่มนับถอยหลังทันทีเพื่อบอกว่ากำลังพยายามเชื่อมต่อกับเครือข่าย WiFi ของคุณ ภาพหน้าจอด้านบนแสดงข้อความการเชื่อมต่อที่สำเร็จ

เมื่อเชื่อมต่อแล้ว คุณสามารถใช้ FileZilla เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ FTP ในโมดูลตามที่อยู่ IP แบบคงที่ที่คุณเลือกแล้วในไฟล์ mywifi.txt และ boot.py

ขั้นตอนที่ 7: ยังอยู่กับเราไหม

ยังอยู่กับเรา?
ยังอยู่กับเรา?
ยังอยู่กับเรา?
ยังอยู่กับเรา?

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

หากต้องการแก้ไขโค้ดใดๆ คุณสามารถดับเบิลคลิกที่ด้านซ้ายของหน้าต่าง FTP ใน FileZilla และจะเปิด SublimeText บันทึกการเปลี่ยนแปลงของคุณแล้วลากไปทางด้านขวาซึ่งเป็นหน้าต่าง ESP32

สำหรับตอนนี้ เพียงลากไฟล์จากด้านซ้ายไปด้านขวาของ FileZilla เพื่ออัปโหลดแต่ละไฟล์แยกกันไปยังโมดูล ESP32 ใช้เวลาเพียงไม่กี่วินาทีสั้น ๆ แทนที่จะเป็นนาทีเหมือนวิธี REPL ปกติ โปรดทราบว่าไฟล์ทั้งหมดควรอยู่ภายใต้ไดเร็กทอรีรากที่เรียกว่า "flash" ภายในบอร์ด Pycom คุณสามารถสร้างบุ๊กมาร์กใน FileZilla เพื่อให้ง่ายต่อการกลับมาที่นี่ในครั้งต่อไป

หากคุณเคยประสบปัญหาที่ FileZilla แฮงค์และหมดเวลาสำหรับการอัปโหลด คุณจะสังเกตเห็นไฟล์ในด้าน ESP32 ซึ่งมี 0 ไบต์ การพยายามเขียนทับอาจทำให้คุณคลั่งไคล้ได้เพราะมันไม่มีวันจบไม่ว่าคุณจะพยายามอย่างไร! เป็นสภาวะที่แปลกมากและเกิดขึ้นไม่บ่อยนัก ทางออกที่ดีที่สุดสำหรับสิ่งนี้คือการลบไฟล์ 0 ไบต์และเปิดปิดโมดูล จากนั้นรับสำเนาไฟล์ต้นฉบับใหม่เพื่ออัปโหลดไปยังโมดูล ESP32 อีกครั้ง โปรดทราบว่าสำเนาใหม่เป็นกุญแจสำคัญที่นี่ ยังไงก็ตาม ไฟล์ต้นฉบับไม่สามารถอัปโหลดได้อย่างถูกต้องหากมันค้างแบบนี้แม้แต่ครั้งเดียว

เราพบว่าการลากแต่ละไฟล์ข้ามไปยังโมดูล ESP32 ที่ขึ้นต้นด้วย boot.py นั้นช่วยได้ ไฟล์แรกนี้มีหน้าที่ในการนำโมดูลของคุณเข้าสู่เครือข่าย ดังนั้นคุณไม่จำเป็นต้องทำการตัดและวางใน REPL อีกต่อไป อย่างไรก็ตาม คุณสามารถคว้าโฟลเดอร์ www และลากไปทับในช็อตเดียว สิ่งนี้ใช้ได้ผลเสมอในการพัฒนาของเรา ไฟล์ทั้งหมดเหล่านี้ถูกเก็บไว้ในที่เก็บข้อมูลแฟลชแบบไม่ลบเลือนออนบอร์ดในโมดูล ESP32 ดังนั้นไฟล์เหล่านั้นจะอยู่ที่นั่นหลังจากถอดไฟ เพียงแค่ fyi - main.py จะถูกดำเนินการหลังจาก boot.py ทุกครั้งที่เปิดโมดูล

ขั้นตอนที่ 8: เคล็ดลับการแฮ็ก

เคล็ดลับการแฮ็ก
เคล็ดลับการแฮ็ก

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

หากมีสิ่งใดผิดพลาด คุณสามารถล้างโค้ดและ/หรือแฟลชโมดูลอีกครั้งได้ในเวลาประมาณ 3 นาที เหมือนที่เคยทำก่อนหน้านี้

หากต้องการฟอร์แมตแฟลชใหม่และล้างโค้ดทั้งหมดของคุณในช็อตเดียว คุณสามารถพิมพ์คำสั่งต่อไปนี้ใน REPL:

นำเข้าระบบปฏิบัติการ

os.mkfs('/แฟลช')

จากนั้นทำรอบพลังงานหรือกดปุ่มรีเซ็ตบนบอร์ด Wipy

โปรดทราบว่ายังมีอีกวิธีหนึ่งในการเลี่ยงผ่าน boot.py & main.py หากสิ่งต่างๆ เกิดขึ้นกับคุณ เพียงเชื่อมต่อพิน P12 ชั่วคราวกับพินเอาต์พุต 3.3V แล้วกดปุ่มรีเซ็ตดังที่แสดงด้านบน มันจะข้ามรหัสทั้งหมดของคุณและไปที่ REPL ทันที ดังนั้นคุณจึงสามารถคิดออกได้โดยไม่ต้องลบรหัสทั้งหมดออกจากแฟลช

เมื่ออัปโหลดไฟล์ทั้งหมดเสร็จแล้ว เพียงกดปุ่มรีเซ็ตบนโมดูล ESP32 เพื่อรีบูต

คุณจะเห็นการนับถอยหลังที่คุ้นเคยบนหน้าจอเทอร์มินัล REPL เมื่อเข้าสู่เครือข่าย WiFi ของคุณอีกครั้ง ความแตกต่างคือตอนนี้รหัสนี้กำลังทำงานจากไฟล์ boot.py ในครั้งนี้

ขั้นตอนที่ 9: หน้าเว็บ

หน้าเว็บ
หน้าเว็บ
หน้าเว็บ
หน้าเว็บ
หน้าเว็บ
หน้าเว็บ
หน้าเว็บ
หน้าเว็บ

ไมโครเว็บเซิร์ฟเวอร์ควรเปิดใช้งานบน ESP32 แล้ว ดังนั้นให้ลองใช้เบราว์เซอร์เดสก์ท็อปหรืออุปกรณ์มือถือของคุณ

เพียงไปที่ที่อยู่ IP แบบคงที่ของคุณแล้วคุณจะเห็นหน้าจอคล้ายกับด้านบน

มีหน้าเว็บสองหน้าที่ให้บริการจากไมโครเว็บเซิร์ฟเวอร์ของเราซึ่งทำงานบน ESP32

อันแรกคือหน้า index.html เริ่มต้น ซึ่งให้ปุ่ม OPEN/CLOSE แบบง่าย ๆ แก่คุณ เพื่อจำลองประเภทของตัวคลิกของที่เปิดประตูโรงรถที่คุณมี เมื่อคุณกดบนเว็บเบราว์เซอร์ คุณจะเห็นไอคอนรูปเฟืองสีน้ำเงินขนาดใหญ่ปรากฏขึ้น นี่เป็นการยืนยันว่าการเชื่อมต่อ websocket สำเร็จ และคุณได้รับแจ้งจากเซิร์ฟเวอร์ว่าได้รับคำสั่ง "press" ของคุณอย่างถูกต้อง คุณควรเห็นไฟ LED สีเขียวสว่างขึ้นบนบอร์ด Pycom เมื่อคุณกดปุ่มนี้ การเชื่อมต่อ websockets กำลังส่งสถานะของปุ่มโดยส่งข้อความธรรมดาว่า "press" เมื่อคุณกดและ "pressup" เมื่อคุณปล่อย เพื่อรับทราบ ไมโครเว็บเซิร์ฟเวอร์กำลังส่งข้อความนี้กลับ แต่เพิ่ม "_OK" เข้าไปเพื่อบอกว่าได้รับข้อความอย่างถูกต้อง

เมื่อคุณเชื่อมต่อขั้วโซลิดสเตตรีเลย์ (SSR) ที่แยกทางแสงกับที่เปิดประตูโรงรถของคุณแล้ว (ดูแผนผังรูปภาพ) จากนั้นการกดปุ่มจะเป็นการเปิด/ปิดประตูทางกายภาพด้วย

ให้เวลาสักครู่แล้วลองอีกครั้งหากคุณไม่เห็นไอคอนรูปเฟืองสีน้ำเงินปรากฏขึ้นเนื่องจากอาจกำลังรีบูตหรือบางอย่าง โปรดทราบว่า websocket จะปิดโดยอัตโนมัติใน 20 วินาที หากคุณไม่ได้ใช้งานเพื่อป้องกันการล็อค นอกจากนี้ โปรดทราบด้วยว่า websockets เป็นการเชื่อมต่อที่มุ่งเน้น ดังนั้นคุณต้องหยุด websocket เพื่อเปลี่ยนหน้า มิฉะนั้น คุณอาจไม่สามารถเชื่อมต่อสำรองได้อีกจนกว่าคุณจะกดรีเซ็ตบนโมดูล ESP32 สำหรับโค้ดตัวอย่างของเรา เรามีวิธีการสองสามวิธี ของการหยุด websocket: แตะข้อความสถานะ จุดหมุน หรือไฮเปอร์ลิงก์เพื่อไปยังหน้าถัดไป

หน้าเว็บที่สองมีไว้สำหรับการอ่านการวัดระยะทางจากเวลา tinyLiDAR ของเซ็นเซอร์ระยะการบิน เพียงกดปุ่มหนึ่งครั้ง เครื่องจะเริ่มสตรีมการอ่านระยะทางไปยังอุปกรณ์มือถือของคุณเป็นเวลาประมาณ 20 วินาที เมื่อคุณกดลง ไฟ LED สีแดงบนบอร์ด Pycom จะสว่างขึ้น คุณจึงบอกได้ว่าได้รับคำสั่งกดปุ่มจากหน้านี้

ทั้งสองหน้าบ่งชี้ว่าประตูเปิดหรือปิดโดยระยะการอ่านจาก tinyLiDAR ต้องตั้งค่าตัวแปร doorThreshold ในไฟล์ html ทั้งสองไฟล์ในส่วนสคริปต์ดังที่แสดงที่นี่:

//--------------------------

//**** ปรับตามต้องการ **** var doorThreshold = 100; // ระยะทางเป็นซม. var ws_timeout = 20000; // เวลาสูงสุดในหน่วย ms เพื่ออนุญาตให้ประตูเปิด/ปิดโดยค่าเริ่มต้นคือ 20 วินาที //-------------------------- //--- ------------------------

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

ถ้าทุกอย่างเรียบร้อยดี ตอนนี้คุณสามารถไปข้างหน้าและติดตั้งบอร์ดคว่ำในโรงรถของคุณตามที่แสดงในภาพด้านบน ต่อหมุด 3 และ 4 ของ SSR เข้ากับที่เปิดประตูโรงรถของคุณด้วย ขั้วไม่สำคัญเนื่องจากเราใช้ SSR เวอร์ชัน MOSFET - เพียงให้ผู้ติดต่อสั้นลงเพื่อจำลองการคลิกปุ่มบนยูนิตฐานประตูโรงรถของคุณ

ขั้นตอนที่ 10: และนั่นแหล่ะ

และนั่นแหล่ะ!
และนั่นแหล่ะ!

ยินดีด้วย! การเปิดประตูโรงรถของคุณตอนนี้ทำได้ง่ายเพียงแค่แตะบนโทรศัพท์ของคุณ และคุณสามารถตรวจสอบได้ว่าเปิดทิ้งไว้หรือไม่โดยการวัดแบบเรียลไทม์ด้วย tinyLiDAR:)

คุณยังสามารถใช้ ESP32 กับ websockets ผ่าน WiFi ได้ทุกอย่างที่คุณต้องการ อ่านเพิ่มเติมเกี่ยวกับ "websockets" หากคุณไม่คุ้นเคยกับมัน - พวกมันค่อนข้างเร็วและใช้งานง่าย

การใช้ tinyLiDAR กับ ESP32 นั้นง่ายมากเช่นกัน แม้ว่าเดิมเซนเซอร์จะได้รับการออกแบบให้ทำงานบน Arduino UNO ก็ตาม เรามี Terminal GUI รุ่นเบต้าที่ละเอียดยิ่งขึ้นซึ่งรันคำสั่ง tinyLiDAR ส่วนใหญ่ใน micropython บน ESP32 - ดูภาพด้านบน มีให้ที่ส่วนดาวน์โหลดของเราพร้อมกับคู่มืออ้างอิง ฯลฯ

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

โปรดทราบว่าไม่มีการกล่าวถึงความปลอดภัยที่นี่ ความปลอดภัยเป็นพื้นที่ขนาดใหญ่ใน IoT และควรได้รับการพิจารณาอย่างจริงจัง หากคุณต้องการใช้โครงการนี้ในโรงรถของคุณ คุณควรรักษารหัสผ่านเครือข่าย WiFi ที่รัดกุมและปลอดภัย มีข้อมูลมากมายบนเว็บเกี่ยวกับความปลอดภัย ดังนั้นโปรดอ่านข้อมูลล่าสุดและติดตามข้อมูลอยู่เสมอ

ขอบคุณสำหรับการอ่านและการแฮ็คที่มีความสุข! ไชโย

แนะนำ: