สารบัญ:

ESP8266 WiFi Shield ที่ถูกกว่าสำหรับ Arduino และ Micros อื่นๆ: 6 ขั้นตอน (พร้อมรูปภาพ)
ESP8266 WiFi Shield ที่ถูกกว่าสำหรับ Arduino และ Micros อื่นๆ: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ESP8266 WiFi Shield ที่ถูกกว่าสำหรับ Arduino และ Micros อื่นๆ: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ESP8266 WiFi Shield ที่ถูกกว่าสำหรับ Arduino และ Micros อื่นๆ: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: สอนการใช้ WiFiManager กับ ESP8266 (Nodemcu) | WiFiManager with ESP8266 | Arduino#21 | เฮ็ดสิดี 2024, กรกฎาคม
Anonim
ESP8266 WiFi Shield ที่ถูกกว่าสำหรับ Arduino และ Micros อื่นๆ
ESP8266 WiFi Shield ที่ถูกกว่าสำหรับ Arduino และ Micros อื่นๆ
ESP8266 WiFi Shield ที่ถูกกว่าสำหรับ Arduino และ Micros อื่นๆ
ESP8266 WiFi Shield ที่ถูกกว่าสำหรับ Arduino และ Micros อื่นๆ

อัปเดต: 29 ต.ค. 2020

ทดสอบกับไลบรารีบอร์ด ESP8266 V2.7.4 – ได้ผล

Update: 23rd Sep 2016

ห้ามใช้ไลบรารีบอร์ด Arduino ESP V2.3.0 สำหรับโครงการนี้ V2.2.0 ใช้งานได้

Update: 19 พฤษภาคม 2559

Rev 14 ของโปรเจ็กต์นี้แก้ไขไลบรารีและโค้ดเพื่อทำงานกับปลั๊กอิน ESP8266.com IDE V2.2

อัปเดต: 17 ธันวาคม 2105

Rev 11 ของโปรเจ็กต์นี้จะล้างความพยายามในการเชื่อมต่ออื่นๆ หากมีการเชื่อมต่ออยู่แล้ว ยังใช้การหมดเวลาที่กำหนดโดยการกำหนดค่าเว็บ Rev 10 ละเว้นการตั้งค่าการหมดเวลา

Update: 11 พฤศจิกายน 2558

นี่คือ Rev 10 ของโครงการนี้ Rev 10 ใช้ไลบรารี WiFi ที่ไม่ปิดกั้น pfodESP8266WiFi ซึ่งต่ำสำหรับการส่งผ่านข้อมูลที่สูงขึ้นโดยเฉพาะสำหรับไคลเอ็นต์ Windows นอกจากนี้ยังช่วยให้สามารถกำหนดค่าหน้าเว็บของอัตราบอดแบบอนุกรมได้

Update: 23 ตุลาคม 2558

นี่คือ Rev 8 ของโครงการนี้ Rev 8 ได้ปรับปรุงโค้ด ESP8266 ให้มีความน่าเชื่อถือมากขึ้น หมายเหตุ: แต่ละแพ็กเก็ตที่ส่งจะหยุดโค้ดนี้จนกว่าผู้รับ (ไคลเอ็นต์) จะรับทราบแพ็กเก็ต อาจใช้เวลาระหว่าง 10mS ถึง 200mS ในช่วงเวลานั้นจะไม่มีการจัดการข้อมูล Serial ขาเข้าจาก UART บัฟเฟอร์อนุกรมที่เข้ามาสามารถบัฟเฟอร์ 256 ไบต์ ที่ความเร็ว 9600 บอด จะใช้เวลาประมาณ 270mS ในการเติมบัฟเฟอร์ ตราบใดที่คุณรักษาอัตราบอดแบบอนุกรมไว้ที่ 9600 หรือน้อยกว่า คุณไม่ควรปล่อยข้อมูลขาออกในขณะที่ ESP8266 กำลังส่งแพ็กเก็ตก่อนหน้า นี่เป็นการให้คุณมีการเชื่อมต่อ WiFi ที่ดี หากการเชื่อมต่อ WiFi ไม่ดี แพ็กเก็ตอาจสูญหายและต้องส่งใหม่โดย ESP826 ดังนั้นบัฟเฟอร์ขาเข้าแบบอนุกรมอาจเต็มหากคุณพยายามส่งข้อมูลจำนวนมากและข้อมูลบางส่วนอาจสูญหาย

Update: 20 กันยายน 2558

นี่คือ Rev 3 ของโครงการนี้ Rev 3 เพิ่มการตั้งค่าการหมดเวลาการเชื่อมต่อให้กับการกำหนดค่าหน้าเว็บ หากไม่มีการส่งหรือรับข้อมูลในช่วงเวลานั้น WiFi Shield จะปิดการเชื่อมต่อและรอการเชื่อมต่อใหม่ สิ่งนี้ทำให้มั่นใจได้ว่า WiFi Shield จะกู้คืนจากการเชื่อมต่อที่ 'ปิดครึ่ง' ซึ่งเกิดขึ้นกับไคลเอ็นต์หายไปเนื่องจากการเชื่อมต่อ wifi ไม่ดี การสูญเสียพลังงานที่เราเตอร์ หรือถูกบังคับให้ปิดไคลเอ็นต์ ดูการตรวจหาการเชื่อมต่อซ็อกเก็ต TCP/IP แบบ Half-Open (หลุด) สำหรับรายละเอียดเพิ่มเติม

การหมดเวลาการเชื่อมต่อนี้มีค่าเริ่มต้นเป็น 15 วินาที แต่สามารถเปลี่ยนได้ตามต้องการ การตั้งค่าเป็น 0 หมายความว่าไม่มีวันหมดเวลา เมื่อใช้ pfodDesigner ให้ตั้งค่าการรีเฟรชเมนูที่น้อยกว่าหมดเวลาการเชื่อมต่อ

บทนำ

นี่คือ Rev 11 ของ ESP8266-01 WiFi Shield และเป็นทางเลือกแทน Wifi Shield ราคาถูก/ง่ายสำหรับ Arduino และไมโครอื่นๆ หากคุณสร้าง Wifi Shield เพียงอันเดียวแล้ว Wifi Shield ราคาถูก / ง่ายสำหรับ Arduino และ micros อื่น ๆ เป็นโครงการที่จะใช้เนื่องจากเป็นวิธีที่ง่ายที่สุดในการเชื่อมต่อ อย่างไรก็ตาม หากคุณมีโมดูล ESP8266-01 อยู่แล้ว คุณสามารถใช้คำแนะนำเหล่านี้เพื่อสร้าง WiFi Shield ได้

หากคุณมีโมดูลเปล่า ESP8266 ตัวใดตัวหนึ่ง โดยที่โมดูลนั้นมี GPIO0 และ GPIO2 พร้อมใช้งาน คุณสามารถใช้คำแนะนำเหล่านี้ได้ หากโมดูลทำให้ GPIO15 สามารถเข้าถึงได้ คุณต้องเชื่อมต่อกับ GND ผ่านตัวต้านทานที่มีค่าระหว่าง 3K3 ถึง 10K

Rev 10 ไม่ต้องการ I/O เพิ่มเติมใด ๆ บนบอร์ด Arduino นอกเหนือจาก TX/RX และ 5V power และ GND Rev 10 ใช้ GPIO0 และ GPIO2 เป็น ConfigLink ตามที่อธิบายไว้ในหน้านี้ ESP8266-01 Pin Magic นอกจากนี้ โค้ดสเก็ตช์ที่ใช้ใน Rev10 ในตอนนี้ก็เหมือนกับที่ใช้ใน Cheap/Simple Wifi Shield สำหรับ Arduino และไมโครอื่นๆ นอกจากนี้ยังแทนที่บอร์ดลูกของแหล่งจ่ายไฟ 5V ถึง 3V ด้วยส่วนประกอบแยก 3 ตัวและใช้เครือข่ายตัวต้านทานสำหรับตัวต้านทาน 3K3 ห้าตัว รุ่นแรก Rev 1 อยู่ที่นี่

คำแนะนำเหล่านี้ยังมีอยู่ที่ www.pfod.com.au

คุณสมบัติ

  • ใช้โมดูล ESP8266-01 ราคาไม่แพงและพร้อมใช้งาน:- สามารถใช้โมดูล ESP8266 อื่นๆ ได้
  • ใช้งานง่าย:- ชิลด์ที่รองรับ 5V และ 3.3V ทำหน้าที่เป็นบริดจ์ UART ไปยัง WiFi มันตั้งค่าเซิร์ฟเวอร์บน IP และพอร์ตที่คุณกำหนดค่าและเมื่อเชื่อมต่อแล้วก็จะส่งข้อมูลไปและกลับจากการเชื่อมต่อแบบอนุกรม ไม่จำเป็นต้องใช้ไลบรารีในการเชื่อมต่อไมโคร เพียงแค่เชื่อมต่อซีเรียล (UART) ดังนั้นจึงสามารถใช้กับไมโครโปรเซสเซอร์ที่มีพอร์ตอนุกรมได้ นอกจากนี้ยังสามารถปรับเปลี่ยนเพื่อกำหนดค่าให้เชื่อมต่อไคลเอ็นต์ (พร้อมตัวเลือกการเข้าสู่ระบบ) กับเซิร์ฟเวอร์ระยะไกล
  • กำหนดค่าได้ง่าย:- ย่อลิงก์และเปิดเครื่องป้องกัน เข้าสู่โหมดการกำหนดค่า ในโหมดนี้จะสร้างจุดเชื่อมต่อที่ปลอดภัยซึ่งคุณสามารถเชื่อมต่อผ่านมือถือหรือคอมพิวเตอร์ของคุณ จากนั้นเปิด https://10.1.1.1 จะแสดงหน้าเว็บที่คุณสามารถกำหนดค่าชื่อเครือข่ายและรหัสผ่านของคุณและ IP และหมายเลขพอร์ตที่โล่ควรรับฟังสำหรับการเชื่อมต่อ หน้าเว็บการกำหนดค่าใช้การตรวจสอบความถูกต้องของ HTML5 เพื่อตรวจสอบการตั้งค่าของผู้ใช้

ขั้นตอนที่ 1: รายการชิ้นส่วน

ESP8266-01 WiFi Shield นี้ต้องการชิ้นส่วนต่อไปนี้หรือคล้ายกัน ราคาที่แสดง ณ วันที่ 30 สิงหาคม 2558 และไม่รวมค่าขนส่ง:-

  • โมดูล WiFi ESP8266-01 – ~ US$2.50 ออนไลน์ (ใช้โอกาสของคุณ) หรือสำหรับผลิตภัณฑ์ที่เชื่อถือได้ SparkFun หรือ Adafruit ESP8266-01 – US$6.95
  • Uno Protoshield – US$1.88 (หรือ ProtoShield Basic สำหรับ Arduino จาก Jaycar AU$4.95)
  • ส่วนหัว 36 พิน Element14 – 0.95 เหรียญสหรัฐ (หรือ 4 อันจากส่วนหัวแบบไม่มี Solderless - 10-pin Straight จาก SparkFun US$1.50 หรือ 40 Pin Header Terminal Strip จาก Jaycar AU$0.95)
  • LD1117V33 ตัวควบคุม 3.3V Element14 – $0.67
  • 1 จาก 1N5819 Schottky Diode Element14 – 0.16 เหรียญสหรัฐ (หรือ Jaycar AU $0.80) (ไดโอด Schottky ใด ๆ จะทำ)
  • BOURNS 4606X-101-332LF RESISTOR NETWORK, 3K3 – 0.27 เหรียญสหรัฐ (ตัวต้านทานแบบดึงขึ้นเหล่านี้สามารถเป็นค่าใดก็ได้ในช่วง 3K3 ถึง 10K) คุณยังสามารถใช้ตัวต้านทาน 3K3 แบบแยก 5 ตัวแทนใน Rev 1 เช่น ตัวต้านทาน 3K3 – Digikey – 0.52 เหรียญสหรัฐ (หรือ 3K3ohm 1/2 วัตต์ 1% ตัวต้านทานแบบฟิล์มโลหะ – Pk.8 จาก Jaycar AU$0.55)
  • ตัวต้านทาน 330R จำนวน 1 ตัว Element14 US$0.05 หรือตัวต้านทาน Sparkfun 330 โอห์ม 1/6 วัตต์ PTH - 20 แพ็ค US$0.95 (หรือ 330ohm 1/2 วัตต์ 1% ตัวต้านทานแบบฟิล์มโลหะ – Pk.8 จาก Jaycar AU$0.55)

  • 1 ปิด 0.1uF ตัวเก็บประจุ Element14 – $0.21 หรือ Sparkfun US$0.25
  • 1 ปิด 10uF ตัวเก็บประจุ Element14 – 0.11 เหรียญสหรัฐหรือ Sparkfun US$0.45

ค่าใช้จ่ายทั้งหมด ~$6.80 + ค่าขนส่ง (ณ เดือนสิงหาคม 2015) หรือ ~US$11.25 โดยใช้โมดูล Sparkfun หรือ Adafruit ESP8266-01

ในการตั้งโปรแกรมแผงป้องกันด้วยการกำหนดค่าปุ่มกดและโปรแกรมบริดจ์ UART เป็น WiFi คุณต้องใช้สายเคเบิล USB กับซีเรียลด้วย ที่นี่ใช้สาย USB กับ TTL Serial ของ SparkFun (US$9.95) เนื่องจากมีป้ายชื่อไว้อย่างสวยงามและมีการสนับสนุนไดรเวอร์สำหรับระบบปฏิบัติการที่หลากหลาย แต่คุณยังสามารถใช้ USB to TTL Serial Cable ของ Adafruit - Debug / Console Cable สำหรับ Raspberry Pi ได้ เป็นราคาเดียวกัน

เมื่อรวมสายเคเบิลการเขียนโปรแกรมแล้ว ค่าใช้จ่ายสำหรับ WiFi Shield เพียงอันเดียวคือ ~ 16.75 ดอลลาร์สหรัฐ การค้นหาอย่างรวดเร็วพบว่า Arduino WiFi Shields มีราคาขั้นต่ำ 30 ดอลลาร์สหรัฐฯ จนถึง 70 ดอลลาร์สหรัฐฯ ดังนั้นแม้จะรวมค่าใช้จ่ายครั้งเดียวของสายเคเบิลการเขียนโปรแกรม ชิลด์นี้ก็มีราคาถูกกว่าชิลด์อื่นๆ ที่มีอยู่ รวมทั้งการกำหนดค่าและใช้งานที่ง่ายกว่ามาก

ขั้นตอนที่ 2: การก่อสร้าง

การก่อสร้าง
การก่อสร้าง
การก่อสร้าง
การก่อสร้าง
การก่อสร้าง
การก่อสร้าง

แผนผังด้านบน (ESP8266_01_WiFi_Shield_R2.pdf) แสดงการจัดเรียงชิ้นส่วนที่จำเป็นสำหรับโล่นี้ มีส่วนประกอบเพียงหกชิ้นเท่านั้น นอกเหนือจากโมดูล ESP8266-01

