ฉันจะเชื่อมต่อกับ Arduino โดยใช้ WiFi ได้อย่างไร


27

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

ตัวเลือกต่าง ๆ สำหรับการเชื่อมต่อ Arduino กับ WiFi คืออะไร? ฉันได้ดูที่อีเธอร์เน็ตชิฟด์, โล่ WiFi และสิ่งที่เรียกว่า Xbee แต่ฉันไม่เข้าใจว่าแต่ละอันนั้นมีไว้เพื่ออะไร

ฉันยังมีเราเตอร์ไร้สายภายในบ้านที่ฉันสามารถใช้ได้ เป็นไปได้หรือไม่ที่จะเชื่อมต่อ Arduino Uno กับเราเตอร์ผ่านเราเตอร์อีเธอร์เน็ตหรือพอร์ต USB จากนั้นรับข้อมูลจากและส่งคำสั่งไปยัง Arduino ผ่านเครือข่ายไร้สายภายในบ้านของฉัน ถ้าเป็นเช่นนั้นสิ่งนี้จะสำเร็จได้อย่างไร

ปัจจุบันฉันมี Arduino Uno เปลือย


4
คุณมีตัวป้องกันอีเธอร์เน็ตหรือไม่?
jfpoilpret

3
คุณต้องชี้แจงคำถามของคุณ: "สื่อสารกับมัน" หมายความว่าอะไร? อัพโหลดภาพร่างใช่ไหม ส่งคำสั่งไปยังร่าง รับข้อมูลจากแบบร่างหรือไม่
jfpoilpret

ฉันพยายามเพิ่มรายละเอียดและบริบทของคำถาม ฉันไม่มีเกราะป้องกันใด ๆ ในขณะนี้
jlbnjmn

ฉันไม่คิดว่าการแก้ไขของ Uno อย่างเป็นทางการจะมีพอร์ตอีเธอร์เน็ต ฉันเดาว่าคุณต้องมี Arduino Ethernet (ซึ่งคล้ายกัน) หรืออาจเป็นโคลนที่ไม่เป็นทางการบางชนิด?
Peter Bloomfield

ฉันได้แก้ไขคำถามเพื่อระบุพอร์ตอีเธอร์เน็ตบนเราเตอร์ไร้สาย ดังนั้นคำถามคือ: [Arduino +? + (เราเตอร์ไร้สายหรือ?) = Arduino ส่งข้อมูลผ่านเครือข่ายไร้สายของฉัน]
jlbnjmn

คำตอบ:


24

คุณมีตัวเลือกเล็กน้อยสำหรับเชื่อมต่อ Arduino กับเครือข่าย / อินเทอร์เน็ต

อีเธอร์เน็ต

บางอย่างเช่นArduino Ethernet Shieldช่วยให้คุณสามารถเสียบสายอีเธอร์เน็ตจากผนังหรือเราเตอร์เข้ากับ Arduino ของคุณ เห็นได้ชัดว่าข้อ จำกัด หลักคืออุปกรณ์ของคุณถูกล่ามด้วยสายเคเบิล สำหรับการใช้งานกลางแจ้งฉันจะไม่ทำสิ่งนี้

อินเตอร์เน็ตไร้สาย

Arduino WiFi โล่ช่วยให้คุณสามารถเชื่อมต่อกับเครือข่าย WiFi ที่บ้านของคุณ นี่เป็นเหมือน Ethernet ยกเว้นตอนนี้ไร้สาย

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

RF

หากคุณมีเซ็นเซอร์หรืออุปกรณ์อื่น ๆ จำนวนมากที่จำเป็นต้องสื่อสารซึ่งกันและกันตัวเลือกที่ดีที่สุดมักจะเป็นโมดูล RF คุณมีตัวเลือกมากมายที่นี่ XBee เป็นหนึ่งในนั้น ดูคู่มือการซื้อ Sparkfun XBeeเพื่อดูตัวเลือกทั้งหมดที่มี และนั่นเป็นเพียง XBee มีตัวเลือกไร้สายอื่น ๆ อีกมากมายที่ราคาทุกประเภท

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

เราเตอร์ไร้สายอนุกรม

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


