著者:麻生 二郎
センサーをつないで状態を監視するだけのIoT(モノのインターネット)を
始めるには、小型コンピュータボード「Raspberry Pi」は高機能かつ高価で
す。そこで1000円以下で購入できるマイコンボード「ESP32 ESP-32S」を使
って、簡単なプログラムと共にI oTを始めてみましょう。
シェルスクリプトマガジン Vol.66は以下のリンク先でご購入できます。![]()
![]()
図2 ネットワーク接続プログラム(wlan.py)
import network
wlan_if = network.WLAN(network.STA_IF)
wlan_if.active(True)
wlan_if.ifconfig(('192.168.1.100', '255.255.255.0', '192.168.1.1', '192.168.1.1'))
wlan_if.connect('SSID', 'パスワード')
wlan_if.inconfig()
図3 簡易サーバーを立ち上げるプログラム(webserver_test.py)
import picoweb
app = picoweb.WebApp(__name__)
@app.route("/")
def index(req, resp):
yield from picoweb.start_response(resp)
yield from resp.awrite("こんにちは")
app.run(debug=True, host = "192.168.1.100")
図12 Webブラウザから湿温度・気圧を取得するプログラム(web_bme280.py)
import picoweb, machine, bme280
i2cpin = machine.I2C(scl=machine.Pin(22), sda=machine.Pin(21))
bme = bme280.BME280(i2c=i2cpin)
app = picoweb.WebApp(__name__)
@app.route("/")
def index(req, resp):
bme280values = bme.values
yield from picoweb.start_response(resp)
yield from resp.awrite("気温:" + bme280values[0])
yield from resp.awrite("|湿度:" + bme280values[2])
yield from resp.awrite("|気圧:" + bme280values[1])
app.run(debug=True, host = "192.168.1.100")
図16 明るさによってライトの点灯を促すプログラム(web_cds.py)
import picoweb, machine
adc = machine.ADC(machine.Pin(36))
adc.atten(machine.ADC.ATTN_11DB)
app = picoweb.WebApp(__name__)
@app.route("/")
def index(req, resp):
csdvalue = adc.read()
yield from picoweb.start_response(resp)
if csdvalue < 2500:
yield from resp.awrite("明かりをつけましょう")
else:
yield from resp.awrite("十分な明るさです")
app.run(debug=True, host = "192.168.1.100")