WiFiを使用してArduinoに接続するにはどうすればよいですか?


27

私は、太陽電池式のArduinoベースの気象観測所の建設に取り組んでいます。気象観測所は温度センサーとフォトレジスターで構成されており、将来風速計を追加する予定です。天気予報ステーションをワイヤレスネットワークに接続して、ワイヤーを使用せずにコンピューターからセンサーデータを取得できるようにします(私はレンタルに住んでいます)。

ArduinoをWiFiに接続するためのさまざまなオプションは何ですか?イーサネットシールド、WiFiシールド、Xbeeと呼ばれるものを見てきましたが、それぞれの目的がわからないのです。

また、使用できるワイヤレスホームルーターもあります。Arduino UnoをルーターのイーサネットまたはUSBポートを介してルーターに接続し、ホームネットワークを介して無線でArduinoとデータを送受信することは可能ですか?もしそうなら、これはどのように達成されますか?

現在、裸のArduino Unoを持っています。


4
イーサネットシールドはありますか?
jfpoilpret 14

3
質問を明確にする必要があります。「それと通信する」とはどういう意味ですか?スケッチをアップロードしますか?スケッチにコマンドを送信しますか?スケッチからデータを取得しますか?
jfpoilpret 14

質問に詳細とコンテキストを追加しようとしました。現在、シールドはありません。
jlbnjmn

公式のUnoのリビジョンにはイーサネットポートがないと思います。Arduino Ethernet(これは似ています)か、あるいは何らかの非公式のクローンを持っている必要があると思いますか?
ピーターブルームフィールド

質問を編集して、ワイヤレスルーターのイーサネットポートを指定しました。質問は次のとおりです。[Arduino +?+(ワイヤレスルーターOR?)= Arduinoがワイヤレスネットワーク経由でデータを送信する]。
jlbnjmn 14

回答:


24

Arduinoをネットワーク/インターネットに接続するためのオプションがいくつかあります。

イーサネット

Arduinoイーサネットシールドのようなものを使用すると、イーサネットケーブルを壁またはルーターからArduinoに接続できます。明らかに、主な制限は、デバイスがケーブルでつながれていることです。屋外で使用する場合は、これを行いません。

Wi-Fi

Arduinoの無線LANシールドは、あなたの家のWiFiネットワークに接続することができます。これはイーサネットに似ていますが、現在はワイヤレスになっています。

ESP8266は、デフォルトのファームウェアで、WiFiの盾と同じ機能を持ち、安価な代替です。Arduinoの残りの部分である5Vではなく3.3Vで給電することに注意してください。また、3.3Vロジックレベルを使用するため、ArduinoのTXピンをESPのRXピンに直接接続しないでください。分圧器を使用してください。

RF

相互に通信する必要のあるセンサーやその他のデバイスが多数ある場合、通常、最適なオプションはRFモジュールです。ここには多くのオプションがあり、XBeeはその1つです。利用可能なすべてのオプションについては、Sparkfun XBee購入ガイドをご覧ください。そして、それはただのXBeeです。あらゆる種類の価格で、他の多くのワイヤレスオプションを利用できます。

RFの問題は、これらのいずれもインターネットに接続しないことです。すべてのデバイスが相互に通信するか、ベースステーションと通信します。ベースステーションは、WiFiまたはイーサネットモジュールによってネットワークに接続されます。

ワイヤレスルーターシリアル

使用するワイヤレスルーターの種類に応じて、Arduinoと直接通信させ、ネットワークへの接続として使用できます。


1
「RF」通信については、一般的なnRF24L01 +モジュールも使用できます。このための優れたライブラリがいくつかあります。RFリンクの問題は、別のArduinoまたはRaspberry Piなどを「レシーバー」として実行する必要があることです。このレシーバーは、データを保存/表示/分析するコンピューターに接続されます。Wifiの場合、CC3000シールドも利用可能になりました adafruit.com/products/1534
Mike WP

あなたが提供したオプションを調査していると、ユンに出会いました。それはもっと簡単なオプションでしょうか?ありがとう。
jlbnjmn 14

多分。自分で使用したことはありません。シールドは接続するのが難しくなく、より安くなるかもしれません。
サックリーン14

4

OpenWrtとArduinoを結婚させる

「TP-Link TL-WR703N」のような小さなOpenWrt対応ルーターを入手し、現在の安定バージョンのOpenWrtでフラッシュして、ArduinoをルーターのUSBポートに接続します。

このソリューションは、WiFiシールドのコストの半分以下であり、はるかに強力です。

...そしてYÙNとしてより安くなります。

Arduinoに接続されたOpenWRTルーターWR703NのスマートホームオートメーションWebサーバーは、Raspberry PiとUbuntuに比べて、この点を読むための出発点になる可能性があり、お気に入りの検索エンジンはWR703NとArduinosを結合するためのより多くのリンクを見つけるでしょう...

(!)https://arduino.stackexchange.com/a/1754/653も参照してください。


4

ESP8266は、UART、SPI接続を備えた安価な5 $ wifiモジュールです。これは、ATコマンドを使用するストックファームウェアを介して、または提供されているSDKと利用可能なGIPOを使用してカスタムファームウェアを記述することにより、Arduinoとシームレスに統合できます。詳細については、http://www.esp8266.com/


3

私は数か月間、arduinoとraspberry piでxbeeを使用しています。それには問題と癖がありますが、コミュニケーションチェーンのすばらしいツールです。それは完璧ではありませんが、そのメッシュ側を考えると、私にとってはWi-Fiよりも遠くに届き、さらに信頼性が高くなります(Wi-Fiを備えたラズベリーパイは時々ドロップアウトしますが、接続されたxbeeはバックグラウンドで機能し続けます)。