ไดโอด 1N5819 ปกป้องอินพุต ESP8266-01 RX จากเอาต์พุต 5V ของไมโครโปรเซสเซอร์ ตัวต้านทาน 330ohm (R6) ป้องกันการลัดวงจรของเอาต์พุต ESP8266-01 TX หาก D1 ของไมโครโปรเซสเซอร์สร้างเอาต์พุตโดยไม่ได้ตั้งใจ จำเป็นต้องใช้แหล่งจ่ายไฟ 3V3 บางประเภท พิน 3V3 ของ Arduino UNO ไม่แข็งแรงพอที่จะจ่ายให้กับโมดูล ESP2866 ที่นี่ใช้ตัวควบคุมสามขั้ว 5V ถึง 3.3V LD1117V33 ตัวเก็บประจุ 10uF จำเป็นต้องทำให้ตัวควบคุม LD1117V33 เสถียร ดังนั้นจึงติดตั้งใกล้กับเอาต์พุตตัวควบคุมมากที่สุด

นี่คือมุมมองด้านบนและด้านล่างของบอร์ดที่เสร็จสมบูรณ์

ด้านบนของกระดานดูสะอาดตา ด้านล่างกระดานเป็นรังหนู

ตรวจสอบให้แน่ใจว่าคุณได้ตรวจสอบการเดินสายอย่างละเอียดเมื่อเสร็จสิ้น โดยเฉพาะอย่างยิ่งการเดินสายไปยังหมุดของ ESP8266-01 และตัวควบคุมขั้วสามขั้ว LD1117V33 ง่ายต่อการต่อสายเข้ากับพินที่ไม่ถูกต้องเมื่อคุณพลิกกลับและต่อสายจากด้านล่าง ตัวควบคุมถูกติดตั้งกลับหัวเพื่อให้แถบโลหะซึ่งเชื่อมต่อทางไฟฟ้ากับพินเอาต์พุต แท็บอยู่ห่างจากหมุดของบอร์ด

ขั้นตอนที่ 3: การเขียนโปรแกรม WiFi Shield

การเขียนโปรแกรม WiFi Shield
การเขียนโปรแกรม WiFi Shield
การเขียนโปรแกรม WiFi Shield
การเขียนโปรแกรม WiFi Shield
การเขียนโปรแกรม WiFi Shield
การเขียนโปรแกรม WiFi Shield

WiFi Shield จะต้องได้รับการตั้งโปรแกรมเพียงครั้งเดียวเท่านั้น และไม่มีอีกเลย ด้วยการกำหนดค่าหน้าเว็บและรหัส Serial to WiFi Bridge

ในการตั้งโปรแกรมโล่ ให้ทำตามขั้นตอนที่ระบุใน https://github.com/esp8266/arduino ภายใต้ Installing With Boards Manager เมื่อเปิด Boards Manager จากเมนู Tools → Board แล้วเลือก Type Contributed และติดตั้งแพลตฟอร์ม esp8266 โครงการนี้รวบรวมโดยใช้ ESP8266 เวอร์ชัน 1.6.4-673-g8cd3697 เวอร์ชันหลังๆ จะดีกว่า แต่อาจมีข้อบกพร่องของตัวเองเนื่องจากแพลตฟอร์มมีการพัฒนาอย่างรวดเร็ว

ปิดและเปิด Arduino IDE อีกครั้ง และคุณสามารถเลือก “Generic ESP8266 Module” จากเมนู Tools → Board ได้แล้ว

คุณต้องติดตั้ง pfodESP2866BufferedClient.zip เวอร์ชันล่าสุดด้วย ไลบรารีนี้ใช้งานได้กับปลั๊กอิน IDE ของ ESP8266.com V2.2 หากคุณเคยติดตั้งไลบรารี pfodESP2866WiFi ไว้ก่อนหน้านี้ ให้ลบไดเร็กทอรีไลบรารีนั้นออกให้หมด

  1. ดาวน์โหลดไฟล์ pfodESP2866BufferedClient.zip นี้ไปยังคอมพิวเตอร์ของคุณ ย้ายไปยังเดสก์ท็อปของคุณหรือโฟลเดอร์อื่นๆ ที่คุณสามารถหาได้ง่าย
  2. จากนั้นใช้ตัวเลือกเมนู Arduino 1.6.5 IDE Sketch → นำเข้าไลบรารี → เพิ่มไลบรารีเพื่อติดตั้ง (หาก Arduino ไม่อนุญาตให้คุณติดตั้งเพราะมีไลบรารีอยู่แล้ว ให้ค้นหาและลบโฟลเดอร์ pfodESP8266BufferedClient ที่เก่ากว่าแล้วนำเข้าไฟล์นี้)
  3. หยุดและรีสตาร์ท Arduino IDE และภายใต้ไฟล์ -> ตัวอย่าง ตอนนี้คุณควรเห็น pfodESP8266BufferedClient

การตั้งค่ารหัสผ่าน Config Access Point

