XIAO ESP32C3とGROVE Temperature SensorをMicroPythonで動かして、Wifi経由でWebブラウザに温度表示してみました。
- maresaku
- 2022年12月25日
- 読了時間: 2分
更新日:2023年3月12日
XIAO ESP32C3とGROVE Temperature SensorをMicroPythonで動かして、Wifi経由でWebブラウザに温度表示してみました。

まず、MicroPythonのファームウェアをセットアップします。
当ブログでは下記の記事に記載しています。
次に、開発環境の設定していない場合は設定します。
当ブログでは下記の記事に記載しています。
XIAO RP2040ですが、GROVE Temperature SensorをMicroPythonで動かした内容は下記に記載しています。
一通り操作確認が終わったところで、LEDを接続してプログラムを書いていきます。
なお、今回温度センサーはD0(GPIO 2)に接続しています。

今回作成したプログラムは下記の通りとなります。
SSIDとkey は各御家庭のものを入力してください。
HTMLはあまりさわったことのない人間なので、装飾はシンプルにしています。 また、rp2040の指示だと通らなかったため、ADCの指示を変更しています。
import network
import socket
import machine
import utime
import cmath
# 温度
temp = machine.ADC(machine.Pin(2))
B = 4275
R0 = 100000
def temperature():
a = temp.read_u16()
R = 1023.0/a-1.0
R = R0*R
value= int(273.15-1.0/(abs(cmath.log(R/R0))/B+1/298.15))
return value
SSID = 'Wifiの名称'
key = 'Password'
#4.1. WiFi の設定
sta_if = network.WLAN(network.STA_IF)
print('connecting to network...')
sta_if.active(True)
sta_if.connect(SSID,key)
sta_if.isconnected()
while not sta_if.isconnected():
pass
#5.3. シンプルなHTTPサーバー
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
s.bind(addr)
s.listen(1)
print('listening on', sta_if.ifconfig()[0])
while True:
cl, addr = s.accept()
show = str(temperature())
print("temperature = " + show)
response = """<html>
<center>
<h1>
<span>temperature: </span>
<span>"""+show+"""</span>
<span>℃</span>
</h1>
</center>
<html>"""
cl.send(response)
cl.close()
shellに書かれたアドレスをwebブラウザに打ち込んで表示させると、下記のように温度の値がブラウザに表示されます。
PC

スマホ

参考にしたサイト
ESP8266用 MicroPythonチュートリアル 4.1. WiFi の設定
ESP8266用 MicroPythonチュートリアル 5.3. シンプルなHTTPサーバー
ESP32 用クイックリファレンス
Random Nerd Tutorials MicroPython: ESP32/ESP8266 with DHT11/DHT22 Web Server (Weather Station)
HaLake Magazine ESP32 MicroPython webサーバ~Lチカ
砂町技研 ESP32 で MicroPython その2 WiFiのアクセスポイントにしてスマホのブラウザで制御
ESP32 CON MICROPYTHON - CONTROL DE LEDS POR WIFI (YOUTUBE)
MicroPythonについてまとめられているサイト
Raspberry Pi PicoWについてのサイト
Irohabook HTMLで温度°を表す記号
html 1
html 2
Comments