11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【電子工作】ESP-01(ESP8266)やESP32で取得した情報をLINEに通知する方法!

Arduinoなどのマイコンボードで無線通信をする用途で使えるモジュールにESP-01(ESP8266)があります。

ESP-01は非常に小型なWi-Fiモジュールとなり、Arduinoなど無線機能を標準で持たないマイコンボードと接続してその機能を持たせることができます。
安価ですが小型なモジュールで非常に便利に使えます。

【Arduino】Wi-FiモジュールESP-01を使いArduinoをスマホ「RemoteXYアプリ」で操作してみる![ESP8266(ESP-01)/HC-05/HC-06など]
MEMO
ESP-01は技適が取得されていないモジュールなので、その使用には注意が必要です!

そしてESP-01が面白いのは、Arduinoなど無線機能を持たないマイコンボードと接続するWi-Fiモジュールとして使う以外にESP-01にArduinoのスケッチを書き込み単体で動かすことも出来るところです。
Wi-Fi機能を持ったミニArduinoとして動かすことが出来るということですね!

このように温湿度センサーを取り付け単体で動作させWi-Fi経由で数値をモニターするなんて事もできます。

上記動画では温湿度センサーDHT11で取得した温湿度データをWi-Fi接続によりスマホに送り表示させています。

ESP8266(ESP-01)にスケッチを書き込みスマホアプリからWi-Fi経由で動かしてみる!

ESP-01は非常に小型なモジュールですが4本のGPIO端子(入出力端子)が使えます。
DHT11で1本、サーボモーターの制御で1本、LEDの点灯で1本の計3本のGPIO端子を上記動画では使っていますが、まだあと1本使うことも出来ます。
アイデア次第でいろんな用途で便利に使えるWi-Fiモジュールだと思います。

そして上記動画を見た方から、DHT11で取得した温湿度のデータをTelegramに送れないかというご質問を頂きました。
Telegram?ちょっと私は使ったことがないのですが、調べてみるとLINEのようなチャットアプリのようですね。
日本ではLINEの人気が高いためTelegramはあまり認知されていないようです。(海外ではメジャーなのかな?)

という事で今回はESP-01(ESP8266)やESP32などのボードで取得した情報をWi-Fiを経由してLINEに通知を送る手順をご紹介したいと思います。

ESP-01(ESP8266)やESP32で取得した情報をLINEに通知する方法!

Wi-FiモジュールESP-01(ESP8266)にスケッチを書き込み、Wi-Fiを経由してLINEに通知する事を例に進めていきます。
ESP32でも同様の手順で行うことが出来ます。

今回ESP-01を例に使ったのは非常に小型なモジュールだからです。
テストで動作させる以外に小型なモジュールなので実際に何かしらの用途で使う場合にも便利だと思います。

DHT11で取得した温湿度データをLINEに通知する例では、このようなESP-01のオプションモジュールとして販売されているDHT11が内蔵されたものもあります。
これを使うと、ESP-01を接続してあとは電源さえ用意できればすぐに実用品として使うことも出来ます。

ESP8266 ESP-01 シリアルワイヤレストランシーバ+ DHT11温度湿度モニタスマートホームIOT for Arduino DIYキット用
UIOTEC

今回温湿度センサーDHT11で取得した値をLINEに通知する簡単な例を見ていきますが、他のセンサーを使ったりスイッチを押すとLINEに通知するなど簡単に応用する事が出来るかと思います。

今回の手順はこのようになります!

LINEに通知を送る手順!
  1. LINE Notifyから『トークン(認証キー)』を発行する
  2. ESP-01(ESP8266)やESP32にスケッチを書き込む
  3. 接続&動作確認

【手順①】LINE Notifyから『トークン(認証キー)』を発行する

LINEにメッセージを送る(通知する)には、LINE Notifyからトークン』と呼ばれる認証キーを発行する必要があります。

LINE Notifyは外部WebサービスからLINEのメッセージを送るためのLINE公式のサービスとなります。
マイコンで取得した情報をWi-Fiを経由してLINEに通知する場合、このトークンと呼ばれる認証キーが必要となってきます。

それではまずLINE Notifyサイトにアクセスしてトークンの発行を行います。
PCからLINE Notifyサイトにアクセスします。

参考 LINE NotifyLINE Corporation

画面右上の[ログイン]をクリックし、メールアドレスとパスワードを入力しLINEにログインします。

ログインが出来たら[マイページ]へ進みます。

[トークンを発行する]をクリックします。

ここから通知される時の設定をします。
まずトークン名はLINEから通知される時に表示されるものです。
何でもいいのですが分かりやすいように今回は[ESP32]という名称にしておきます。

こんな感じで表示されます。

次にトークルームを選択します。
LINEで使っているクループを選択する事も出来ますが、今回は自分だけが受信出来ればいいので[1:1でLINE Notifyから通知を受け取る]を選択しました。

以上問題なければ[発行する]ボタンをクリックするとトークンが発行されます。
発行したトークンは、次のスケッチで使用するのでコピー or メモしておきます。