หลังจากที่คุณติดตั้งไลบรารี pfodESP8266BufferedClient แล้ว ให้เปิด Arduino IDE และคัดลอกสเก็ตช์นี้ ESP8266_WifiShield.ino ลงใน IDE ก่อนที่คุณจะตั้งโปรแกรมเกราะ คุณต้องตั้งรหัสผ่านของคุณเองสำหรับจุดเชื่อมต่อการกำหนดค่า

ในโหมดการกำหนดค่า WiFi Shield จะตั้งค่าจุดเชื่อมต่อที่ปลอดภัยซึ่งเรียกว่า pfodWifiWebConfig ด้วยรหัสผ่านที่อยู่ในรหัส QR ที่แนบกับตัวป้องกัน การเชื่อมต่อที่ปลอดภัยนี้จะป้องกันไม่ให้ใครก็ตามที่รับฟังการเชื่อมต่อของคุณในขณะที่คุณกำลังตั้งค่า ssid และรหัสผ่านของเครือข่ายจริงของคุณ คุณควรสร้างรหัสผ่านของคุณเองสำหรับโล่ของคุณ มีโปรแกรมจาวา SecretKeyGenerator ที่นี่ ซึ่งสร้างคีย์ 128 บิตแบบสุ่มและเขียนไฟล์ QR-p.webp

ไม่ว่าในกรณีใด คุณต้องอัปเดต #define ใกล้กับด้านบนของแบบร่างด้วยรหัสผ่านของคุณเอง

// =============== เริ่มการตั้งค่า pfodWifiWebConfig ===============

// อัปเดตการกำหนดนี้ด้วยรหัสผ่านจากโค้ด QR ของคุณ //https://www.forward.com.au/pfod/secureChallengeResponse/keyGenerator/index.html #define pfodWifiWebConfigPASSWORD "b0Ux9akSiwKkwCtcnjTnpWp"

คุณยังสามารถตั้งชื่อจุดเข้าใช้งานการกำหนดค่าของคุณเองได้หากต้องการ

การเขียนโปรแกรมโล่

ในการตั้งโปรแกรมชิลด์ ให้ถอดออกจากบอร์ด Arduino ย่อ FLASH_LINK (แสดงที่นี่พร้อมลิงค์ช็อตสีน้ำเงินตรงกลางบอร์ด) และเชื่อมต่อ USB เข้ากับสายเคเบิล Serial ดังแสดงในรูปภาพ ตรวจสอบรูปถ่ายและสายไฟของคุณ

สาย RX เชื่อมต่อกับ D0 และสาย TX เชื่อมต่อกับ D1 VCC (+5V) เชื่อมต่อกับพิน 5V และ GND เชื่อมต่อกับพิน GND บนชิลด์ ย่อ FLASH_LINK ตามที่แสดงด้านบน ภาพด้านบนใช้สำหรับสาย SparkFun USB to Serial หากคุณกำลังใช้สายเคเบิล Adafruit จะไม่มีขั้วต่อที่ทำเครื่องหมายไว้ แต่มีรหัสสี สีแดงคือพลังงาน สีดำคือพื้น สีเขียวคือ TX และสีขาวคือ RX

ตรวจสอบการเชื่อมต่อ VCC และ GND อย่างระมัดระวัง เนื่องจากจะทำให้แหล่งจ่ายไฟ USB ลัดวงจรได้ง่ายหากคุณปิดเพียงพินเดียว

จากนั้นเสียบสาย USB เข้ากับคอมพิวเตอร์ของคุณเพื่อเปิดเครื่อง ESP8266-01 ในโหมดการเขียนโปรแกรม เลือกพอร์ต COM ในเมนูเครื่องมือ → พอร์ต ปล่อยให้ความถี่ของ CPU ขนาดแฟลชและความเร็วในการอัปโหลดอยู่ที่การตั้งค่าเริ่มต้น

จากนั้นเลือกไฟล์ → อัปโหลด หรือใช้ปุ่มลูกศรขวาเพื่อคอมไพล์และอัปโหลดโปรแกรม สองไฟล์ถูกอัปโหลด หากคุณได้รับข้อความแสดงข้อผิดพลาดในการอัปโหลด ให้ตรวจสอบการเชื่อมต่อสายเคเบิลว่าเสียบหมุดที่ถูกต้องแล้วลองอีกครั้ง เมื่อการเขียนโปรแกรมเสร็จสิ้น ให้ลบลิงก์ shorting ออกจาก FLASH_LINK

การแนบรหัส QR การกำหนดค่า

คุณจะต้องใช้รหัสผ่านจุดเชื่อมต่อการกำหนดค่าเฉพาะทุกครั้งที่ต้องกำหนดค่าเกราะ ดังนั้นจึงสะดวกที่จะแนบเป็นรหัส QR กับแผงป้องกัน (หรือกรณีของมัน) นี่คือไฟล์นำเสนอ Open Office ที่ใช้ในการพิมพ์รหัส QR และรายละเอียดการเชื่อมต่อสำหรับโครงการนี้ แทนที่รหัส QR และข้อความรหัสผ่านด้วยรหัสของคุณเองเพื่อสร้างเกราะป้องกัน