具体的には、私の場合(複数のarduino、raspberry pi(コーディネーター)、およびMac(主に監視に使用されますが、シリアルデータの注入にも使用されます))間のシリアル接続が可能です。この場合、それは完璧です。インターネットへのアクセスやxbeeフレームワークを超えたアクセスは許可されませんが、実装はSerial.printやSerial.readと同じくらい簡単で、イーサネットのオーバーヘッドはありません。


2

私が使用してコアをスパーク Arduinoのプログラミングプラットフォームを使用することは非常に簡単です。このプラットフォームは、WiFiが使いやすく安価でなければならないという原則に基づいて構築されました。Spark Coreはいつでもどこからでもプログラムできます。


価格(シールドなどのArduino接続物を含む)、距離範囲、プログラミング(Arduinoで)の点でXBeeと比較してどうですか?
jfpoilpret 14年

2

Arduino Yunを試すことができます。これはUnoに似ていますが、ボード上に直接WiFiがあります。

「ArduinoYúnのガイド」には「オンボードWiFiの構成」と呼ばれる部分があり、WiFiの構成方法について説明しています。


1
こんにちは、いくつかの詳細情報を使用して回答を編集できますか。OPはすでにYunを知っているので、たとえばWiFiチップを使用する方法を人々に案内した場合、あなたの答えはより便利になります。
サックリーン14年

1

あなたがしたいことはとても簡単で、コードはすでに存在しています。しかし、私が推測したように、センサーArduinoをWi-Fiに接続することはありません。代わりに、次のように別のArduinoをゲートウェイとして使用します。

センサーArduino:外にあり、温度センサー、風速、雨量計に接続されていますか?

Gateway Arduino:内部にあり、Wiznet 5001イーサネットシールド付き

Sensor ArduinoとGateway Arduinoは、非常に使いやすいワイヤレストランシーバーnRF24L01 +を使用して相互に通信します。ワイヤレスモジュールはそれぞれ3ドルで、使用するライブラリは非常に成熟しています。すべてのセンサーデータは、このライブラリを使用してゲートウェイに簡単に通信されます。

Gateway Arduino w / ethernetはWebサーバーとして機能し、ローカルネットワーク内の任意のコンピューターがページを開いて現在の状態を表示できるようにします。Arduinoコードについては、このページをご覧ください:http : //arduino.cc/en/Tutorial/WebServer

温度/風速の履歴情報も保存したいですか?これは最高の部分です!Gateway Arduinoは、Xivelyなどのサービスにデータをプッシュできます。Xivelyは、無料のWebベースのデータ収集サービスで、データを視覚化/グラフ化する優れた方法も提供します。nRF24L01モジュールとともにWiznetを使用すると、少し問題が発生します。ワイヤレスモジュールとイーサネットシールドはどちらも同じバスを使用して通信するため、このブログを参照して、両方を同時に使用する方法を確認してください。

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

Xivelyでは、そのデータをパブリックまたはプライベートにすることができるため、気象ステーションのデータをコミュニティに提供することを選択できます。

その他の注意事項:nRF24L01 +モジュールは汚れが少ないので気に入っています。XbeeモジュールはArduino自体よりも高価です。ゲートウェイを確立したら、nRF24L01 +モジュールを家の周りに追加し続けることができます。WiFiシールドにも同じコストの問題があります-高価です。



0

ESP8266 wifiモジュールを確認してください。これは安価なモジュールであり、ATコマンドで任意のマイクロコントローラーを使用して制御できます。また、Socなので、スタンドアロンで使用できます。



0

ESP8266 sieldを使用するとエラーが発生しやすく、フラッシュする必要があるアップデートが必要であり、はんだ付けが必要であり、実稼働環境には適していません。また、別の 3.3V電源を用意する必要があるため、電源にも問題があります。2016年(!)であり、さらに多くのオプションが利用可能になりました。

「UNO WiFiボードは、WiFiが統合されたArduino UNOです。」http://www.arduino.org/products/boards/arduino-uno-wifi

そして

「Star Ottoは、WiFiを備えたSTM32F469プロセッサを搭載した最初のArduinoボードです。」http://www.arduino.org/products/boards/arduino-star-otto(実際には、10月現在、まだ利用できません、「Coming Soon」)。

これら二つのボードからありますのでご了承ください他の Arduinoの組織。


0

IoTプロジェクトで試行錯誤を繰り返した後、ESP8266(およびArduino Uno&Nano)よりもESP32で作業することをお勧めしますただし、プロジェクトの範囲をよく知っている場合除きます。

ESP8266と比較したESP32の利点:

  1. より大きなRAM、ESP8266:32KBの命令と80KBのユーザーデータ、ESP32:520KB

私はIoTプロジェクトに取り組んでおり、証明書を使用してGCPでデバイスを認証しようとしています。GCPのルート証明書は既に約120 KBであるため、ESP8266に適合しません。代替手段もありますが、それは事態を複雑にします。

  1. ESP32にはBluetoothがあり、ESP8266にはありません

IoTプロジェクトのある時点で、bluetoothを使用してデバイスを電話に接続することをお勧めします...

  1. ESP32の一部のバージョンには、カメラ用の統合ポートがあります(ESP32 CAMを検索)

ESP8266を使用すると、確実にカメラを使用できますが、これにはより多くのコーディングと配線が含まれ、パフォーマンスが低下する可能性があります。

最後に、Arduino Uno&Nanoでwifiチップを配線しようとしましたが、ATコマンドにいくつかのバグと問題が発生しました。したがって、すべてが統合されているため、ESP32に非常に満足しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.