ESP-01/ESP-01S用DHT11モジュール(もう少し続き)

先日からの続き。もう少し、DHT11モジュールの動作を検証中。

検索してると今はDHT11よりDHT22やDHT12を使ってる人が多いかな、と言う印象。

そのうちM5Stackにも接続して遊ぼうかなと思ったけど、既にDHT12のプロトモジュールが出てるので、今さらDHT11はあんまり意味なさそう。

AliExpress.com Product - M5Stack Official Experimental Proto Board Set included DHT12 Bus Socke Grove Cable for ESP32 Basic Kit & Mpu9250 Kit for Arduino

そのうちやるかもしれないけど、とりあえず引き続き、ここではESP-01(S)を使ってデータを取ってみます。

 

www.esp8266learning.comという、その名の通りESP8266を使って色々やってるブログで、thingspeak.comにデータを転送する方法があったのでこれを参照して動作確認してみます。

 http://www.esp8266learning.com/dht11-sensor-data-to-thingspeak-using-a-wemos-d1.php

上記で使ってるのはWemos D1だけど、ESP-01でも行ける。

データを送ればthingspeak.com側でグラフにしてくれて、便利。

 

thingspeak.comへの登録は、名前とメールアドレスだけで大丈夫。

 https://thingspeak.com

メールが来て登録確認、その後さらにパスワードを登録して完了。

大量にデータを送らないなら、基本無料で使えます。

 

後で調べたら、日本語でわかりやすく登録方法がまとめられてるところがありました。

参考になります。

 http://iwathi3.hatenablog.com/entry/Data-to-Graph-ThingSpeak

2年ほど前の記事ですが、現在もこれで大丈夫でした。

 

上記を参照してアカウントを取っておき、新しいチャンネルに温度と湿度のフィールドを作っておく。

さらに自分のapi keyの文字列を確認。

esp8266learning.comのページにあるスケッチをArduino IDEにコピペして、多少書き換えます。

ここはよくある編集。

 String apiKey = "thingspeak.comで取得したapi key";
 const char* ssid = "自分ちのwifiの名前";
 const char* password = "自分ちのwifiのパスワード";
 const char* server = "api.thingspeak.com";  //ここはそのまま

これに加えて、さらに10行目はD2を
 #define DHTPIN 2

にしておきます。

あと使うDHTのライブラリはAdafruitのDHTライブラリなんで、入ってるかどうか一応確認しておく。

 

自分の環境ではエラーもなく無事にESP-01に書き込み完了できました。

しばらく見てるとthingspeak.comにデータ転送され、グラフが出来上がるはず。

しかしこっちの湿度はともかく、

温度がいきなり上がり過ぎ。

これ絶対、ESP-01本体の熱を測ってるでしょ。

モジュールがセンサーの真上にESP-01が来る形になるので、しかたないと言えばそうなんだけど。

 

それでもちゃんとしたデータが取れることは確認できたので満足。

安いモジュールだけど、使えないと悔しいので。

thingspeak.comのアカウントもわざわざ取っちゃったので、別のモジュールとかで有効活用したい。

Sponsered Link

ESP-01/ESP-01S用DHT11モジュール(続き)

まだ途中な感じだけど、やってることメモ。

 

DHT11モジュールでもうちょっとキレイな感じでデータを表示させたいな、と思って調べてたことの続き。

ESP-01とDHT11で検索すると、すぐにわかりやすいページが引っかかる。

 https://www.elec-cafe.com/esp8266-temperature-humidity-webserver-with-a-dht11-sensor/

上記のページではスケッチをコピペするだけで良さそうだったので、さっそく参考させていただきました。

 

しかしそのままコンパイルしたところ、スケッチがエラーになる。

難しいエラーではなく、DHT11.hがないと言われるだけ。

すでにインストールしているDHT11用のライブラリでは使えないようだ。

これはどこかからライブラリを拾ってくるのではなく、上記のブログで専用に使っているものを使えばよかった。

下記の、「DHT11 Library」からダウンロードできました。

 https://www.elec-cafe.com/arduino-wireless-temperature-lcd-display-nrf24l01-dht11/

これでエラーなくコンパイルと書き込みができた。

 

動作も問題ないようで、Arduino IDEのシリアルモニタ に出ていたIPアドレスを入力してWebブラウザでアクセス。

…が、アクセスできない。

どうもデータかwifiが重くて、接続しようとしても接続できない感じ。

(ほっとくと接続がタイムアウトになる)

もうちょっとシンプルに表示させたほうがいいんだろうか。

このプログラムでも十分シンプルに見えるんだが。

 

それと書き込みはUSBのモジュールで簡単にできても、その後DHT11モジュールで5Vを確保するのは結局こんな状態になっている。

結局ブレッドボードを使ってるという状態。

まだ改善が必要なところは多いな…。

Sponsered Link

ESP-01/ESP-01S用DHT11モジュール

今度はESP-01用DHT11モジュールの件。こっちね。

AliExpress.com Product - ESP8266 ESP-01/ESP-01S DHT11 Serial Temperature Humidity Sensor Transceiver Receiver Module for Arduino NodeMCU Wireless WIFI

せっかく購入したのでデモぐらいは試してみようと思う。
梱包がいいかげんで心配だったけど、袋から出した感じでは問題なさそうだった。

しかしなんか大きめだと思ったら、このEPS-01、捨て基板が付きっぱなしだった。

使うのには問題ないんで、このままでいいか。


公式(?)の販売店は以下っぽい。
 https://www.elecrow.com/esp8266-esp-01-esp-01s-dht11-temperature-humidity-wifi-nodemcu-module-for-arduino.html
このリンク先にArduino IDE用のスケッチが置いてあった。
 https://github.com/IOT-MCU/ESP-01S-DHT11-v1.0
これを使えば遊べそうだ。
上記のリンクからデータをダウンロードして解凍すると、スケッチとともにライブラリも付いていた。これは助かる。

 

その前に、もしESP8266用の設定がArduino IDEになければ、追加しておく必要がある。
いつも参照させていただいている、mgo-tecさんのページが親切でわかりやすいです。
 https://www.mgo-tec.com/esp8266-board-install01-html

自分の環境ではインストール済みだったけど、ボードマネージャーで確認したらバージョンが古かったのでバージョンアップしました。

最近ESP8266は全然使ってなかったから、放置してたもんなあ。

 

その後「Arduno_DHT11.ino」をコンパイルするんだど、ちょっと注意。

14、15行目は書き直す。

 const char* ssid     = "自分ちのwifiの名前";
 const char* password = "自分ちのwifiのパスワード";

あとは16行目になぜか「*/」が入っていて、これがエラーで引っかかった。削除してOK。

ライブラリ(Adafruit_Sensor.zipとDHT.zip)は二つとも取り込んでおく。

 

書き込みの時は、先日書いた通りESP-01のIO0とGNDをショートさせておく。

(書き込み終わったら外す)

今回は取り急ぎ、USBモジュールにタクトスイッチを裏に付けてみた。

 

無事書き込まれて動作するようになると、シリアルポートにサーバーが動き出したことと、IPアドレスが表示される。

ここに記載されているIPアドレスをwebブラウザで開くと、

「Hello from the weather esp8266, read from /temp or /humidity」

と出てくる。

なのでIPアドレスの後に/tempか/humidityを付けると、温度と湿度がそれぞれ表示される。

なんか数字がすごいことになってたけど。「F」が付いてたから、華氏なのかな。

 

無事動くことが確認できたので、次は表示をちゃんとさせたい。

この辺りのカスタムはいろんな人がやってるので、それを参照していじってみます。

Sponsered Link

EPS-01&EPS-01S用USBモジュール(追記)

先日購入したEPS-01用のモジュールの件で、わかったこと追加。

これって素人(?)が手を出しちゃダメなやつだった。

 

そのままUSB接続して、Arduino IDEから書き込みしようとしたらどうしてもエラーになる。

例えば、

 error: failed reading byte

みたいなエラーが出てくるんじゃないかと思う。

最初は久々にEPS-01を扱うから何か間違えたかなと思ったけど、単にUSBモジュール自体が原因だった。

 

改めて購入先のレビューを見ると、

「made a reset- and gpio0-reset button extra on this board」

とか

「It's working well. For programming you have to connect GPIO0 to GND. It's worth to do programming function by using switch.」

と書かれてている。

最初はなんのこっちゃと思ったけど、以前ESP-01で遊んでた時のことを思い出してすぐ理解できた。

 

要するにEPS-01は書き込み時にGPIO0をGNDに接続する必要がある。

このモジュールではそれができないので、書き込みに使用する際には自力でちょっとしたスイッチを付けないと使えない、ということだった。

検索していたら、下記のフォーラムに改造後の画像があった。

 https://community.blynk.cc/t/esp-01-firmware-for-arduino-use/19557/22

スライドスイッチならこっち。

 https://arduino.stackexchange.com/questions/30465/esp8266-programming-using-esp-01-to-usb-converter

 

しかしみんな同じことで困ってるんだな。解決方法がすぐに見つかるのはありがたい。

このモジュール、もともとESP-01にデータ書き込み用とは明記されていないし、値段が1ドルするかどうかという安さなので、まあこんなもんかなと言う感じ。

改造が必要とわかっても、AliExpressのフィードバックを見ると星5つ付けてる人ばかりだし。

 

安いとはいえこのまま使えないのは悔しいので、自分もどこかに落ちてるスイッチをくっつけて、改造して使ってみることにします。

(スイッチとかの電子部品、どこにしまい込んだかな…)

Sponsered Link

EPS-01&EPS-01S用モジュール

最近買い物メモばっかり。

実は先月AliExpressのセールで衝動買いしたものが、じわじわ届きつつある。

(AliExpressのセール自体年に数回あるようになってきて、個人的に軍資金が非常にまずい)

でも今回買ったのはそれほど値段が高いものではなく小さい基板類ばかりで、スマホとか数十ドル以上のSBCには手を出してない。

 

その時に購入した一つ、ESP-01シリーズ用のUSBモジュール。

下の画像は参考用、実際の購入先はセールでもっと安かった。

AliExpress.com Product - ESP01 Programmer Adapter UART ESP-01 Adaptaterr ESP8266 CH340G USB to ESP8266 Serial Wireless Wifi Developent Board Module

ずっと前にESP-01をブレッドボードに刺しやすくするアダプタを購入して結構重宝してたんだけど、これは直接USBに接続できてさらに便利そう。

見つけてすぐに購入しようとしたんだけど一つ1ドルもしないもんだから、なんか申し訳なくてついでに別のモジュールも一緒に購入。

 

それがこれ↓なんだけど、これでプチプチ封筒から取り出した直後の状態。

梱包された袋の上からESP-01を挿すとは。なかなか面白いことをやってくれる。

これで壊れてたら文句言ってたけど、問題なさそうなのでまあ良いか…。

 

このモジュールは定番のDHT11、温度と気温のセンサーが付いたもの。

これもESP-01がセットになって2ドル程度なので、トータル3ドル程度で手に入った。

もちろんセール中だったので、普段よりちょびっと安かったのは確か。

DHT11のモジュールはついでに購入したものだけど、調べたらプログラムも揃ってて簡単に動作確認できそうなので、さっそく遊んでみる。

Sponsered Link