ขั้นตอนที่ 4: การกำหนดค่า WiFi Shield

การกำหนดค่า WiFi Shield
การกำหนดค่า WiFi Shield
การกำหนดค่า WiFi Shield
การกำหนดค่า WiFi Shield
การกำหนดค่า WiFi Shield
การกำหนดค่า WiFi Shield

จำเป็นต้องกำหนดค่าตัวป้องกัน WiFi ด้วยชื่อเครือข่ายและรหัสผ่านของเครือข่ายท้องถิ่น นอกจากนี้ยังต้องได้รับ IP และหมายเลขพอร์ตเพื่อรับฟังการเชื่อมต่อ ตัวป้องกัน WiFi อื่น ๆ ทั้งหมดมี IP และพอร์ตที่ไม่มีฮาร์ดโค้ดในภาพร่าง และฮาร์ดโค้ดชื่อเครือข่ายและรหัสผ่าน หรือใช้วิธีการที่เป็นกรรมสิทธิ์กับแอปที่เป็นกรรมสิทธิ์เพื่อเชื่อมต่อกับเครือข่ายท้องถิ่น นี่เป็นข้อ จำกัด มากเมื่อคุณมีอุปกรณ์หลายเครื่องในสภาพแวดล้อมที่กำลังพัฒนา WiFi Shield นี้ใช้วิธีเปิดหน้าเว็บแบบโอเพ่นซอร์สเพื่อกำหนดค่าทั้งชื่อเครือข่ายและรหัสผ่าน และที่อยู่ IP และหมายเลขพอร์ต

ESP8266-01 มีเอาต์พุตจำนวนจำกัด มีเพียง GPIO0 และ GPIO2 ในการออกแบบนี้ หลังจากเปิดเครื่องแล้ว โค้ดใน ESP2866-01 จะตรวจสอบว่า GPIO2 ต่อสายดินหรือไม่ และถ้าเป็นเช่นนั้นจะตั้งค่า ESP8266-01 ให้อยู่ในโหมดกำหนดค่า อย่างไรก็ตาม การต่อสายดินของอินพุต GPIO2 จะต้องล่าช้าจนกว่า ESP8266-01 จะเปิดเครื่องเสร็จ ถ้า GPIO2 ต่อสายดินระหว่างเปิดเครื่อง โมดูล ESP8266-01 จะไม่เริ่มทำงานตามปกติ ความล่าช้าในการต่อกราวด์ GPIO2 ทำได้โดยใช้ GPIO0 เป็นกราวด์ หลังจากที่ ESP8266-01 เริ่มทำงาน โค้ด setup() จะทำให้ GPIO0 เป็นเอาต์พุตและตั้งค่าเป็น LOW สิ่งนี้จะต่อกราวด์ GPIO2 หาก CONFIG_LINK ถูกลัดวงจร

เวอร์ชันแรกของโปรเจ็กต์นี้ (Rev 1) ใช้ Arduino digital I/O เพิ่มเติมในการต่อสายดิน ซึ่งจำเป็นต้องมีโค้ดเพิ่มเติมใน Arduino Sketch Rev 2+ ไม่จำเป็นต้องใช้โค้ดพิเศษใดๆ ในภาพสเก็ตช์ Arduino ยกเว้นการหน่วงเวลาสั้นๆ ที่ด้านบนสุดของการตั้งค่า () เพื่อละเว้นเอาต์พุตการดีบักของ ESP8266

หากต้องการทดสอบการกำหนดค่า ESP8266-01 WiFi Shield เพียงเสียบเข้ากับบอร์ด Arduino ย่อ CONFIG_LINK (ลิงค์ช็อตสีน้ำเงินทางด้านซ้ายของภาพ) และจ่ายไฟให้กับบอร์ด Arduino

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

จากนั้นคัดลอกและวางรหัสผ่านลงในหน้าจอการตั้งค่า WiFi ของมือถือของคุณเพื่อเชื่อมต่อมือถือของคุณกับจุดเชื่อมต่อการกำหนดค่า

จากนั้นเปิดเว็บเบราว์เซอร์และพิมพ์ URL https://10.1.1.1 ซึ่งจะคืนค่าหน้าเว็บการกำหนดค่า

WiFi Shield จะเติม Network SSID โดยอัตโนมัติด้วยเครือข่ายท้องถิ่นที่มีความแรงของสัญญาณที่ดีที่สุด ซึ่งมักจะเป็นสิ่งที่คุณต้องการ ถ้าไม่เพียงแค่เขียนทับรายการนั้น คุณต้องป้อน SSID เครือข่ายและรหัสผ่านและหมายเลขพอร์ต ฟิลด์ที่อยู่ IP เป็นทางเลือก หากคุณเว้นว่างไว้ WiFi Shield จะใช้ DHCP เพื่อรับที่อยู่ IP ในเครือข่ายท้องถิ่นของคุณ การระบุที่อยู่ IP เฉพาะมักจะง่ายกว่า เพื่อให้คุณสามารถเชื่อมต่อกับส่วนป้องกันนี้ได้อย่างง่ายดาย

