2015年07月12日

Arduino用Wifi

DSC01256.jpg

またしても、Arduinoネタです。
Arduino用のWifi基板(シールド)は非常に高くWifiを実験するにはコスト的に敷居の高いものとなっていました。一方で海外ではESP8266というICを使用した基板が非常に廉価で販売されており、使用例も沢山見つけることができています。
しかし、これらは技適を取得していないため国内での使用は問題がありました。
今年に入って技適の審査中である情報が散見されるようになっていましたが、ついに発売になり、当局も早速入手し実験してみました。
この基板はCEREVOというところが販売開始したもので、販売開始は7月7日で初日に注文し入手しました。
基板そのものはまだ在庫があるようですが、変換基板付きはすでに品切れのようです。
検索するとアマゾンでも、いくつか販売しているところが見つかり価格も殆ど同じくらいです。

入手して色々検索で調べていて、驚きました。
なんと、このESP8266はArduinoIDEで直接プログラム開発ができつまり、いわゆるArduino基板(UNOやNANOなど)は必要ありません。
Prominiやaitendoのあちゃんでいいのと同じように書込みにUSBシリアル変換が必要なのと、一般的に使用しないRTSの信号が必要になるのが課題ではありますが。

DSC01257.jpg

DSC01259.jpg

入手した基板の半田付けも終わったので、書き込み用のUSBシリアル変換基板の改造を行いました。
Prominiやあちゃんでいいのは、先日入手していた変換基板で問題はなかったのですが、RTS信号が必要なためICの端子から直接取り出し、もともと端子として出力されていたCTS端子のパターンをカットし接続しました。
書込みだけだとこれでいいのですが、デバッグするのにシリアルを使用する場合は、このRTS信号とDTR信号を切り離す必要があり、実際にやってみると確かにこの2つの線をはずさないとシリアル通信ができません。
いちいちつけたりはずしたりも不便なのでスイッチ基板を追加しました。

DSC01263.jpg

参考にしたのは、以下のサイトです。
http://tech-blog.cerevo.com/archives/859/
まずこちらで、自宅のWifiと接続できることを確認しました。

http://ashiyu.cocolog-nifty.com/blog/2015/07/esp8266exarduio.html
次にこちらで、ArduinoIDEのスケッチサンプルでWEBサーバー機能を確認しました。
ちゃんと自宅のWifiネットワーク二接続され、WEBサーバーとして動いています。

DSC01262.jpg

最終的には、電池駆動で温湿度データをWifiで送れるようにしたいと思って始めたのですが、温湿度データをシリアルで出力しデータとしてはセンサーとして動作していることは確認できたのですが、WEBサーバーのデータとして送り込むことができていません。この部分が自分で作成しているところなので難儀しています。
今日は時間切れになりました。
しばらく掛かりそうですが、ここがうまく行けばいろんなアプリケーションが作れそうです。
気長にやって行きたいと思っています。



posted by ja6irk at 19:17| Comment(7) | TrackBack(0) | AVR&Arduino
この記事へのコメント
岩永さん、こんばんは。

Wi-Fi経由でデータを集める「リモート・ウエザー・ステーション」が目標のようですが、色々楽しみが広がりますね。 頑張って下さい。
Posted by JA9TTT/1 加藤 at 2015年07月14日 18:56
ブログ見ていただきありがとうございます。
http://ashiyu.cocolog-nifty.com/blog/2015/07/esp8266exarduio.htmlの者です。
HelloServerのちょろ変えでTOUTの値をWebクライアントに返す方法考えてみました(3行の修正)。
そろそろブログに書くことが無くなったので明日の題材にしちゃいます。すでに動作確認と下書きは完了です。明日公開予定です。
PS.今は切れていますがアマチュア無線やってました。
Posted by ashiyu at 2015年07月16日 18:15
加藤さん、こんばんは。
コメントありがとうございます。
結果的にはそういうものになりそうですね!
特に欲しいわけではないのですが、Arduinoの流れで手元にセンサーとして温湿度計があるものですから(笑)
これができれば発展系で色々遊べそうですし。
世に言われるIOTがらみで見てゆくとMQTTとか、更にはまりそうなアイテムが続々と見つかります。
Posted by jn3xby 岩永 at 2015年07月16日 20:01
ashiyuさん、こんばんは。
コメントありがとうございます。
まさか参考にさせていただいたサイトオーナーからコメントいただくとは思ってもいませんでしたので驚いております。
そうですか、TOUTのデータを返す方法が明日公開されるのですね!楽しみにしております。
また、参考にさせてもらいます。
ESP8266について色々検討されているようで、ひとつずつ勉強させてもらいます。
Posted by jn3xby 岩永 at 2015年07月16日 20:05
ashiyuです。
「ISPでArduinoを楽しむ X」拝見しました。
温湿度センサAM2302を使用していて、シリアル通信でデータを取得するのですね。
アナログデータをADCで読み込むのかと思ってました。ちょっと違ってましたね。でもすでにシリアルに読み出せているようなので、取得できた値をTOUTを読み取ったと同じ方法でクライアントに返せば動くとおもいます。がんばってください。
Posted by ashiyu at 2015年07月17日 09:24
ashiyuさん、こんばんは。
早速アップされた情報で書き換えてみました。
簡単にとてもうまくいっています。
目から鱗です。
ご指摘のとおり、温湿度データなのですが、ADCの代わりに変数データを渡してうまくいきました。
handleRoot()の中だけだと温度変化を取り込めてないようなので、LOOPの中でデータをgetして変化を取り込めるようになりました。
ありがとうございました。

Posted by jn3xby 岩永 at 2015年07月17日 20:47
岩永さん、こんばんは
ashiyuです

上手く動作しているようでなによりです。
loop()でデータをgetしておくのは気がつきませんでした。

こちらこそありがとうございました。
Posted by ashiyu at 2015年07月17日 21:17
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/151834997

この記事へのトラックバック