สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: มันทำงานอย่างไร ?
- ขั้นตอนที่ 2: อะไรคือหน้าที่หลัก ?
- ขั้นตอนที่ 3: การสร้างวัสดุ
- ขั้นตอนที่ 4: เริ่มต้นด้วยอุปกรณ์อิเล็กทรอนิกส์บนเขียงหั่นขนม
- ขั้นตอนที่ 5: ไปที่ซอฟต์แวร์กันเถอะ
- ขั้นตอนที่ 6: มากำหนดค่ากันเถอะ
- ขั้นตอนที่ 7: มาทำด้าน Arduino กันเถอะ
- ขั้นตอนที่ 8: มาทำฝั่งเซิร์ฟเวอร์กันเถอะ
- ขั้นตอนที่ 9: ถึงเวลาทำการบัดกรีแล้ว
- ขั้นตอนที่ 10: มาทำการทดสอบขั้นสุดท้ายกันเถอะ
- ขั้นตอนที่ 11: คุณสามารถปรับการออกแบบนี้ให้เข้ากับความต้องการของคุณได้
วีดีโอ: วิธีสร้าง WIFI Gateway ของคุณเองเพื่อเชื่อมต่อ Arduino กับเครือข่าย IP: 11 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
อย่างที่หลายคนคิดว่า 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
หากคุณมี 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: มาทำการทดสอบขั้นสุดท้ายกันเถอะ
เริ่มโปรแกรมทดสอบ 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 ที่ใช้
เกี่ยวกับซอฟต์แวร์
แนะนำ:
วิธีสร้าง Tone Control LM358 สำหรับแอมพลิฟายเออร์ 2.1: 7 ขั้นตอน (พร้อมรูปภาพ)
วิธีสร้าง Tone Control LM358 สำหรับเครื่องขยายเสียง 2.1: ดังนั้นในช่อง Youtube ของฉัน หลายคนถามถึงวิธีการรวมแอมพลิฟายเออร์สองตัวเข้าด้วยกันเป็นหนึ่งเดียว แอมพลิฟายเออร์ตัวแรกใช้สำหรับลำโพงแซทเทิลไลท์และแอมพลิฟายเออร์ตัวที่สองใช้สำหรับลำโพงซับวูฟเฟอร์ การกำหนดค่าการติดตั้งแอมพลิฟายเออร์นี้สามารถเรียกได้ว่า Amp
วิธีสร้าง Battlebot ด้วย Cardboard และ Arduino: 7 ขั้นตอน (พร้อมรูปภาพ)
วิธีสร้าง Battlebot ด้วย Cardboard และ Arduino: ฉันสร้าง battlebots โดยใช้ Arduino UNO และใช้กระดาษแข็งเพื่อสร้างร่างกาย ฉันพยายามใช้อุปกรณ์ราคาไม่แพงและให้อิสระในการสร้างสรรค์แก่เด็กๆ ในการออกแบบบอทต่อสู้ของพวกเขา Battlebot ได้รับคำสั่งจากคอนโทรลเลอร์ไร้สาย
เชื่อมต่อ ESP8266 กับเครือข่าย WIFI: 3 ขั้นตอน
เชื่อมต่อ ESP8266 กับเครือข่าย WIFI: ในบทความก่อนหน้านี้ ฉันได้กล่าวถึงวิธีทำให้ ESP8266 เป็นจุดเชื่อมต่อ และในบทความนี้ ฉันจะแสดงวิธีเชื่อมต่อ ESP8266 กับเครือข่าย wifi (ทำให้ ESP8266 เป็นไคลเอนต์) ก่อนดำเนินการต่อในบทช่วยสอน ตรวจสอบให้แน่ใจว่าคุณได้เพิ่ม ESP82
วิธีสร้าง Line Follower โดยใช้ Arduino: 8 ขั้นตอน (พร้อมรูปภาพ)
วิธีสร้าง Line Follower โดยใช้ Arduino: หากคุณกำลังเริ่มต้นกับวิทยาการหุ่นยนต์ หนึ่งในโครงการแรกที่ผู้เริ่มต้นสร้างจะมีผู้ติดตามไลน์ด้วย เป็นรถของเล่นพิเศษที่มีคุณสมบัติวิ่งตามเส้นซึ่งปกติจะมีสีดำตัดกับพื้นหลัง มาทำดาวกัน
วิธีสร้าง Bluetooth Shields สำหรับอัพโหลด Sketch ไปยัง Arduino: 9 ขั้นตอน (พร้อมรูปภาพ)
วิธีทำ Bluetooth Shields สำหรับอัพโหลด Sketch ไปยัง Arduino: คุณสามารถอัปโหลดภาพสเก็ตช์ไปยัง Arduino จาก Android หรือพีซีผ่าน Bluetooth ได้ ในการทำเช่นนั้น คุณต้องมีส่วนประกอบเพิ่มเติมเล็กน้อย เช่น โมดูลบลูทูธ ตัวเก็บประจุ ตัวต้านทาน บอร์ดเคราและสายจัมเปอร์ รวมกันแล้วต่อเข้ากับขา Arduino