6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ESP-32とMicroPythonでCO2センサを読んでみた+α

Last updated at Posted at 2019-02-03

#初めに
ESP32がお好き?けっこう.ではMicroPythonを使ってみるとますます好きになりますよ.

#きっかけ
講義中眠くなるのはCO2濃度が高いからって古事記に書いてあったからとりあえずCO2濃度が基準値超えたらアラートを出して換気を促すSomeThingを作ってみたい.それと温度と湿度も測れるようにして,ついでにWifiのAP立ててWEBから濃度とか見れるようにしたい.

#制作
環境はUbuntu18.04.部品はAliExpressで.

##主に参考にしたところ
https://kokensha.xyz/electronics/try-micropython-on-esp32/
http://ken5owata.hatenablog.com/entry/2017/10/21/003706
##検品
Aliexpressから買ったのでとりあえず検品してみた.
とりあえず,文献が豊富なArduinoとしてのESP32で読んでみた.
以下参考.
https://blog2.creativeflake.com/2017/04/22/オフィス換気のため-co2-センサー作り-ー-arduino-bme280-mh-z19編/
http://toccho.xsrv.jp/2018/05/05/esp-wroom02-mh-z19-measurement/
途中,配線を間違えて2000円と2週間を水泡に帰すところだったが,なんとかUARTで読むことに成功した.MH-Z19の電源電圧が3.3Vじゃ足りなくて困ってたらESP32ボードのVinから5Vが出ていることに気が付けて良かった.
Screenshot from 2018-10-05 22-33-34.png

が,しかし開けてある窓の近くに置いてるのにCO2濃度が高すぎやしないか?と思って調べてみたらキャリブレーションをすればリセットされて400ppmになるらしい.まだやらないけど.

##MicroPythonをESP32へ
さて,いよいよESP32にMicroPythonを入れる時がやってきました.
参考↓
http://ken5owata.hatenablog.com/entry/2017/10/21/003706
適当なコマンドなりソフトでシリアルを覗いたら
Screenshot from 2018-10-05 23-03-16.png

成功してました.(繋いだらリセットスイッチとか押さないとこの画面は出力されない)
エラーが出てるけど気にしたら負け.
##MicropythonでUART
そのままやろうとしたけど,Micropythonでデフォルトのやつ以外でUARTってどうしたらできるんだ?と悩みつつ見つけた救世主↓
https://github.com/micropython/micropython-esp32/issues/78

>>>import machine
>>>u1=machine.UART(1,baudrate=9600,rx=5,tx=4)
>>>b=bytearray([0xff, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79])
>>>u1.write(b)
>>>n=u1.read()
>>>f=n[2]*256+n[3]
>>>print(f)

をすると
1791
と出てきてくれたのでMicropythonでもCO2センサが読めた.

##ディスプレイの実装
###とりあえずArduinoで
情報を表示するのはAliexprerssで買ったSSD1306搭載のOLED.とりあえずサンプルがあるAruduinoとして検品してみた.
参考↓
https://qiita.com/jakalada/items/8f83d07291d984a31633
IMG_20181006_135746.jpg
動いた.

###Micropythonで
https://qiita.com/inachi/items/ceb3e8e12022a7cbdf7b
を参考にやってみた.
ピン配置はSCLが22で,SDAが21にした.
IMG_20181006_143928.jpg
表示はできたようだ.

##温湿度計
DHT22というセンサを使いました.
ライブラリはこれを使いました.
https://github.com/micropython/micropython/tree/master/drivers/dht
使い方はコード読めばわかるはずです.
配線はプルアップし忘れなければ問題ないです.
ついでに不快指数も出してみました.
P_20181222_221229_vHDR_Auto.jpg

##回路
雑ですがこんな感じになりました.
page1.png

いつかこれをユニ基で実装します.

##最後に
BaaSにデータを送ってグラフ化したいのでこんど_threadモジュールを使ってきれいに実装し直します.

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?