RP2040-ZeroとWaveshare Pico-LCD-1.3で空気環境表示
実践IOTハウスでは
部屋毎のRaspberry Piで空気環境データーを常時収集と監視できるようにしている
必要に応じてAlexaに温度を聞いたり、Raspberry Pi自身で喋らせている
今回はRP2040-ZeroとWaveshare Pico-LCD-1.3でRaspberry Piが収集したデーターを常時表示できるようにした
右が10年前のRaspberry Pi今も現役のUSBへRP2040-Zeroを接続、時計と空気環境表示
Raspberry Piで下記コードを10分毎に起動している
Web UIで自動作成されたスクリプトに追加処理を書いているので分かりにくいと思うが
要は自身の空気環境データーをpeporp2040rwctlコマンドで送信しているのと23時55分に時計セットしている、それとLCD焼け保護の為、10秒毎に表示位置の変更と消灯を行なっている
$ cat /www/remote-hand/tmp/auto_act10
#!/bin/bash
if [ ENABLE = "DISABLE" ];then
exit
elif [ "-1" != -1 ];then
[ -e /www/remote-hand/tmp/.di_read_data ] && . /www/remote-hand/tmp/.di_read_data
[ -z "${di[-1]}" ] && exit
[ "${di[-1]}" = "-1" ] && exit
[ "${di[-1]}" != "-1" ] && exit
fi
if [ 16 -gt 7 -a 16 -lt 14 ];then
/usr/local/bin/pepoirkitpost 3
elif [ 16 -gt 13 -a 16 -lt 17 ];then
DIR=/www/remote-hand/tmp
if [ $(date +%H%M) -eq 2355 ];then
NOW=dt$(($(date +%s) + 2))
peporp2040rwctl $NOW 19 500
fi
IOT001AIR=$(cat /$DIR/.gpiodi_read_data)
TEMP=$(echo $IOT001AIR |awk 'BEGIN{FS=","};{printf $2}')
HUM=$(echo $IOT001AIR |awk 'BEGIN{FS=","};{printf $3}')
PRES=$(echo $IOT001AIR |awk 'BEGIN{FS=","};{printf $4}')
IAQ=$(echo $IOT001AIR |awk 'BEGIN{FS=","};{printf $6}')
IAQ_STATUS="Good"
if [ $IAQ -lt 51 ];then
IAQ_STATUS="Good"
elif [ $IAQ -lt 101 ];then
IAQ_STATUS="Nor"
elif [ $IAQ -lt 151 ];then
IAQ_STATUS="L_bad"
elif [ $IAQ -lt 201 ];then
IAQ_STATUS="Bad"
elif [ $IAQ -lt 301 ];then
IAQ_STATUS="V_bad"
elif [ $IAQ -gt 300 ];then
IAQ_STATUS="Worst"
fi
MSGTMP=$(echo -n "strTemp:${TEMP}C_Hum:${HUM}%_Pres:${PRES}_IAQ:${IAQ}_${IAQ_STATUS}")
peporp2040rwctl $MSGTMP 2 500
# /usr/local/bin/pepotocoshelp 3 1
elif [ 16 -gt 16 -a 16 -lt 27 ];then
/usr/local/bin/peposound 1
elif [ 16 -lt 8 ];then
/usr/local/bin/pepodioctl 16 1
fi
RP2040-Zeroのコード等は以下URL参照してください

https://note.com/kujiranodanna/n/n352edadb1393
以上です


