meideru blog

家電メーカーで働いているmeideruのブログです。主に技術系・ガジェット系の話を書いています。

簡単すぎて神。ESP-WROOM-02でHTTP通信をやってみた

      2018/10/29

IoT

世間では「IoT(Internet of Things)」というワードが話題になっています。

IoTとは、ありとあらゆるものがインターネットにつながる仕組みのことです。

今日はIoTに関する記事です。

ESP-WROOM-02の開発ボードのWi-Fi機能を試しに使ってみました。

ESP-WROOM-02とは

ESP-WROOM-02は、Arduinoと互換を持つマイコンを搭載したWi-Fiモジュールです。

ESP-WROOM-02の開発ボード
ESP-WROOM-02の開発ボード

マイコンなので当然、GPIOを搭載しています。

ということは、このWi-Fiモジュールに直接、センサなどをつげて、そこから得た情報をネットワーク経由でどこかに飛ばせちゃうというわけです。

こんな便利な電子部品はないですよねw

プログラムの書き込みはArduino IDEから行うことができます。

TCPやUDP、HTTPといったプロトコルのライブラリも用意されているので、簡単にネットワークプログラミングを行うことができます。

HTTP通信でPOSTを試してみた

HTTP通信でPOSTを試してみました。

全体的な流れは、ESP-WROOM-02がシリアル通信で受け取った文字列をサーバにPOSTして、サーバ側は受け取った文字列をターミナルに表示します。

サーバサイドはPythonで書きました。いわゆるREST APIを提供する感じになっています。

ESP-WROOM-02のプログラム

ESP-WROOM-02(クライアント)のプログラムです。

ssidとpasswordとhostは個人情報のため伏字にしてあります。

書き込みはArduino IDEから行えるので、とても簡単です。色々なサイトで紹介されているのでググってみてください。

 

サーバーサイドの作業

以下はPythonで書いたサーバサイドのプログラムです。

POSTを受信すると、受けとった文字列をターミナルに表示するようになっています。

結果

“hello”と送信してみました。以下が実験結果です。

ESP-WROOM-02のシリアルモニタ

Arduino IDEのシリアルモニタからhelloと送信しました。

 

ESP-WROOM-02のテストサーバサイドのターミナルからhelloを確認できましたね!

成功です!

まとめ

いかがでしたでしょうか?

今回はクライアント側でHTTP通信によるPOST、サーバ側でREST APIを提供するようなパターンのプログラムを試しました。

このパターンを応用すれば、色々なIoTガジェットを作れることに気づきましたか?

例えば、温度センサをつないで遠く離れた場所の気温を取得するとか。

あるいはドアにセンサをつけて誰かが出入りするたびにLINEに通知が飛んでくるようにしたりとか。(この場合はLINE APIも絡んでくる)

とにかく無限に応用できます!

私も何か作ってみようと思います!

 - 技術系