1
สำหรับการสื่อสาร "RF" คุณสามารถใช้โมดูลยอดนิยม nRF24L01 + มีห้องสมุดดีๆอยู่ที่นั่น ปัญหาเกี่ยวกับลิงค์ RF คือคุณต้องมี Arduino หรือ Raspberry Pi อื่น ๆ ที่ทำงานเป็น "ผู้รับ" ซึ่งเชื่อมต่อกับคอมพิวเตอร์ของคุณที่คุณต้องการจัดเก็บ / ดู / วิเคราะห์ข้อมูล สำหรับ Wifi ตอนนี้มี CC3000 shields ให้ใช้ด้วย adafruit.com/products/1534
Mike WP

ในขณะที่ทำการค้นคว้าตัวเลือกที่คุณให้ฉันได้เจอหยุน นั่นจะเป็นตัวเลือกที่ตรงไปตรงมามากกว่านี้ไหม? ขอบคุณ
jlbnjmn

อาจจะ. ไม่เคยใช้มันด้วยตัวเอง เกราะไม่ได้เชื่อมต่อกับได้ยากและอาจถูกกว่า
sachleen

4

แต่งงานกับ OpenWrt และ Arduino ของคุณ

รับเราเตอร์ขนาดเล็กที่สามารถใช้งาน OpenWrt ได้เช่น "TP-Link TL-WR703N" พร้อมแฟลชด้วย OpenWrt เวอร์ชั่นปัจจุบันที่เสถียรและเชื่อมต่อ Arduino ของคุณเข้ากับพอร์ต USB ของเราเตอร์

โซลูชันนี้มีค่าใช้จ่ายครึ่งหนึ่งหรือน้อยกว่าในการป้องกัน WiFi และมีพลังงานมากกว่า

... และราคาถูกกว่าเช่นYÙN

เว็บเซิร์ฟเวอร์อัตโนมัติสำหรับบ้านอัจฉริยะบนเราเตอร์ OpenWRT WR703N เชื่อมต่อกับ Arduino เมื่อเทียบกับราสเบอร์รี่ Pi และ Ubuntuอาจเป็นจุดเริ่มต้นในการอ่านเกี่ยวกับเรื่องนี้และเครื่องมือค้นหาที่คุณชื่นชอบจะพบลิงค์เพิ่มเติมเกี่ยวกับการแต่งงานกับ WR703N และ Arduinos ...

(!) โปรดดูhttps://arduino.stackexchange.com/a/1754/653ด้วยเช่นกัน ....


4

ESP8266 เป็นโมดูลราคาถูก 5 $ wifi พร้อมการเชื่อมต่อ UART, SPI สิ่งนี้สามารถรวมเข้ากับ Arduino ได้อย่างราบรื่นทั้งผ่านเฟิร์มแวร์หุ้นโดยใช้คำสั่ง AT หรือโดยการเขียนเฟิร์มแวร์ที่กำหนดเองโดยใช้ SDK ที่ให้มาและ GIPO ที่มีให้ สำหรับการอ้างอิงเพิ่มเติมhttp://www.esp8266.com/


3

