チャコメーター1 表示機能4 GPIO

コロナ禍の冬、室内の湿度をチェックする機会が増えています。
チャコメーター1に7セグLEDを付け、直接湿度を読めるようにします。

前回、Fritzingで回路を設計しました。
回路を組む前に、Tinker BoardのGPIOの練習をしたいと思います。

回路

Pin11(io=164)にLEDを接続しました。

テストプログラム

なぜかPython3でGPIOを駆動できません。
色々調べて原因がわからなかったのですが、Python2で試すとすんなり制御できてしまいました。
特に拘りも無いのでPython2で組みました。

DBから最新のデータを読み込んで、電池電圧が4.8V未満の場合にLEDを点灯します。

import ASUS.GPIO as GPIO
import time
import sqlite3
import datetime

pin=164
GPIO.setmode(GPIO.ASUS)
GPIO.setup(Pin, GPIO.OUT)
dbname  = 'esp32-3a.db'
c=0
while 1:
  con = sqlite3.connect(dbname)
  cur = con.cursor()
  cur.execute('SELECT * FROM BME280 order by timestamp desc limit 1')
  val = cur.fetchone()
  print 'Humid=', val[3]
  print 'Vcell=', val[1]
  cur.close()
  con.close()
  if val[1] < 4.8:
  	GPIO.output(Pin, GPIO.HIGH)
  	print 'H'
  else:
  	GPIO.output(Pin, GPIO.LOW)
  	print 'L'
  time.sleep(600);
  c=c+1

プログラム実行

電池電圧は4.8Vを切っているので、LEDが点灯しました。
湿度値もちゃんと読めています。

f:id:kainuma-k5:20210205221643p:plain
DBの中味
f:id:kainuma-k5:20210205221936p:plain
出力リスト(console)
f:id:kainuma-k5:20210206153810j:plain
点灯した青LED