Rev 10 ยังอนุญาตให้คุณกำหนดค่าอัตราบอดแบบอนุกรมสำหรับชีลด์นี้ ค่าเริ่มต้นคือ 19200 แต่ตัวอย่างที่นี่ใช้ 9600 ดังนั้นให้เปลี่ยนอัตราบอดเป็น 9600

หากเบราว์เซอร์ของคุณสอดคล้องกับ HTML5 หน้าเว็บจะตรวจสอบความถูกต้องของข้อมูลก่อนส่ง

เมื่อคุณคลิกปุ่มกำหนดค่า ตัวป้องกัน WiFi จะประมวลผลผลลัพธ์และจัดเก็บไว้ใน EEPROM จากนั้นแสดงหน้าการตอบสนอง เช่นเดียวกับที่แสดงด้านบน โดยบอกให้คุณเปิดเครื่องเพื่อเชื่อมต่อกับเครือข่ายของคุณ

ขั้นตอนที่ 5: การใช้ตัวป้องกัน WiFi

การใช้ WiFi Shield
การใช้ WiFi Shield
การใช้ WiFi Shield
การใช้ WiFi Shield
การใช้ WiFi Shield
การใช้ WiFi Shield

ในโปรเจ็กต์ที่สมบูรณ์ คุณจะต้องติดตั้งปุ่มกดชั่วขณะที่ด้านนอกกล่องโปรเจ็กต์ของคุณที่เชื่อมต่อกับ CONFIG_LINK และแนะนำให้ผู้ใช้กดปุ่ม จากนั้นเปิดเครื่องอุปกรณ์เพื่อเข้าสู่โหมดกำหนดค่า รหัสที่คุณโหลดลงใน ESP8266-01 ยังขับ GPIO0 พิน LOW ของ ESP8266 เมื่อโมดูลอยู่ในโหมดกำหนดค่า ดังนั้นคุณจึงสามารถเชื่อมต่อตัวต้านทาน 270ohm และ LED ระหว่างราง 3.3V และ GPIO0 และติดตั้ง LED ที่ด้านนอกของกล่อง เพื่อระบุให้ผู้ใช้ทราบว่าอยู่ในโหมดกำหนดค่า

Rev 10 ยังอนุญาตให้คุณกำหนดค่าอัตราบอดแบบอนุกรมสำหรับชีลด์นี้ ค่าเริ่มต้นคือ 19200 แต่ตัวอย่างที่นี่ใช้ 9600 ดังนั้นให้เปลี่ยนอัตรารับส่งข้อมูลเป็น 9600 บนหน้าเว็บการกำหนดค่าด้านบน

ดังที่กล่าวไว้ข้างต้นภาพสเก็ตช์ใดๆ ที่คุณโหลดลงใน Arduino หรือไมโครโปรเซสเซอร์อื่นๆ จำเป็นต้องมีการหน่วงเวลาสั้นๆ เพื่อข้ามเอาต์พุตการดีบักจากโมดูล ESP8266 นอกเหนือจากนั้น ในการรับและส่งข้อมูลผ่าน WiFi จากภาพสเก็ตช์ของคุณ คุณเพียงแค่อ่านและเขียนไปยังพอร์ตอนุกรมของคุณ (เชื่อมต่อกับ D0, D1) ที่ 9600 บอด ดังนั้นการละเว้นเอาต์พุตการดีบักของ ESP8266 ให้เพิ่มการหน่วงเวลาสั้น ๆ ที่ด้านบนของเมธอด setup()