MEMO
表示されたトークンは再度発行する事が出来ないので、この画面をキャプチャー等しておくといいと思います!

発行したトークンは[連携中サービス]として表示され確認することができます。(複数発行する事も可能です!)

MEMO
発行したトークンを忘れてしまった場合は再発行が出来ないため、[解除]ボタンを押して連携を解除して同様の手順で再度トークンを発行すれば問題ありません!

【手順②】ESP-01(ESP8266)やESP32にスケッチを書き込む

次にスケッチの書き込みです。
ESP-01へのスケッチの書き込みは、USB-シリアル変換モジュールを使いこのように接続します。

ESP-01は電源投入時のGPIO0端子の状態により[プログラム書き込みモード]と[プログラム実行モード]に別れます。
接続に関して詳しくはこちらの記事も参考にして下さい!

【Arduino】小型Wi-FiモジュールESP8266(ESP-01)の基本的な使い方!スケッチの書き込み&モジュール単体で動かす基本的な方法!

接続が出来たらスケッチの書き込みです。
DHT11で取得した温湿度の値をLINEに5秒間隔で通知する簡単なものを作ってみました。

スケッチで修正(追記)する部分が3ヶ所あります。
上記スケッチの[Wi-Fi SSID]と[Wi-Fiパスワード]部分は自宅のWi-Fi環境で使用しているものを入力して下さい。

またこの部分は先程LINE Notifyで発行したトークンを入力します。

スケッチの修正が出来たらライブラリのインストールです。
温湿度センサーDHT11用のライブラリ[DHT.h]とLINE通知で使用する[ESP-Line_Notify.h]ライブラリを使っているので事前にインストールしておきます。

ライブラリのインストールは通常通り[スケッチ]から[ライブラリをインクルード]→[ライブラリを管理]から行います。

名称で検索すると見つかると思います。

インクルードするライブラリのインストールが完了したらスケッチの書き込みです。
ESP-01への書き込みは、ボードを[Generic ESP8266 Module]を選択します。

ESP8266のボード情報のインストールがまだの方はこちらの記事も参考にして下さい!

【Arduino】小型Wi-FiモジュールESP8266(ESP-01)の基本的な使い方!スケッチの書き込み&モジュール単体で動かす基本的な方法!

またよく使われるESP-WROOM-32(ESP32-DevKitC-32D)では[ESP32 Dev Module]ですね。

【手順③】接続&動作確認

スケッチの書き込みが完了したら、接続して実際に動かしてみます。
ESP-01とDHT11との接続はこのようになります。

温湿度センサーDHT11の接続方法や使い方に関してはこちらの記事も参考にして下さい!

【Arduino入門編㉑】温湿度センサー(DHT11)を使い温度と湿度を計測する!

また先述のようにESP-01と接続して使えるオプションモジュールにこのようなものがあります。
今回の使用用途である温湿度センサーDHT11や電源(3.3Vレギュレーター)、リセットスイッチが内蔵されたモジュールです。
これを使えばESP-01を差し込むだけで使えます。

MEMO
上記モジュールではDHT11はESP-01のGPIO2端子に接続されています!

またESP-WROOM-32でも同様に接続して同スケッチで動かすことができます。

DHT11から取得した温湿度のデータがLINEに5秒おきに通知されていますね!

今回ご質問頂いた温湿度センサーDHT11から取得した値をLINEに通知する例を見ていきましたが、スイッチが押されたら通知するなど簡単にスケッチの修正は出来るのでいろいろと試してみると面白いと思います。

最後に!

ESP-01やESP-WROOM-32を使って取得したデータをLINEに通知する例を見ていきました。

ESP-01は非常に小型なモジュールで、今回使った温湿度センサーが搭載されたオプションモジュールなども多数販売されています。
あとは電源さえ用意できれば小型サイズですが単体で動かすことが出来るので実用的かもしれませんね。

今回5秒おきにLINEに通知する作例を見ていきましたが、設定した湿度以上になるとLINEに通知するなど普段趣味で使っている3Dプリンタ用フィラメントの湿度管理用として便利なものが作れそうな気がしますが・・・

ESP-01(ESP8266)やESP32を使ってLINEに通知すること自体は非常に簡単なので、アイデア次第でいろいろと遊べそうですね!

ESP8266 ESP-01 シリアルワイヤレストランシーバ+ DHT11温度湿度モニタスマートホームIOT for Arduino DIYキット用
UIOTEC

2 COMMENTS

ko

23行目でいつもエラーが出て、’line’ does not name a type となるのですが何故でしょうか。

返信する
東京バード

私の環境(Mac)で試してみましたが、特にエラーは出ないようです。
スケッチ的には問題ないと思いますが・・・

「’line’ does not name a type」が出る原因はいろいろとあると思いますが、Macだと問題ない場合でもWindowsを使うとファイル名の大文字と小文字が区別されないようなことがあります。
例えば、スケッチのファイル名が[test.ino]なのにそのファイルが入ったフォルダ名が[TEST]だとこのエラーが出ることがありました。

まずこのあたりが思い浮かびましたが・・・。

返信する

コメントを残す