Ubuntuでタイムゾーン設定

WebArena上のVPSで動かしているFlaskのサイトをよく見ると、自力でグラフの横軸を出しているところで、時刻が9時間ほど遅れているのを発見しました。たぶん、これはタイムゾーン設定だということで、これを修正することにしました。

root@i-xxxxxxxx:~# date
Tue Aug 18 14:52:27 UTC 2020
root@i-xxxxxxxx:~# timedatectl 
Local time: Tue 2020-08-18 14:52:33 UTC
Universal time: Tue 2020-08-18 14:52:33 UTC
RTC time: Tue 2020-08-18 14:52:34
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
root@i-xxxxxxxx:~# timedatectl set-timezone Asia/Tokyo
root@i-xxxxxxxx:~# timedatectl 
Local time: Tue 2020-08-18 23:52:56 JST
Universal time: Tue 2020-08-18 14:52:56 UTC
RTC time: Tue 2020-08-18 14:52:57
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
root@i-xxxxxxxx:~# date
Tue Aug 18 23:53:02 JST 2020
root@i-xxxxxxxx:~#

ということで、無事にタイムゾーンをJSTに設定しました。

ESP32でSmartConfig

ESP8266のSmartConfigのサンプルをそのままESP32で動かすと、上手く動作しません。簡単に言うと、一度SmartConfigでSSID/パスワードを設定しても覚えてくれませんので、毎回設定しなければなりません。

で、調べてみると、ESP32ではこちらの記事のように設定を記憶する不揮発領域の処理は別処理になっているようです。参考にさせていただいて、忘れないようにしてみます。

“ESP32でSmartConfig” の続きを読む

ESP8266をディープスリープモードで動かしてみた

電池で動かす&自己発熱の抑制のため、こちらの記事を参考にさせていただいて、ESP8266をディープスリープモードで動かしてみました。

自作のESP8266ボードは回路自体は昔からディープスリープには対応していたので、ソフトウェアだけの修正で動作しました。(注:回路図上、電池電圧の測定や、ソフト・パワーオフの回路、ADコンバータやEEPROMなどもありますが、これらは搭載していません)

ソフトウェアは、当初はESP8266上でNTPクライアントを動作させて時刻をセットでMQTTサーバに送信していましたが、NTPでの時刻調整に7秒位かかる(=その分、電力消費する)ので、NTPクライアントの動作をやめて、サーバ側でデータを受信した時刻を記録するよう、改めました。(実際の作りとしては、ESP8266から時刻の情報がなければ、サーバ側の受信時刻をデータにつけるようにしています)

その上で、ESP8266側は電源投入後、WiFi接続ができたら、すぐにデータを送信して、ディープスリープに入るようにしました。

ESP8266とBME280は2セットに増やしてあります。時間軸の左半分がディープスリープ適用前、真ん中少し右がオフセットで温度が大きい方(グラフに直線区間がある方)のみディープスリープを適用、右端は2台ともディープスリープを適用しています。
ディープスリープ適用により、温度がクロスしていますので、自己発熱の影響が少なくなったものと思いますが、2台とも適用することにより、オフセットはほぼ同じ状態に戻りましたので、おそらくBME280の個体差なのではないかと思います。

肝心の消費電流は・・・図っていません。
電池化も考えていますが、レギュレータが3.15Vくらいで動作しているので、電池電圧をどうしようか考えどころです。(1.2V×3=3.6Vではやや低いので・・・)

あと、グラフも個体ごとに色をつけたいところですね。

ESP8266で収集したデータを表示させる(chart.JS編)

CanvasJSを使った表示は簡単で良かったのですが、ホビー利用でもメールで登録(だっけか?)がいるということが作ってからわかりました^^;。で、できるだけライセンスに縛られたくないので、chart.JSで作り直してみました。

正直、ちょっと触って使う分にはCanvasJSの方が使い勝手はいいです。サンプルもたくさんあるし。

“ESP8266で収集したデータを表示させる(chart.JS編)” の続きを読む

ESP8266でMQTTクライアントを動かす(3)

MQTTでデータが送信できるようになりましたので、何かデータを送ってみます。

ここではとりあえずBME280を接続して温湿度気圧のデータを送ってみることにします。

すでにたくさんの方が行われているのですが、今回はこちらのページを参考にさせていただきました。回路としても使用したセンサの基板は異なりますが、センサ自体はBME280ですので、同じ結線です。

次にソフトウェアですが、こちらも同ページを参考にさせていただきました。よって、ライブラリはこちらのものを利用させてもらいました。

“ESP8266でMQTTクライアントを動かす(3)” の続きを読む