สารบัญ:

วิธีสร้าง WIFI Gateway ของคุณเองเพื่อเชื่อมต่อ Arduino กับเครือข่าย IP: 11 ขั้นตอน (พร้อมรูปภาพ)
วิธีสร้าง WIFI Gateway ของคุณเองเพื่อเชื่อมต่อ Arduino กับเครือข่าย IP: 11 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: วิธีสร้าง WIFI Gateway ของคุณเองเพื่อเชื่อมต่อ Arduino กับเครือข่าย IP: 11 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: วิธีสร้าง WIFI Gateway ของคุณเองเพื่อเชื่อมต่อ Arduino กับเครือข่าย IP: 11 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: การเชื่อมต่อ esp 32 wifi และ Blynk บนเว็บ Wokwi ไม่ต้องใช้อุปกรณ์จริง จำลอง #esp32 #blynk #nodemcu 2024, พฤศจิกายน
Anonim
จะสร้าง WIFI Gateway ของคุณเองเพื่อเชื่อมต่อ Arduino กับเครือข่าย IP ได้อย่างไร
จะสร้าง WIFI Gateway ของคุณเองเพื่อเชื่อมต่อ Arduino กับเครือข่าย IP ได้อย่างไร

อย่างที่หลายคนคิดว่า Arduino เป็นทางออกที่ดีในการทำระบบอัตโนมัติภายในบ้านและหุ่นยนต์

แต่ในแง่ของการสื่อสาร Arduinos มาพร้อมกับลิงก์แบบอนุกรม

ฉันกำลังทำงานกับหุ่นยนต์ที่ต้องเชื่อมต่ออย่างถาวรกับเซิร์ฟเวอร์ที่ใช้รหัสปัญญาประดิษฐ์ ฉันพยายามใช้เครือข่าย RF อย่างที่เคยทำสำหรับ domotic แต่ประสิทธิภาพไม่เพียงพอ ในขณะที่หุ่นยนต์เคลื่อนที่ ฉันไม่สามารถใช้ Ethernet Arduino Shield ได้ Arduino Wifi Shield นั้นแพงและสำหรับฉันดูเหมือนว่ามันจะเก่า

ฉันต้องการบางสิ่งที่สามารถแลกเปลี่ยนข้อมูลกับเซิร์ฟเวอร์ได้อย่างง่ายดายและมีประสิทธิภาพ

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

คุณจะพบวิธีสร้างส่วนประกอบอิเล็กทรอนิกส์และดาวน์โหลดซอฟต์แวร์ได้ที่นี่

ฉันใช้เกตเวย์นี้สำหรับระบบอัตโนมัติภายในบ้านและสำหรับ Robotic

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

ฉันสร้างคำสั่งอื่นที่ใช้ตัวป้องกัน ESP8266 และหลีกเลี่ยงการบัดกรี

เสบียง

ฉันเขียนคำแนะนำอื่น ๆ ในหัวข้อนี้

ขั้นตอนที่ 1: มันทำงานอย่างไร ?

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

เกตเวย์ใช้โมดูล ESP8266

โมดูลนี้เชื่อมต่อจากด้านหนึ่งด้วยลิงก์ซีเรียลจากอีกด้านหนึ่งไปยังเครือข่าย IP ด้วย Wifi

มันทำหน้าที่เป็นกล่องดำ แพ็กเก็ตข้อมูลที่มาจากลิงก์ซีเรียลจะถูกส่งไปยังพอร์ต IP/Udp และในทางกลับกัน

คุณเพียงแค่ต้องตั้งค่าการกำหนดค่าของคุณเอง (IP, WIFI …) หนึ่งครั้งในครั้งแรกที่คุณจะเปิดเครื่องบนเกตเวย์

มันสามารถถ่ายโอนข้อมูลดิบ ASCII และข้อมูลไบนารี (ไม่มี HTTP, JSON…)

ได้รับการออกแบบมาเพื่อเชื่อมต่ออ็อบเจ็กต์กับซอฟต์แวร์ทำเองของเซิร์ฟเวอร์ที่ต้องการการถ่ายโอนข้อมูลแบบสั้นอย่างรวดเร็วและบ่อยครั้ง

ใช้งานได้ง่ายที่สุดกับ Arduino Mega ที่มี UART มากกว่าหนึ่งตัว (เช่น Arduino Mega) แต่สามารถรันด้วย UNO ได้เช่นกัน

ขั้นตอนที่ 2: อะไรคือหน้าที่หลัก ?

ส่วนใหญ่เป็นกล่องดำที่แปลงและส่งข้อมูลอนุกรมไปยังแพ็กเก็ต UDP ทั้งสองวิธี

มีไฟ LED 3 ดวงแสดงสถานะและปริมาณการใช้ข้อมูลของเกตเวย์

มันมี GPIO ที่ Arduino สามารถใช้เพื่อรอให้เกตเวย์เชื่อมต่อ WIFI และ IP

มันทำงานใน 3 โหมดที่แตกต่างกันที่ตั้งค่าด้วยสวิตช์:

  • โหมดเกตเวย์ที่เป็นโหมดปกติ
  • โหมดการกำหนดค่าที่ใช้ตั้งค่าพารามิเตอร์
  • โหมดดีบักสำหรับโหมดดีบัก

พารามิเตอร์ส่วนใหญ่สามารถแก้ไขได้เพื่อให้เหมาะกับความต้องการของคุณ

ขั้นตอนที่ 3: การสร้างวัสดุ

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

ที่ด้านบนของ Arduino คุณจะต้องใช้

  • 1 x โมดูล ESP8266 - ฉันเลือก MOD-WIFI-ESP8266-DEV จาก Olimex ที่มีราคาประมาณ 5 ยูโรซึ่งค่อนข้างใช้งานง่าย
  • แหล่งพลังงาน 1 x 5v
  • ตัวควบคุมกำลังไฟ 1 x 3.3v - ฉันใช้ LM1086
  • ตัวเก็บประจุขนาด 1 x 100 ไมโครฟารัด
  • โมดูล APG 1 x ULN2803 (สามารถเปลี่ยนได้ด้วยทรานซิสเตอร์ 3 ตัว)
  • ตัวต้านทาน 8 x (3 x 1K, 1 x 2K, 1 x 2.7k, 1x 3.3K, 1x 27K, 1x 33k)
  • 3 x LED (แดง เขียว น้ำเงิน)
  • 1 x เขียงหั่นขนม PCB
  • สายไฟและขั้วต่อบางตัว

ระหว่างขั้นตอนการสร้างเท่านั้น คุณจะต้อง

  • 1 x FTDI 3.3v สำหรับการกำหนดค่า
  • หัวแร้งและดีบุก

ก่อนทำการบัดกรี จำเป็นต้องติดตั้งส่วนประกอบทั้งหมดบนเขียงหั่นขนมและตรวจสอบว่าทุกอย่างเรียบร้อยดี

ขั้นตอนที่ 4: เริ่มต้นด้วยอุปกรณ์อิเล็กทรอนิกส์บนเขียงหั่นขนม

เริ่มต้นด้วยอุปกรณ์อิเล็กทรอนิกส์บนเขียงหั่นขนม !
เริ่มต้นด้วยอุปกรณ์อิเล็กทรอนิกส์บนเขียงหั่นขนม !

เลย์เอาต์อิเล็กทรอนิกส์มีให้ในรูปแบบ Fritzing

คุณสามารถดาวน์โหลดได้ที่นี่ ขั้นตอนที่ 1:

github.com/cuillerj/Esp8266IPSerialGateway/blob/master/GatewayElectronicStep1.fzz

เพียงแค่ทำตามสคีมาโดยดูแลแรงดันไฟฟ้า