การตั้งค่าเป็นโมฆะ () {

ล่าช้า (1000); // รอที่นี่สักครู่เพื่อให้ ESP8266 เปิดเครื่องได้สมบูรณ์ // สิ่งนี้จะข้ามเอาต์พุตการดีบักของ WiFi Shield เมื่อเปิดเครื่อง // ก่อนที่จะเริ่มการเชื่อมต่อแบบอนุกรม …. รหัสตั้งค่าอื่น ๆ ที่นี่

ตัวอย่างที่นี่ใช้ Arduino UNO แต่คุณสามารถใช้ไมโครโปรเซสเซอร์ใดก็ได้ ทั้งแบบ 5V หรือ 3.3V ที่มี UART หากคุณใช้ไมโครโปรเซสเซอร์ 3.3V คุณจะต้องจ่ายไฟ 5V ให้กับแหล่งจ่ายไฟของ WiFi Shield 5V นี้จะเชื่อมต่อกับพิน 5V ของชิลด์ด้วย ดังนั้นคุณต้องตรวจสอบว่ายอมรับได้สำหรับไมโครที่คุณเสียบชีลด์เข้าไปหรือไม่

ในการทดสอบโล่นี้ pfodApp ถูกใช้เพื่อเปิดและปิด LED ของ Uno ผ่าน WiFi ก่อนอื่น pfodDesigner ถูกใช้เพื่อออกแบบเมนูง่ายๆ

หมายเหตุ: pfodApp เวอร์ชันล่าสุดส่ง KeepAlive msgs เพื่อไม่ให้ตัวป้องกัน wifi หมดเวลา

จากนั้นรหัสจะถูกสร้างขึ้นสำหรับการเชื่อมต่อแบบอนุกรมที่ 9600 บอดและโอนไฟล์ไปยังพีซีโดยใช้การถ่ายโอนไฟล์ wifi

setup() ของสเก็ตช์ไม่จำเป็นต้องเพิ่มการหน่วงเวลา (1000) เนื่องจากตัวแยกวิเคราะห์ pfod ละเว้นอักขระใดๆ ภายนอก { } แต่รวมไว้เพราะแนะนำสำหรับบอร์ด WiFi นี้

แบบร่างที่สมบูรณ์ ESP8266_UnoLedControl.ino อยู่ที่นี่แล้ว โปรดทราบว่าไม่มีรหัส WiFi พิเศษ ภาพสเก็ตช์เพียงแค่อ่านและเขียนไปยังเอาต์พุตแบบอนุกรม

ลบ WiFi Shield เลือก Tools → Board → Uno ใน Arduino IDE และตั้งโปรแกรมร่างนี้ลงใน UNOหมายเหตุ: คุณต้องถอดตัวป้องกัน WiFi เพื่อตั้งโปรแกรม UNO เนื่องจาก USB เชื่อมต่อกับพิน TX/RX ของ UNO

เสียบ WiFi Shield กลับเข้าไป มันจะเชื่อมต่อกับเครือข่ายท้องถิ่นของคุณโดยอัตโนมัติ และเริ่มเซิร์ฟเวอร์บนพอร์ตที่คุณกำหนดค่า ใน pfodApp คุณสามารถตั้งค่าการเชื่อมต่อสำหรับอุปกรณ์นี้ ดู pfodAppForAndroidGettingStarted.pdf สำหรับรายละเอียด

จากนั้นเชื่อมต่อเพื่อเปิดและปิด LED ของ Uno จากมือถือ Android ของคุณผ่าน wifi

แค่นั้นจบ!!

ขั้นตอนที่ 6: ส่วนขยายสำหรับ WiFi Shield และข้อสรุป

การเพิ่มการสนับสนุนลูกค้า

ดังที่นำเสนอในที่นี้ ตัวป้องกัน WiFi สามารถกำหนดค่าให้ทำงานเป็นเซิร์ฟเวอร์ที่รับฟัง IP และหมายเลขพอร์ตที่ระบุ อย่างไรก็ตาม pfodWifiConfig ยังให้การสนับสนุนสำหรับการจัดเก็บและเรียกการตั้งค่าไคลเอนต์รวมถึงการตั้งค่าเซิร์ฟเวอร์ ดังนั้น ด้วยการเพิ่มฟิลด์เหล่านี้ลงในหน้าเว็บการกำหนดค่าและการบันทึก/โหลดค่าไคลเอนต์ คุณยังสามารถใช้ WiFi Shield เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลด้วยชื่อผู้ใช้และรหัสผ่านของไคลเอ็นต์ และอัปโหลดข้อมูลไปยังที่นั่น

การเพิ่มปุ่มกดการกำหนดค่าภายนอกและไฟ LED

ดังที่กล่าวไว้ข้างต้น ในแอปพลิเคชันจริง คุณจะต้องติดตั้งปุ่มกดชั่วขณะที่ด้านนอกกล่องโครงการของคุณที่เชื่อมต่อกับ CONFIG_LINK และแนะนำให้ผู้ใช้กดปุ่ม จากนั้นเปิดเครื่องเพื่อเข้าสู่โหมดกำหนดค่า รหัสที่คุณโหลดลงใน ESP8266-01 จะขับเคลื่อน GPIO0 พิน LOW เมื่อโมดูลอยู่ในโหมดกำหนดค่า ดังนั้นคุณจึงสามารถเชื่อมต่อตัวต้านทาน 270ohm และ LED ระหว่างราง 3.3V และ GPIO0 และติดตั้งไฟ LED ที่ด้านนอกของกล่องเพื่อ แจ้งผู้ใช้ว่าอยู่ในโหมดกำหนดค่า

บทสรุป

Rev 2 ของ ESP8266-01 WiFi Shield ใช้โมดูล ESP8266-01 ราคาถูกและพร้อมใช้งาน สามารถใช้โมดูล ESP8266 อื่นๆ ได้เช่นกัน

เมื่อตั้งโปรแกรมแล้ว คุณไม่จำเป็นต้องตั้งโปรแกรมอีกเลยเพื่อตั้งค่าหรือเปลี่ยนการตั้งค่าเครือข่าย สามารถตั้งค่าได้ทั้งหมดผ่านหน้าเว็บบนเครือข่าย WiFi ชั่วคราวที่ปลอดภัย

ง่ายต่อการเชื่อมต่อกับไมโครใดๆ ที่มี UART และใช้งานได้กับทั้งไมโครโปรเซสเซอร์ 5V หรือ 3.3V

ไม่จำเป็นต้องใช้ไลบรารีเพื่อเชื่อมต่อกับโล่นี้ มันทำงานเป็นบริดจ์ Serial to WiFi อย่างง่าย

แนะนำ: