電子工作。
これまでArduinoを教わって軽く触れてみたくらいで、まだまだ実用レベルのものを作れてはいない。
M5Stackを知り、練習のために試作中。
現場での活用目的や課題感、参考記事などはこちらのnoteにまとめている。
使用モジュール
以下のセンサを使用している。
- 温度計センサ DHT11
- 土壌水分センサ DFRobot SEN0114
環境構築
こちらの記事にしたがって環境構築を行った。
(Mac OS)
環境構築の流れ(Mac) - Arduino IDEのダウンロード・インストール - USBドライバのインストール - ボードの設定:esp32のボードマネージャのインストール - シリアルポート、他設定の確認 - ライブラリのインポート - スケッチ例を使用してM5Stackに書き込む
ライブラリ
- M5Stack:M5Stackを使う場合は必ずインストール
- DHT sensor library: dhtセンサーを使うために必要
- Adafruit_Sensor:dhtセンサーを使うために必要。 - GitHubから手動でダウンロードし、ArduinoIDEのライブラリフォルダに入れてやる必要がある
スケッチ
スケッチ(コード)はこんな感じ。コピペである。
こちらの記事を参考に
▼M5Stackで温湿度・土壌水分を表示する
#include <M5Stack.h> #include <DHT.h> const int PIN_DHT = 5; DHT dht(PIN_DHT, DHT11); void setup() { M5.begin(); dht.begin(); } uint16_t analogRead_value = 0; void loop() { delay(3000); float humidity = dht.readHumidity(); float temperature = dht.readTemperature(); analogRead_value = analogRead(36); M5.Lcd.clear(BLACK); if ( (temperature > 28) or (analogRead_value < 300) ) { M5.Lcd.fillScreen(TFT_RED); } M5.Lcd.setTextColor(WHITE); M5.Lcd.drawString("M5STACK SENSORS:", 0, 0, 4); M5.Lcd.setTextColor(YELLOW); M5.Lcd.drawString("Humidity:", 0, 30, 4); M5.Lcd.drawFloat(humidity, 0, 0, 60, 4); M5.Lcd.drawString("%", 50, 60, 4); M5.Lcd.setTextColor(GREEN); M5.Lcd.drawString("Temperature:", 0, 90, 4); M5.Lcd.drawFloat(temperature, 0, 0, 120, 4); M5.Lcd.drawString("C", 50, 120, 4); M5.Lcd.setTextColor(BLUE); M5.Lcd.drawString("Moisture:", 0, 150, 4); M5.Lcd.drawFloat(analogRead_value, 0, 0, 180, 4); }