โปรดจำไว้ว่า ESP8266 ไม่รองรับแรงดันไฟฟ้าที่สูงกว่า 3.3v. ต้องตั้งค่า FTDI เป็น 3.3v

ขั้นตอนที่ 5: ไปที่ซอฟต์แวร์กันเถอะ

ไปที่ซอฟต์แวร์กันเถอะ !
ไปที่ซอฟต์แวร์กันเถอะ !

มาเริ่มกันที่ฝั่งเกตเวย์

ฉันเขียนโค้ดด้วย Arduino IDE ดังนั้นคุณต้องให้ ESP8266 เป็นที่รู้จักในชื่อบอร์ดโดย IDE เลือกบอร์ดที่เหมาะสมด้วยเมนูเครื่องมือ / บอร์ด

หากคุณไม่เห็น ESP266 ในรายการ แสดงว่าคุณอาจต้องติดตั้ง ESP8266 Arduino Addon (คุณสามารถดูขั้นตอนได้ที่นี่)

รหัสทั้งหมดที่คุณต้องการมีอยู่ใน GitHub ได้เวลาดาวน์โหลดแล้ว !

รหัสหลักของเกตเวย์อยู่ที่นั่น:

ด้านบนของ Arduino มาตรฐานและ ESP8266 รวมถึงรหัสหลักที่ต้องการ 2 ตัวนี้ ได้แก่ LookFoString ที่ใช้เพื่อจัดการสตริงและอยู่ที่นั่น:

ManageParamEeprom ที่ใช้ในการอ่านและจัดเก็บพารามิเตอร์ใน Eeprom และมี:

เมื่อคุณได้รหัสทั้งหมดแล้ว ก็ถึงเวลาอัปโหลดลงใน ESP8266 ขั้นแรกให้เชื่อมต่อ FTDI กับพอร์ต USB ของคอมพิวเตอร์ของคุณ

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

  • ตั้งค่ามอนิเตอร์อนุกรม Arduino เป็นพอร์ต USB ใหม่
  • ตั้งค่าความเร็วเป็น 115200 ทั้ง cr nl (ความเร็วเริ่มต้นสำหรับ Olimex)
  • เปิดเครื่องบนเขียงหั่นขนม (ESP8266 มาพร้อมกับซอฟต์แวร์ที่เกี่ยวข้องกับคำสั่ง AT)
  • ส่ง "AT" ด้วยเครื่องมือซีเรียล
  • คุณต้องได้รับ "ตกลง" เป็นการตอบแทน

หากไม่ตรวจสอบการเชื่อมต่อของคุณและดูที่ข้อกำหนด ESP8266 ของคุณ

หากคุณได้ "ตกลง" แสดงว่าคุณพร้อมที่จะอัปโหลดโค้ด

  • ปิดเขียงหั่นขนม รอสักครู่
  • กดไมโครสวิตช์สีดำของ ESP8266 เป็นเรื่องปกติที่จะได้รับขยะบนจอภาพแบบอนุกรม
  • กดที่อัพโหลด IDE สำหรับ Arduino
  • หลังจากอัพโหลดเสร็จ ตั้งค่าความเร็วซีเรียลเป็น 38400

คุณจะเห็นบางอย่างตามภาพ

ขอแสดงความยินดี คุณอัปโหลดรหัสสำเร็จแล้ว !

ขั้นตอนที่ 6: มากำหนดค่ากันเถอะ

มาทำการกำหนดค่ากันเถอะ !
มาทำการกำหนดค่ากันเถอะ !

ต้องตั้งค่า configGPIO เป็น 1 เพื่อเข้าสู่โหมดการกำหนดค่า

ตอนแรกสแกน WIFI โดยป้อนคำสั่ง: ScanWifi คุณจะเห็นรายการเครือข่ายที่ตรวจพบ

  • จากนั้นตั้งค่า SSID ของคุณโดยป้อน "SSID1=yournetwork"
  • จากนั้นตั้งรหัสผ่านโดยป้อน "PSW1=yourpassword"
  • จากนั้นป้อน "SSID=1" เพื่อกำหนดเครือข่ายปัจจุบัน
  • ป้อน "รีสตาร์ท" เพื่อเชื่อมต่อเกตเวย์กับ WIFI ของคุณ
  • คุณสามารถตรวจสอบว่าคุณได้รับ IP โดยการป้อน "ShowWifi"
  • ไฟ LED สีฟ้าจะติดและไฟ LED สีแดงจะกะพริบ

ได้เวลากำหนดที่อยู่เซิร์ฟเวอร์ IP ของคุณโดยป้อนที่อยู่ย่อย 4 รายการ (เซิร์ฟเวอร์ที่จะเรียกใช้รหัสทดสอบ Java) ตัวอย่างเช่น:

  • "IP1=192"
  • "ไอพี2=168"
  • "IP3=1"
  • "IP4=10"

ขั้นตอนสุดท้ายที่จำเป็นคือการตั้งค่าพอร์ตการรับฟังเซิร์ฟเวอร์ UDP โดยป้อน "listenPort=xxxx"

ป้อน "ShowEeprom" เพื่อตรวจสอบสิ่งที่คุณเพิ่งเก็บไว้ใน Eeprom

ตอนนี้เสียบ GPIO2 กับกราวด์เพื่อออกจากโหมดการกำหนดค่า

Gateway ของคุณพร้อมทำงาน

มีคำสั่งอื่นๆ ที่คุณสามารถหาได้ในเอกสารประกอบ

ขั้นตอนที่ 7: มาทำด้าน Arduino กันเถอะ

มาทำด้าน Arduino กันเถอะ!
มาทำด้าน Arduino กันเถอะ!
มาทำด้าน Arduino กันเถอะ!
มาทำด้าน Arduino กันเถอะ!

ขั้นแรกให้เชื่อมต่อ Arduino

หากคุณมี Mega จะเริ่มต้นได้ง่ายที่สุด อย่างไรก็ตาม คุณสามารถใช้ Uno ได้

การตรวจสอบงานของคุณดีที่สุดคือใช้ตัวอย่าง

คุณสามารถดาวน์โหลดได้ที่นั่น:

รวมถึงรหัส SerialNetwork ที่อยู่ที่นี่:

เพียงอัปโหลดโค้ดภายใน Arduino ของคุณ

ไฟ LED สีเขียวกะพริบทุกครั้งที่ Arduino ส่งข้อมูล

ขั้นตอนที่ 8: มาทำฝั่งเซิร์ฟเวอร์กันเถอะ

มาทำฝั่งเซิร์ฟเวอร์กันเถอะ !
มาทำฝั่งเซิร์ฟเวอร์กันเถอะ !
มาทำฝั่งเซิร์ฟเวอร์กันเถอะ !
มาทำฝั่งเซิร์ฟเวอร์กันเถอะ !

ตัวอย่างเซิร์ฟเวอร์คือโปรแกรม Java ที่คุณสามารถดาวน์โหลดได้ที่นี่:

เรียกใช้เลย

ดูที่คอนโซล Java

ดูที่จอภาพ Arduino

Arduino ส่งแพ็กเก็ตที่แตกต่างกัน 2 ชุด

  • อันแรกมีสถานะพินดิจิทัล 2 ถึง 6
  • ค่าที่สองประกอบด้วยค่าสุ่ม 2 ค่า ระดับแรงดันไฟฟ้า A0 เป็น mV และจำนวนที่เพิ่มขึ้น

โปรแกรมจาวา

  • พิมพ์ข้อมูลที่ได้รับในรูปแบบเลขฐานสิบหก
  • ตอบกลับข้อมูลประเภทแรกด้วยค่าเปิด/ปิดแบบสุ่มเพื่อตั้งค่าเปิด/ปิด Arduino LED
  • ตอบกลับข้อมูลประเภทที่สองด้วยจำนวนที่ได้รับและค่าสุ่ม