ฉันทำงานกับ xbee กับ arduino และ raspberry pi มาหลายเดือนแล้ว ในขณะที่มันมีปัญหาและนิสัยใจคอมันเป็นเครื่องมือที่ดีในห่วงโซ่การสื่อสาร มันไม่สมบูรณ์แบบ แต่ได้รับด้านตาข่ายของมันสำหรับฉันมันไปไกลกว่า wifi ของฉันและสามารถเชื่อถือได้มากขึ้น (ราสเบอร์รี่ Pi ของฉันกับ wifi เป็นครั้งคราวหลุดออก แต่ xbee ที่เชื่อมต่อยังคงทำงานในพื้นหลัง

โดยเฉพาะในกรณีของฉันมันช่วยให้การเชื่อมต่อแบบอนุกรมระหว่างอุปกรณ์ของฉัน (เป็น arduinos หลายตัว, raspberry pi (ผู้ประสานงาน) และ mac ของฉัน (ใช้เป็นหลักในการตรวจสอบ แต่ยังฉีดข้อมูลอนุกรมเป็นบางครั้ง) ในกรณีนี้มันสมบูรณ์แบบ ไม่อนุญาตการเข้าถึงอินเทอร์เน็ตหรือการเข้าถึงเกินกว่ากรอบ xbee แต่นั่นเหมาะกับฉันอย่างสมบูรณ์แบบเนื่องจากการใช้งานนั้นง่ายเหมือน Serial.print และ Serial.read โดยไม่มีอีเธอร์เน็ตโอเวอร์เฮด


2

ฉันใช้Spark Coreซึ่งเป็นแพลตฟอร์มการเขียนโปรแกรม Arduino ที่ใช้งานง่ายมาก แพลตฟอร์มนี้สร้างขึ้นบนพรีอุสที่ WiFi ควรใช้งานง่ายและราคาถูก สามารถตั้งโปรแกรม Spark Core ได้จากทุกที่ทุกเวลา


เปรียบเทียบกับ XBee ในแง่ของราคาได้อย่างไร (รวมถึงการเชื่อมต่อกับ Arduino เช่นโล่) ระยะทางการเขียนโปรแกรม (บน Arduino)
jfpoilpret

2

คุณสามารถลอง Arduino Yun มันเหมือน Uno แต่มี WiFi อยู่บนกระดานโดยตรง

มีส่วนหนึ่งใน"คำแนะนำเกี่ยวกับ Arduino Yún" เรียกว่า "การกำหนดค่า onboard WiFi"ซึ่งอธิบายวิธีการกำหนดค่า WiFi


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

1

สิ่งที่คุณต้องการทำได้ง่ายมากและมีรหัสอยู่แล้ว แต่วิธีที่ฉันเชิญคุณจะไม่เชื่อมต่อเซ็นเซอร์ Arduino กับ wifi ของคุณ คุณจะใช้ Arduino ตัวอื่นแทนเกตเวย์ของคุณดังนี้:

เซนเซอร์ Arduino: ตั้งอยู่ด้านนอก, เชื่อมต่อกับเซ็นเซอร์อุณหภูมิ, ความเร็วลม, มาตรวัดปริมาณน้ำฝน?

เกตเวย์ Arduino: ตั้งอยู่ภายในพร้อมตัวป้องกันอีเธอร์เน็ต Wiznet 5001

Sensor Arduino และ Gateway Arduino พูดคุยกันโดยใช้ตัวรับส่งสัญญาณไร้สายที่ใช้งานง่ายมาก nRF24L01 + โมดูลไร้สายแต่ละอันมีราคา $ 3 และห้องสมุดสำหรับการใช้งานนั้นค่อนข้างสมบูรณ์ ข้อมูลเซ็นเซอร์ทั้งหมดสามารถสื่อสารกับ Gateway ได้อย่างง่ายดายโดยใช้ไลบรารีนี้

Gateway Arduino w / ethernet ทำหน้าที่เป็นเว็บเซิร์ฟเวอร์ช่วยให้คอมพิวเตอร์ทุกเครื่องในเครือข่ายท้องถิ่นของคุณเปิดหน้าและดูสภาพปัจจุบัน ดูหน้านี้สำหรับรหัส Arduino: http://arduino.cc/en/Tutorial/WebServer

คุณต้องการบันทึกข้อมูลอุณหภูมิ / ความเร็วลมในอดีตด้วยหรือไม่ นี่คือส่วนที่ดีที่สุด! Gateway Arduino สามารถผลักดันข้อมูลไปยังบริการอย่าง Xively ซึ่งเป็นบริการเก็บรวบรวมข้อมูลทางเว็บฟรีซึ่งจะช่วยให้คุณเห็นภาพ / กราฟข้อมูลของคุณได้อย่างดีเยี่ยม มีอาการสะอึกเล็กน้อยเมื่อใช้ Wiznet พร้อมกับโมดูล nRF24L01 ทั้งโมดูลไร้สายและอีเธอร์เน็ตชิลด์ใช้บัสเดียวกันในการสื่อสารดังนั้นให้ดูที่บล็อกนี้เพื่อดูว่าคุณสามารถใช้ทั้งสองในเวลาเดียวกันได้อย่างไร:

http://www.heald.ca/content/arduino-ethernet-nrf24l01-and-pachubecosmxively

Xively ยังให้คุณสร้างข้อมูลนั้นเป็นสาธารณะหรือส่วนตัวดังนั้นคุณสามารถเลือกที่จะให้ข้อมูลสถานีอากาศของคุณกับชุมชน

หมายเหตุอื่น ๆ : ฉันชอบโมดูล nRF24L01 + เพราะราคาถูกกว่า โมดูล Xbee มีราคาสูงกว่า Arduinos เอง คุณสามารถเพิ่มโมดูล nRF24L01 + รอบ ๆ บ้านได้เมื่อคุณสร้างเกตเวย์ ปัญหาค่าใช้จ่ายเดียวกันกับ wifi shield - แพง


1

หากคุณต้องการเป็นทางเลือกที่ถูกกว่าการเพิ่มความสามารถใน WiFi เพื่อ Arduino ดูที่ESP WiFi โล่

มันทำงานได้ดีกับห้องสมุด WiFiEsp รูปแบบการเขียนโปรแกรมเหมือนกับ Arduino WiFi Shield


0

ตรวจสอบโมดูล wifi ESP8266 เป็นโมดูลราคาถูกและสามารถควบคุมได้โดยใช้คำสั่ง AT ของไมโครคอนโทรลเลอร์และ Soc เพื่อให้คุณสามารถใช้งานได้แบบสแตนด์อโลน


0

การใช้ชุด ESP8266 AT cmd นั้นทำได้ยากและเกิดข้อผิดพลาดได้ง่าย แนะนำให้คุณใส่ ESP8266-01 เป็นสะพาน UART-WiFi ตามที่อธิบายไว้ที่นี่ ESP8266 Wifi เพิ่มสำหรับ Arduino Made Simple

โปรดทราบว่าการตั้งค่ายังช่วยให้คุณกำหนดการตั้งค่า WiFi อีกครั้งโดยไม่ต้องตั้งโปรแกรม ESP8266-01 ใหม่


0

การใช้ผลตอบแทน ESP8266 นั้นเกิดข้อผิดพลาดได้ง่ายต้องการการอัพเดทที่จำเป็นต้องมีการวาบไฟการบัดกรีบางอย่างที่จำเป็นและไม่เหมาะสมกับสภาพแวดล้อมการผลิต นอกจากนี้ยังมีปัญหาเกี่ยวกับแหล่งจ่ายไฟเนื่องจากคุณต้องมีแหล่งจ่ายไฟ 3.3V แยกต่างหาก ปี 2559 (!) และมีตัวเลือกเพิ่มเติมให้เลือกมากมายในขณะนี้

"บอร์ด UNO WiFi เป็น Arduino UNO พร้อม WiFi ในตัว" http://www.arduino.org/products/boards/arduino-uno-wifi

และ

"The Star Otto เป็นบอร์ด Arduino ตัวแรกที่มีโปรเซสเซอร์ STM32F469 พร้อม WiFi" http://www.arduino.org/products/boards/arduino-star-otto (ที่จริงแล้วในเดือนตุลาคมยังไม่มีให้บริการ "Coming Soon")

โปรดทราบว่าบอร์ดทั้งสองนี้มาจากองค์กรOTHER Arduino


0

หลังจากการทดลองและข้อผิดพลาดหลายอย่างในโครงการ IoT ของฉันฉันขอแนะนำให้ทำงานกับ ESP32 บน ESP8266 (และ Arduino Uno & Nano) ยกเว้นว่าคุณรู้ขอบเขตของโครงการของคุณเป็นอย่างดี

ข้อดีของ ESP32 มากกว่า ESP8266:

  1. Bigger RAM, คำสั่ง ESP8266: 32KB & ข้อมูลผู้ใช้ 80 KB, ESP32: 520 KB

ฉันกำลังทำงานในโครงการ IoT และพยายามตรวจสอบสิทธิ์อุปกรณ์ใน GCP โดยใช้ใบรับรอง ใบรับรองรูทของ GCP มีขนาดประมาณ 120 KB ดังนั้นจึงไม่เหมาะกับ ESP8266 มีทางเลือก แต่สิ่งที่ซับซ้อน

  1. ESP32 มีบลูทู ธ & ESP8266 ไม่

ในบางจุดของโครงการ IoT ของคุณคุณอาจต้องการบลูทู ธ เพื่อเชื่อมต่ออุปกรณ์ของคุณกับโทรศัพท์ของคุณ ...

  1. ESP32 บางรุ่นมีพอร์ตรวมสำหรับกล้อง (ค้นหา ESP32 CAM)

ด้วย ESP8266 คุณสามารถใช้กล้องได้อย่างแน่นอน แต่นั่นจะเกี่ยวข้องกับการเข้ารหัสและการเดินสายเพิ่มเติมและประสิทธิภาพที่แย่ลง

และในที่สุดฉันก็พยายามต่อ wifi ชิปกับ Arduino Uno & Nano แต่ฉันก็พบข้อผิดพลาดและปัญหาเกี่ยวกับคำสั่ง AT ดังนั้นตอนนี้ฉันมีความสุขมากกับ ESP32 เพราะทุกอย่างรวมเข้าด้วยกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.