![Serial UDP/IP Gateway สำหรับ Arduino ตาม ESP8266 Shield: 8 ขั้นตอน Serial UDP/IP Gateway สำหรับ Arduino ตาม ESP8266 Shield: 8 ขั้นตอน](https://i.howwhatproduce.com/images/009/image-24231-j.webp)
สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12
![Serial UDP/IP Gateway สำหรับ Arduino ตาม ESP8266 Shield Serial UDP/IP Gateway สำหรับ Arduino ตาม ESP8266 Shield](https://i.howwhatproduce.com/images/009/image-24231-1-j.webp)
ฉันเผยแพร่แล้วในปี 2559 คำแนะนำนี้ "วิธีสร้างเกตเวย์ Wifi ของคุณเองเพื่อเชื่อมต่อ Arduino กับเครือข่าย IP" เนื่องจากฉันได้ปรับปรุงโค้ดบางส่วนแล้วและยังคงใช้โซลูชันนี้อยู่
อย่างไรก็ตาม ขณะนี้มีตัวป้องกัน ESP8266 บางตัวที่อนุญาตให้ทำสิ่งเดียวกันได้โดยไม่ต้องบัดกรี ตราบใดที่คุณไม่ได้ใช้บอร์ดไมโครหรือนาโน
คำแนะนำนี้จะอธิบายวิธีใช้ตัวป้องกัน ESP82 เหล่านี้เป็นเกตเวย์ UDP / IP แบบอนุกรม
ซึ่งเป็นส่วนหนึ่งของโครงสร้างพื้นฐานระบบอัตโนมัติภายในบ้านทั่วโลก คุณสามารถดูได้ที่นี่
ข้อมูลเพิ่มเติมเกี่ยวกับโล่พร้อมคำแนะนำนี้
เสบียง
1 Arduino Mega (ดีที่สุดคือมีอย่างน้อย 1 Mega สำหรับการพัฒนาและ 1 Uno สำหรับเฟสรัน)
1 Rokoo ESP8266 ESP-12E UART WIFI Convertisseur
1 FTDI 3.3v
สายเขียงหั่นขนม 2 เส้น
ขั้นตอนที่ 1: มันทำงานอย่างไร ?
![มันทำงานอย่างไร ? มันทำงานอย่างไร ?](https://i.howwhatproduce.com/images/009/image-24231-2-j.webp)
เกตเวย์ใช้โมดูล ESP8266
โมดูลนี้เชื่อมต่อจากด้านหนึ่งด้วยลิงก์ซีเรียลจากอีกด้านหนึ่งไปยังเครือข่าย IP ด้วย Wifi
มันทำหน้าที่เป็นกล่องดำ แพ็กเก็ตข้อมูลที่มาจากลิงก์ซีเรียลจะถูกส่งไปยังพอร์ต IP/Udp และในทางกลับกัน
คุณเพียงแค่ต้องตั้งค่าการกำหนดค่าของคุณเอง (IP, WIFI …) หนึ่งครั้งในครั้งแรกที่คุณจะเปิดเครื่องบนเกตเวย์
มันสามารถถ่ายโอนข้อมูลดิบ ASCII และข้อมูลไบนารี (ไม่มี HTTP, JSON…)
ได้รับการออกแบบมาเพื่อเชื่อมต่ออ็อบเจ็กต์กับซอฟต์แวร์ทำเองของเซิร์ฟเวอร์ที่ต้องการการถ่ายโอนข้อมูลแบบสั้นอย่างรวดเร็วและบ่อยครั้ง
ขั้นตอนที่ 2: อะไรคือหน้าที่หลัก ?
ส่วนใหญ่เป็นกล่องดำที่แปลงข้อมูลอนุกรมเป็นแพ็กเก็ต UDP ทั้งสองวิธี
แต่เกตเวย์ยังสามารถดำเนินการได้ด้วยตัวเองโดยการส่งข้อมูลภายในไปยังเซิร์ฟเวอร์และรับคำสั่งบางอย่างจากเซิร์ฟเวอร์
Arduino สามารถส่งและรับข้อความไปยัง / จากเซิร์ฟเวอร์ที่เชื่อมต่อผ่านอินเทอร์เน็ตเพียงแค่พิมพ์ / อ่านลิงค์ซีเรียล นักพัฒนา Arduino ไม่จำเป็นต้องรบกวนโปรโตคอล IP
ยิ่งไปกว่านั้น ยังมี GPIO ที่ Arduino สามารถใช้เพื่อตรวจสอบว่าเกตเวย์เชื่อมต่อกับ WIFI อย่างถูกต้องหรือไม่ และเกตเวย์สามารถสลับ SSID ที่แตกต่างกัน 2 อันได้โดยอัตโนมัติในกรณีที่เกิดความล้มเหลว
เกตเวย์มี 2 โหมดการทำงานที่แตกต่างกันซึ่งถูกเลือกโดยการตั้งค่า GPIO
การตั้งค่า GPIO เป็นกราวด์และเกตเวย์จะเข้าสู่โหมดการกำหนดค่า
การตั้งค่า GPIO ฟรีและเกตเวย์จะเข้าสู่โหมดการทำงานของเกตเวย์
ยิ่งไปกว่านั้น การกำหนดค่าเกตเวย์ UDP/IP สามารถแก้ไขได้จากระยะไกล
ขั้นตอนที่ 3: การสร้างวัสดุ
![การสร้างวัสดุ การสร้างวัสดุ](https://i.howwhatproduce.com/images/009/image-24231-3-j.webp)
ของจำเป็นน้อยมาก
1 ESP8266 Shield - ฉันพบ UNO R3 ESP8266 Serial WiFi Shield Extend Board Module ที่น้อยกว่า 9 €
1 UNO ที่เป็นเป้าหมายของ Arduino
1 เมกะที่เป็นเครื่องมือพัฒนา Arduino (คุณสามารถทำได้โดยไม่ต้องใช้ แต่เป็นการดีบั๊กค่อนข้างยาก)
1 FTDI 3.3/5v สำหรับการพัฒนา
สายบางๆ
ขั้นตอนที่ 4: ดาวน์โหลดรหัสเกตเวย์
![ดาวน์โหลดรหัสเกตเวย์ ดาวน์โหลดรหัสเกตเวย์](https://i.howwhatproduce.com/images/009/image-24231-4-j.webp)
ในระหว่างขั้นตอนนี้ Arduino จะใช้เพื่อจ่ายไฟ (ด้วย USB หรือแหล่งพลังงานอื่น) บนแผงป้องกัน ESP8266 เท่านั้น
เชื่อมต่อ ESP8266 GPIO4 กับกราวด์ (เพื่อเข้าสู่โหมดการกำหนดค่า)
ดูแลตั้งค่า FTDI เป็น 3.3v ตามที่ชีลด์ต้องการ
เชื่อมต่อ FTDI กับเกราะ (RX ถึง TX)
ตั้งค่าสวิตช์ชิลด์เป็น 1:ปิด 2:ปิด 3:เปิด 4:เปิด
เชื่อมต่อด้าน USB ของ FTDI เข้ากับคอมพิวเตอร์ของคุณ
รีเซ็ตเกราะป้องกันด้วยปุ่มกด ESP-RST
ดาวน์โหลดรหัสเกตเวย์ที่นั่นบน GitHub
เปิด Arduino IDE
- เลือกพอร์ตจอภาพ FTDI
- เปิด IDE Serial Monitor - ตั้งค่าความเร็วเป็น38400
- เลือกบอร์ดโมดูล ES8266 ทั่วไป
- อัพเกรดเฟิร์มแวร์โล่ด้วยรหัสเกตเวย์
ตั้งสวิตช์ 3: ปิด 4: ปิด
เปิด IDE Serial Monitor
รีเซ็ตเกราะด้วยปุ่มกด ESP-RST
คุณต้องเห็นข้อความบนจอภาพที่เริ่มต้นด้วย "การเริ่มต้น EEPROM" "การกำหนดค่าเริ่มต้นเสร็จสมบูรณ์"….
ถึงเวลาทำการกำหนดค่า
ขั้นตอนที่ 5: มาทำการกำหนดค่าเกตเวย์กันเถอะ
เมื่อดาวน์โหลดรหัสเกตเวย์เป็นครั้งแรก ESP8266 Eeprom จะถูกเตรียมใช้งานด้วยค่าเริ่มต้น คุณจะเห็นข้อความประเภทนี้ "set Parameter: x size: yy"
คุณสามารถค้นหาค่าเหล่านี้ได้ในการกำหนดโค้ดของ paramValue แน่นอน คุณสามารถเปลี่ยนค่าเริ่มต้นเหล่านี้ได้ก่อนที่จะดาวน์โหลดโค้ด แต่คุณยังสามารถตั้งค่าคอนฟิกตามคำสั่งได้ในภายหลัง นี่จะดีกว่าถ้าคุณวางแผนที่จะมีเกตเวย์หลายตัวและเก็บรหัสเวอร์ชันเดียวเท่านั้น
ใช้พอร์ตอนุกรมของจอภาพเพื่อส่งคำสั่ง (ตั้งค่าเป็น NL และ CR)
เนื่องจากไม่ได้กำหนด SSID ให้รอ "ไม่สามารถเชื่อมต่อกับ yoursecondssid retry:5"
จากนั้นการสแกน WIFI จะเริ่มต้นโดยอัตโนมัติ
ถึงเวลาตั้งค่า SSID ของคุณด้วยคำสั่งต่อไปนี้:
- SSID1=ทางเลือกของคุณ1
- PSW1=yourpsw1
- SSID2=ทางเลือกของคุณ2
- PSW2=ของคุณpsw2
- SSID=1 (เพื่อเลือก SSID ที่จะเริ่มต้นด้วย)
- รีสตาร์ทWifi
หลังจากนั้นไม่กี่วินาที คุณสามารถตรวจสอบการเชื่อมต่อด้วยคำสั่ง "ShowWifi" คุณต้องเห็นที่อยู่ IP ที่เกตเวย์ได้รับจากเซิร์ฟเวอร์ DNS ของคุณ หากถึงเวลาต้องก้าวต่อไป
ได้เวลากำหนดที่อยู่เซิร์ฟเวอร์ IP ของคุณโดยป้อนที่อยู่ย่อย 4 รายการ (เซิร์ฟเวอร์ที่จะเรียกใช้รหัสทดสอบ Java) ตัวอย่างเช่น:
- "IP1=192"
- "ไอพี2=168"
- "IP3=1"
- "IP4=10"
เมื่อส่งคำสั่งเปล่า คุณจะเห็นคำสั่งที่รองรับทั้งหมดที่คุณสามารถใช้ในภายหลังเพื่อให้เหมาะกับความต้องการของคุณ ค่าพารามิเตอร์ทั้งหมดจะถูกเก็บไว้ใน Eeprom และจำเป็นต้องรีบูตเพื่อนำมาพิจารณา
ถอดสายการกำหนดค่า
โล่กำลังทำงานเป็นเกตเวย์
ขั้นตอนที่ 6: ดาวน์โหลดตัวอย่างโค้ด Arduino
![ดาวน์โหลดตัวอย่างโค้ด Arduino ดาวน์โหลดตัวอย่างโค้ด Arduino](https://i.howwhatproduce.com/images/009/image-24231-5-j.webp)
ขั้นแรกให้ดาวน์โหลดโค้ด Arduino หลักที่นั่นบน GitHub
จากนั้นดาวน์โหลดโค้ด Arduino คำนิยามคำสั่งนี้และโค้ดลิงก์อนุกรมนี้ลงในไลบรารีของคุณ
จากนั้นเปิดรหัสหลักด้วย Arduino IDE. ใหม่
ตั้งค่าชิลด์สวิตช์ 1 และ 2 ออกเพื่อเพิ่ม Arduino serial link 0 สำหรับการเชื่อมต่อ USB
รีเซ็ตเกราะ
เชื่อมต่อสาย FTDI กับ Mega Serial 2 (TX FTDI เป็น RX Mega และอื่นๆ)
เริ่ม Arduino IDE ใหม่ (หรือเครื่องมือ TTY) เชื่อมต่อ FTDI Usb และเริ่มตรวจสอบลิงก์อนุกรม
อัปโหลดโค้ด Arduino ภายใน Mega
ตั้งสวิตช์ชิลด์ 1 และ 2 เพื่อเชื่อมต่อ Arduino serial link 0
รีเซ็ตเกราะ
คุณต้องเห็นข้อความนี้ "เริ่มพิมพ์ usb" บนจอภาพ
ขั้นตอนที่ 7: มาทำฝั่งเซิร์ฟเวอร์กันเถอะ
ตัวอย่างเซิร์ฟเวอร์คือโปรแกรม Java ที่คุณสามารถดาวน์โหลดได้ที่ GitHub
เพียงแค่เรียกใช้และดูคอนโซล Java และดูที่ FTDI monitor
คุณจะเห็นการแลกเปลี่ยนข้อมูลระหว่างเซิร์ฟเวอร์และ Arduino
ขั้นตอนที่ 8: ก้าวต่อไป
![ก้าวต่อไป ก้าวต่อไป](https://i.howwhatproduce.com/images/009/image-24231-6-j.webp)
![ก้าวต่อไป ก้าวต่อไป](https://i.howwhatproduce.com/images/009/image-24231-7-j.webp)
ตัวอย่างโค้ด Arduino นี้อิงตามส่วนเฟรมเวิร์กของโครงสร้างพื้นฐานระบบอัตโนมัติในบ้านของฉัน
หากคุณสนใจโครงสร้างพื้นฐานนี้ โปรดแจ้งให้เราทราบ ฉันจะเผยแพร่แหล่งที่มา
หากคุณต้องการใช้เกตเวย์ คุณสามารถทำให้โค้ด Arduino ง่ายขึ้นได้
หลังจากพัฒนาและทดสอบโค้ดของคุณบน Arduino Mega แล้ว คุณสามารถแทนที่ด้วย Uno !
ยิ่งไปกว่านั้น คุณสามารถเชื่อมต่อสายไฟระหว่าง Arduino GPIO 7 และ ESP8266 GPIO 5 หากคุณต้องการให้ Arduino ของคุณตรวจสอบการเชื่อมต่อ Wifi
แนะนำ:
ตัวแปลง Boost ตาม Esp8266 พร้อม UI Blynk ที่น่าทึ่งพร้อมตัวควบคุมคำติชม: 6 ขั้นตอน
![ตัวแปลง Boost ตาม Esp8266 พร้อม UI Blynk ที่น่าทึ่งพร้อมตัวควบคุมคำติชม: 6 ขั้นตอน ตัวแปลง Boost ตาม Esp8266 พร้อม UI Blynk ที่น่าทึ่งพร้อมตัวควบคุมคำติชม: 6 ขั้นตอน](https://i.howwhatproduce.com/images/002/image-3731-15-j.webp)
ตัวแปลงบูสต์ที่ใช้ Esp8266 พร้อม UI Blynk ที่น่าทึ่งพร้อมตัวควบคุมคำติชม: ในโครงการนี้ ฉันจะแสดงวิธีที่มีประสิทธิภาพและพบได้ทั่วไปในการเพิ่มแรงดันไฟฟ้ากระแสตรง ฉันจะแสดงให้คุณเห็นว่าการสร้างตัวแปลงบูสต์นั้นง่ายเพียงใดด้วยความช่วยเหลือของ Nodemcu มาสร้างมันกันเถอะ นอกจากนี้ยังมีโวลต์มิเตอร์บนหน้าจอและข้อเสนอแนะ
Flipperkonsole สำหรับ PC Flipper / Pinball Console สำหรับ PC Pinballs: 9 ขั้นตอน
![Flipperkonsole สำหรับ PC Flipper / Pinball Console สำหรับ PC Pinballs: 9 ขั้นตอน Flipperkonsole สำหรับ PC Flipper / Pinball Console สำหรับ PC Pinballs: 9 ขั้นตอน](https://i.howwhatproduce.com/images/009/image-25440-j.webp)
Flipperkonsole สำหรับ PC Flipper / Pinball Console สำหรับ PC Pinballs: ใช้งานได้กับ USB พื้นฐาน เกมสำหรับ PC-Flipperkästen Die Spannungsversorgung erfolgt über das USB Kabel. Implementiert sind die beiden Flipper Buttons และ ein Startbutton Zusätzlich ist ein stossen von unten, von links และ von rechts implem
ปรับเปลี่ยน Arduino ASCD 8x18650 Smart Charger / Discharger สำหรับ ESP8266 Hardware Serial: 4 ขั้นตอน
![ปรับเปลี่ยน Arduino ASCD 8x18650 Smart Charger / Discharger สำหรับ ESP8266 Hardware Serial: 4 ขั้นตอน ปรับเปลี่ยน Arduino ASCD 8x18650 Smart Charger / Discharger สำหรับ ESP8266 Hardware Serial: 4 ขั้นตอน](https://i.howwhatproduce.com/images/001/image-2712-29-j.webp)
แก้ไข Arduino ASCD 8x18650 Smart Charger / Discharger สำหรับ ESP8266 Hardware Serial: บน PCB เวอร์ชัน 2.0 และร้องว่า ESP8266 Arduino Adapter มีหมุดที่ไม่ถูกต้องซึ่งคุณไม่สามารถใช้งานได้ (สื่อสาร) กับ ESP8266 สำหรับการสื่อสารแบบไร้สายไปยัง Vortex It Battery Portal การปรับเปลี่ยนนี้ เชื่อมต่ออะแดปเตอร์ Arduino ESP8266 กับ Har
3.3V Mod สำหรับ Ultrasonic Sensors (เตรียม HC-SR04 สำหรับ 3.3V Logic บน ESP32/ESP8266, Particle Photon ฯลฯ): 4 ขั้นตอน
![3.3V Mod สำหรับ Ultrasonic Sensors (เตรียม HC-SR04 สำหรับ 3.3V Logic บน ESP32/ESP8266, Particle Photon ฯลฯ): 4 ขั้นตอน 3.3V Mod สำหรับ Ultrasonic Sensors (เตรียม HC-SR04 สำหรับ 3.3V Logic บน ESP32/ESP8266, Particle Photon ฯลฯ): 4 ขั้นตอน](https://i.howwhatproduce.com/images/002/image-3319-38-j.webp)
3.3V Mod สำหรับ Ultrasonic Sensors (เตรียม HC-SR04 สำหรับ 3.3V Logic บน ESP32/ESP8266, Particle Photon, ฯลฯ.): TL;DR: บนเซนเซอร์ ตัดร่องรอยไปที่ Echo pin จากนั้นเชื่อมต่อใหม่โดยใช้ a ตัวแบ่งแรงดันไฟฟ้า (Echo trace -> 2.7kΩ -> Echo pin -> 4.7kΩ -> GND) แก้ไข: มีการถกเถียงกันว่า ESP8266 นั้นทนทานต่อ GPIO 5V จริงหรือไม่ใน
Arduino ตาม Serial Servo Controller: 6 ขั้นตอน
![Arduino ตาม Serial Servo Controller: 6 ขั้นตอน Arduino ตาม Serial Servo Controller: 6 ขั้นตอน](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10967780-arduino-based-serial-servo-controller-6-steps-j.webp)
Arduino ตาม Serial Servo Controller: นี่คือคอนโทรลเลอร์อนุกรมอย่างง่ายสำหรับเซอร์โวหลายตัวที่ใช้ Arduino (สั่งสอนครั้งแรกของฉันด้วย :)) งานส่วนใหญ่ในเรื่องนี้มาจากการให้ซอฟต์แวร์พูดคุยกับ Arduino และสร้างโปรโตคอลสำหรับส่งข้อมูล เป็นเ