สารบัญ:
- ขั้นตอนที่ 1: IoT อะไรนะ?
- ขั้นตอนที่ 2: ลองเลย - ไม่จริง ลองใช้เลยตอนนี้
- ขั้นตอนที่ 3: Micropython & ESP32
- ขั้นตอนที่ 4: วิธีที่เร็วกว่า
- ขั้นตอนที่ 5: ดาวน์โหลดทันที
- ขั้นตอนที่ 6: เวลาฮาร์ดแวร์
- ขั้นตอนที่ 7: ยังอยู่กับเราไหม
- ขั้นตอนที่ 8: เคล็ดลับการแฮ็ก
- ขั้นตอนที่ 9: หน้าเว็บ
- ขั้นตอนที่ 10: และนั่นแหล่ะ
วีดีโอ: TinyLiDAR ในโรงรถของคุณ!: 10 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
โครงการที่เปิดประตูโรงรถ 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 ในสื่อต่างๆ มาบ้างแล้ว แต่มันหมายความว่าอย่างไร?
การพูดอย่างหลวม ๆ หมายถึงการเชื่อมต่อเซ็นเซอร์และสิ่งต่าง ๆ ที่ควบคุมได้ทุกประเภทเชื่อมต่อกับอินเทอร์เน็ต ทุกวันนี้ อินเทอร์เน็ตมีความหมายเหมือนกันกับระบบไร้สาย ดังนั้นเราจึงมีทุกอย่างอิเล็กทรอนิกส์ในทันทีที่เชื่อมต่อแบบไร้สายผ่านลิงก์ไร้สายบางประเภท เช่น WiFi/BT/LoRa/SigFox เป็นต้น เมื่อเชื่อมต่อกับอินเทอร์เน็ตแล้ว เราสามารถสัมผัสและ/หรือควบคุมได้ สิ่งเหล่านี้จากตัวควบคุมมือถือที่เราชื่นชอบเช่นโทรศัพท์มือถือของเราหรือทำให้เป็นอัตโนมัติผ่านแอพที่ทำงานอยู่ในเซิร์ฟเวอร์ที่อื่น (เช่นคลาวด์)
แม้ว่าบริษัทขนาดใหญ่จะทำการตลาดการควบคุมด้วยเสียงมากขึ้น แต่เมื่อเร็ว ๆ นี้ AI และการเชื่อมต่อระบบคลาวด์ พื้นฐานของการทำให้สิ่งนี้เกิดขึ้นทั้งหมดยังคงเหมือนเดิม คุณต้องเชื่อมต่อ "สิ่งของ" ของคุณกับลิงก์ไร้สายก่อนที่แนวคิดเหล่านี้จะเป็นไปได้ เริ่มจากพื้นฐานและเรียนรู้วิธีเชื่อมต่อเวลา TinyLiDAR ของเซ็นเซอร์ระยะการบินกับโมดูล WiFi ต้นทุนต่ำ จากนั้นแสดงเพื่อส่งข้อมูลไปมาในเครือข่าย ในตอนท้ายของคำแนะนำนี้ คุณจะมีรีโมทควบคุมประตูโรงรถที่เปิดใช้งาน WiFi พร้อมจอภาพแบบเรียลไทม์เพื่อตรวจสอบว่าประตูเปิดหรือปิดอยู่
ในทางเทคนิค ตามที่แสดงในแผนภาพบล็อกด้านบน โปรเจ็กต์นี้ใช้เว็บเซิร์ฟเวอร์ micropython ที่ทำงานบนโมดูล ESP32 WiFi โดยใช้โปรโตคอลการสื่อสาร 'websockets' เพื่อส่งข้อมูลไปมาจากเว็บเบราว์เซอร์มือถือใดๆ นอกจากนี้ เรามีเวลา tinyLiDAR ของเซ็นเซอร์ระยะการบินที่ทำการวัดตามต้องการ เพื่อให้คุณสามารถตรวจสอบได้ว่าประตูโรงรถเปิดทิ้งไว้หรือไม่
ขั้นตอนที่ 2: ลองเลย - ไม่จริง ลองใช้เลยตอนนี้
ทั้งหมดนี้เป็นสาขาที่ค่อนข้างใหม่ในด้านอุปกรณ์อิเล็กทรอนิกส์ ดังนั้นจะต้องมีการทดลองมากมายที่จำเป็นเพื่อให้สิ่งต่างๆ ทำงานได้อย่างถูกต้อง ความหวังของเราคือคุณจะสามารถสร้างบนฐานรหัสนี้ และสร้างโครงการ IoT ที่น่าสนใจยิ่งขึ้นด้วยตัวคุณเอง
รหัสทั้งหมดที่ใช้ในบทความนี้ทำงานได้ดีในขณะที่เขียนบทความนี้ อย่างไรก็ตาม เนื่องจากอัตราของนวัตกรรมในพื้นที่ IoT เพิ่มขึ้น สิ่งต่างๆ อาจเปลี่ยนไปเมื่อคุณอ่านข้อความนี้ ไม่ว่าในกรณีใด การทำงานผ่านปัญหาและปรับให้เข้ากับการใช้งานของคุณเอง อย่างน้อยจะช่วยให้คุณได้เข้าสู่พื้นที่ใหม่ที่น่าตื่นเต้นนี้ และเริ่มคิดเหมือนวิศวกร IoT!
พร้อม? มาเริ่มกันที่ขั้นตอนแรกในการตั้งค่าสภาพแวดล้อมการพัฒนาที่มั่นคงของคุณเอง
ขั้นตอนที่ 3: 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 เริ่มต้นจากโครงการ kickstarter สำหรับโปรเซสเซอร์ STM32 แต่ปัจจุบันได้กลายเป็นที่นิยมอย่างมากสำหรับไมโครคอนโทรลเลอร์หลายตัว เรากำลังใช้พอร์ต micropython Pycom ESP32 อย่างเป็นทางการล่าสุดที่นี่
ขั้นตอนที่ 4: วิธีที่เร็วกว่า
โค้ด 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 ที่รัดกุมและปลอดภัย มีข้อมูลมากมายบนเว็บเกี่ยวกับความปลอดภัย ดังนั้นโปรดอ่านข้อมูลล่าสุดและติดตามข้อมูลอยู่เสมอ
ขอบคุณสำหรับการอ่านและการแฮ็คที่มีความสุข! ไชโย
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
CircuitPython และ TinyLiDAR: ตัวอย่างง่ายๆ: 3 ขั้นตอน
CircuitPython และ TinyLiDAR: ตัวอย่างง่ายๆ: TinyLiDAR ของ MicroElectronicDesign เป็นโมดูลตามเวลาในการบิน (ToF) แบบ ST VL53L0X ที่มีการเชื่อมต่อบัส i2c บอร์ดไมโครคอนโทรลเลอร์ Adafruit เชื่อมต่อกับเซ็นเซอร์นี้อย่างง่ายดาย เนื่องจากสามารถพูดโปรโตคอล i2c ผ่านหมุดข้อมูล
TinyLiDAR สำหรับ IoT: 3 ขั้นตอน
TinyLiDAR สำหรับ IoT: หากคุณมองไปรอบๆ คุณจะสังเกตเห็นว่ามีการใช้อุปกรณ์อัจฉริยะจำนวนมากในชีวิตประจำวัน โดยทั่วไปจะใช้แบตเตอรี่และมักจะเชื่อมต่อกับอินเทอร์เน็ต (หรือที่เรียกว่า 'คลาวด์') อย่างใด ทั้งหมดนี้คือสิ่งที่เราเรียกว่าอุปกรณ์ 'IoT' และพวกเขา
ฉันสามารถใช้ TinyLiDAR ใน เกาได้ไหม: 3 ขั้นตอน
ฉันสามารถใช้ TinyLiDAR ใน… Scratch ได้หรือไม่: เราได้รับคำขอเป็นระยะๆ เพื่อสอบถามว่า tinyLiDAR จะทำงานบนแพลตฟอร์มการประมวลผลเฉพาะของพวกเขาหรือไม่ แม้ว่า tinyLiDAR ได้รับการออกแบบมาให้เป็นเซ็นเซอร์ LiDAR ที่ใช้งานง่ายสำหรับ Arduino UNO แต่ก็ไม่มีอะไรหยุดยั้งไม่ให้ใช้งานบนแพลตฟอร์มอื่น
TinyLiDAR บน Pi?: 9 ขั้นตอน (พร้อมรูปภาพ)
TinyLiDAR บน Pi?: สวัสดีอีกครั้ง! ตอนนี้คุณได้ใช้เวลาที่มีคุณภาพกับ tinyLiDAR และ Arduino ของคุณแล้ว - Raspberry Pi ของคุณอาจรู้สึกเหงาเล็กน้อย;) pi มีพอร์ต I2C ใช่ไหม ทำไมไม่ลองติดมันและลองที่นั่นดูล่ะ! แผนการที่ดี แต่ถ้าคุณได้ต