著者:麻生 二郎
センサーをつないで状態を監視するだけのIoT(モノのインターネット)を
始めるには、小型コンピュータボード「Raspberry Pi」は高機能かつ高価で
す。そこで1000円以下で購入できるマイコンボード「ESP32 ESP-32S」を使
って、簡単なプログラムと共にI oTを始めてみましょう。
シェルスクリプトマガジン Vol.66は以下のリンク先でご購入できます。

図2 ネットワーク接続プログラム(wlan.py)
| 1 2 3 4 5 6 | 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)
| 1 2 3 4 5 6 7 8 9 10 | 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)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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") |