สารบัญ:

Serial UDP/IP Gateway สำหรับ Arduino ตาม ESP8266 Shield: 8 ขั้นตอน
Serial UDP/IP Gateway สำหรับ Arduino ตาม ESP8266 Shield: 8 ขั้นตอน

วีดีโอ: Serial UDP/IP Gateway สำหรับ Arduino ตาม ESP8266 Shield: 8 ขั้นตอน

วีดีโอ: Serial UDP/IP Gateway สำหรับ Arduino ตาม ESP8266 Shield: 8 ขั้นตอน
วีดีโอ: How to Assign a Static / Fixed IP Address | ESP8266 | ESP32 | Arduino 2024, กรกฎาคม
Anonim
Serial UDP/IP Gateway สำหรับ Arduino ตาม ESP8266 Shield
Serial UDP/IP Gateway สำหรับ Arduino ตาม ESP8266 Shield

ฉันเผยแพร่แล้วในปี 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: มันทำงานอย่างไร ?

มันทำงานอย่างไร ?
มันทำงานอย่างไร ?

เกตเวย์ใช้โมดูล 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: การสร้างวัสดุ

การสร้างวัสดุ
การสร้างวัสดุ

ของจำเป็นน้อยมาก

1 ESP8266 Shield - ฉันพบ UNO R3 ESP8266 Serial WiFi Shield Extend Board Module ที่น้อยกว่า 9 €

1 UNO ที่เป็นเป้าหมายของ Arduino

1 เมกะที่เป็นเครื่องมือพัฒนา Arduino (คุณสามารถทำได้โดยไม่ต้องใช้ แต่เป็นการดีบั๊กค่อนข้างยาก)

1 FTDI 3.3/5v สำหรับการพัฒนา

สายบางๆ

ขั้นตอนที่ 4: ดาวน์โหลดรหัสเกตเวย์

ดาวน์โหลดรหัสเกตเวย์
ดาวน์โหลดรหัสเกตเวย์

ในระหว่างขั้นตอนนี้ 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

ขั้นแรกให้ดาวน์โหลดโค้ด 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: ก้าวต่อไป

ก้าวต่อไป
ก้าวต่อไป
ก้าวต่อไป
ก้าวต่อไป

ตัวอย่างโค้ด Arduino นี้อิงตามส่วนเฟรมเวิร์กของโครงสร้างพื้นฐานระบบอัตโนมัติในบ้านของฉัน

หากคุณสนใจโครงสร้างพื้นฐานนี้ โปรดแจ้งให้เราทราบ ฉันจะเผยแพร่แหล่งที่มา

หากคุณต้องการใช้เกตเวย์ คุณสามารถทำให้โค้ด Arduino ง่ายขึ้นได้

หลังจากพัฒนาและทดสอบโค้ดของคุณบน Arduino Mega แล้ว คุณสามารถแทนที่ด้วย Uno !

ยิ่งไปกว่านั้น คุณสามารถเชื่อมต่อสายไฟระหว่าง Arduino GPIO 7 และ ESP8266 GPIO 5 หากคุณต้องการให้ Arduino ของคุณตรวจสอบการเชื่อมต่อ Wifi

แนะนำ: