まえにArduinoでセンサをつないで、1602の液晶に時計とか湿度を表示したりしましたが、そういえば前にOLED液晶を買っていたのを思い出しこちらで試してみました。このOLEDは画面が0.96インチで画面はちょっと小さいのですが、1602タイプの液晶と違い、ものすごく画面鮮明です。また省エネです。このOLED液晶はAdadruitのSSD_1306ライブラリで動くのですが、てっきりカラー液晶だと思っていて、ライブラリからテストを書き込むと黄色と青の表示が2分割されていておかしいなと思っていました。今回試してみて初めてわかったのですが、なんとこのOLEDはもともとモノクロタイプで上部に黄色、下部にブルー表示させるようになっているものと分かりました。ライブラリはESP8266で使うにはESP_Adafruit_SSD1306.hを使います。

どうせ省エネをめざすならば、Arduinoでなくいま話題のESP8266をを使ってみました。しかし今回初めて使ってみて、すごいデバイスですね。Wifiで接続できて、しかも安い。同じような目的のXbeeならば10倍ちかくしますもんね。アナログ入力が1つしかないのが残念ですが、まあこれからすこしするともっと多機能なものがでてくるような気がします。

もうすでに国内でも話題になっていて先人たちがいろんな情報を上げてくれています。そんなに苦労せずに、ArudinoのIDEで自分の慣れている環境が作れました。またいろんなスケッチを上げてくれているので、下記の写真のような表示は製作に2日、スケッチの方は、先人たちが上げてくれているスケッチの切り貼りだけで1日足らずでできました。
DHT11モジュールとRTCはDS3231を使っています。このDS3231はAmazonで205円で、中国からなので10日ほどかかかります。

ESP8266は電源の3.3Vがシビアで特にWifi通信をすると、電源が弱いと不安定になります。100円ショップの9Vアルカリ電池から秋月のTA48M033Fで3.3Vを作っています。単3 4本でも十分動くのですが、省スペースなのでこちらにしました。上部のコネクタはUSBシリアル用のコネクタです、ATMEGA328と違いDTRが必要ないので、PL2303の安いコンバータが使えます。ただし、このUSBコンバータの3.3Vは動くことは動くのですがすごく不安定です。最近の安い互換Arduino-UNOでは3.3VのコンバータでもAMS1117を使ったりしてますので、電源だけこれからとれば、十分動作するでしょう。純正UNOでは動かないそうです。

ESP8266はアップロードするのにGPIO0をGNDに落としたりするのが面倒ですが、まあ動けば書き換えることもないわけで、これが正解かもしれません。
なお温度の℃の表示は1602では
  lcd.print((char)223);
  lcd.print("C ");

SSD1306では
  display.print((char)247);
     display.print("C ");

です。SSD1306はちょっと変な感じがしますけど、、。

DSC03356


ESP8266を購入するときこのESP-07とESP-05を買ったんだけど、ESP-05の方の使い道がわかりません。なにしろスケッチをかくのにGPIOの端子が全くないので、書き込めない。もしかしてこれはATコマンドモードのみでいろいろ設定してWifiの通信モジュールとして使うものなんかな? ファームを最新のものにしたいんだけど、できないです。