ขั้นตอนที่ 9: ถึงเวลาทำการบัดกรีแล้ว

ถึงเวลาต้องบัดกรีแล้ว!
ถึงเวลาต้องบัดกรีแล้ว!
ถึงเวลาต้องบัดกรีแล้ว!
ถึงเวลาต้องบัดกรีแล้ว!
ถึงเวลาต้องบัดกรีแล้ว!
ถึงเวลาต้องบัดกรีแล้ว!

มันทำงานบนเขียงหั่นขนม !

ถึงเวลาที่จะทำให้แข็งแกร่งขึ้นด้วยการบัดกรีชิ้นส่วนบน PCB

นอกเหนือจากสิ่งที่คุณทำกับเขียงหั่นขนม คุณต้องเพิ่มตัวเชื่อมต่อ 3 ตัว

  • C1 1 x พินหนึ่งอันที่จะใช้สำหรับการเข้าสู่โหมดการติดตามเครือข่าย
  • C2 3 x หมุดที่จะใช้เพื่อสลับระหว่างโหมดการทำงานและโหมดการกำหนดค่า
  • C3 6 x พินที่จะใช้เชื่อมต่อเกตเวย์กับ Arduino หรือ FTDI

C1 ที่เชื่อมต่อกับ GPIO2 จะต้องต่อสายดินด้วยตนเอง หากคุณต้องการเปิดใช้งานการติดตามเครือข่าย

C2 ที่เชื่อมต่อกับ GPIO 4 สามารถตั้งค่าได้ 2 ตำแหน่ง ชุดหนึ่งที่ตั้งค่าให้กราวด์สำหรับโหมดการทำงานปกติและอีกชุดหนึ่งตั้งค่าเป็น 3.3v สำหรับเข้าสู่โหมดการกำหนดค่า

ตั้งค่าส่วนประกอบทั้งหมดบน PCB ตามแผนภาพ จากนั้นจึงเริ่มบัดกรีเพื่อให้ได้ผลิตภัณฑ์ขั้นสุดท้าย !

ขั้นตอนที่ 10: มาทำการทดสอบขั้นสุดท้ายกันเถอะ

Image
Image

เริ่มโปรแกรมทดสอบ Java

เชื่อมต่อ Arduino

เปิดไฟบนเกตเวย์

และดูที่คอนโซล Java, จอภาพ Arduino, LED Arduino และ LED เกตเวย์

ขั้นตอนที่ 11: คุณสามารถปรับการออกแบบนี้ให้เข้ากับความต้องการของคุณได้

เกี่ยวกับฮาร์ดแวร์

  • หากคุณเลือก ESP8266 อื่นๆ คุณจะต้องปรับให้เข้ากับข้อกำหนด
  • หากคุณเลือกตัวควบคุม 3.3v อื่น ๆ จะต้องส่งมากกว่า 500mA และคุณจะต้องปรับตัวเก็บประจุ
  • คุณสามารถปรับเปลี่ยนตัวต้านทาน LED เพื่อปรับความสว่างได้
  • คุณสามารถระงับ LED ทั้งหมดได้ แต่ฉันแนะนำให้เปิดสีแดงเป็นอย่างน้อย
  • คุณสามารถเปลี่ยน ULN2803 ด้วยทรานซิสเตอร์ 3 ตัว (หรือน้อยกว่านั้น ฉันเลือกที่จะไม่เก็บ 3 LED)
  • ฉันทดสอบแล้ว แต่ต้องใช้งานได้กับบอร์ด Arduino 3.3v เพียงเชื่อมต่อ Tx Rx กับขั้วต่อ 3.3v

เกี่ยวกับการกำหนดค่า

  • คุณสามารถจัดเก็บ SSID ที่แตกต่างกัน 2 แบบและสวิตช์
  • คุณสามารถแก้ไข GPIO ที่ใช้

เกี่ยวกับซอฟต์แวร์

แนะนำ: