项目介绍和创意介绍
本项目基于 MicroPython 与 ESP32,采用 AP 配网模式实现便捷无线联网,精准获取网络时间。搭配 SHT30 传感器实时采集环境温湿度数据,通过串口屏完成时间、温湿度一体化可视化展示。无需复杂配置,上手即用,适用于室内环境监测、智能家居桌面摆件等场景,兼具实用性与趣味性。
硬件介绍
核心主控采用 ESP32 模块,支持 WiFi 无线通信,搭载 MicroPython 系统,开发便捷高效;通过 AP 热点配网模式,可快速完成设备联网配置。SHT30温湿度传感器,具备高精度、高稳定性特点,实时采集环境数据。串口屏作为显示终端,无需复杂驱动,通过串口通信即可清晰展示网络时间、温度、湿度信息。整体硬件接线简单、功耗较低,搭配电源即可独立运行,构成一套完整的物联网环境监测显示系统,适合入门学习与实战应用。

方案框图和项目设计思路
本项目以 ESP32 为主控核心,利用其 WiFi 功能实现 AP 配网,让用户快速连接设备联网并获取网络时间。通过 模拟的方式读取 SHT30 温湿度数据,主控处理后通过串口协议发送至串口屏。整体采用模块化设计,简化硬件接线与代码逻辑,兼顾稳定性与易用性,实现环境数据实时监测与可视化展示,完成物联网基础应用。
框图:

软件流程图和关键代码
流程图:

关键代码:
温湿度采集:
class SHT30_Sensor:
def __init__(self, temp_pin, hum_pin):
self.temp_adc = ADC(Pin(temp_pin))
self.temp_adc.atten(ADC.ATTN_11DB)
self.hum_adc = ADC(Pin(hum_pin))
self.hum_adc.atten(ADC.ATTN_11DB)
def read_raw(self):
temp_raw = self.temp_adc.read()
hum_raw = self.hum_adc.read()
return temp_raw, hum_raw
def read_temperature(self):
temp_raw = self.temp_adc.read()
voltage = temp_raw / 4095.0 * 3.3
temperature = -66.875 + 72.917 * voltage
temperature = max(-45, min(130, temperature))
return round(temperature, 1)
def read_humidity(self):
hum_raw = self.hum_adc.read()
voltage = hum_raw / 4095.0 * 3.3
humidity = -12.5 + 41.667 * voltage
humidity = max(0, min(100, humidity))
return round(humidity, 1)
def read_all(self):
temp = self.read_temperature()
hum = self.read_humidity()
return temp, hum
<主循环>
while True:
if screen.check_calibration_cmd():
print("Received calibration command (0x81)")
calibrate_time()
last_sensor_upload_time = time.time()
dt = rtc.datetime()
time_str = f"{dt[0]:04d}-{dt[1]:02d}-{dt[2]:02d} {dt[4]:02d}:{dt[5]:02d}:{dt[6]:02d}"
screen.display_time(time_str)
temp, hum = sensor.read_all()
temp_filter.add(temp)
hum_filter.add(hum)
current_time = time.time()
if current_time - last_sensor_upload_time >= UPLOAD_INTERVAL:
temp_avg = round(temp_filter.get_average(), 1)
hum_avg = round(hum_filter.get_average(), 1)
print(f"[{time_str}] Temp: {temp_avg:>6.1f}C | Hum: {hum_avg:>6.1f}%RH")
hum_val = int(hum_avg * 10)
temp_val = int(temp_avg * 10)
msg_hum = b"x0.val=" + str(hum_val).encode('ascii') + b'\xff\xff\xff'
msg_temp = b"x1.val=" + str(temp_val).encode('ascii') + b'\xff\xff\xff'
screen.send(msg_hum)
screen.send(msg_temp)
last_sensor_upload_time = current_time
time.sleep(SAMPLE_INTERVAL)
功能展示图及说明
展示图:


说明:
设备通电后自动开启 AP 热点,手机连接即可完成配网。联网成功后自动同步网络标准时间,同时 SHT30 传感器实时采集环境温湿度。所有数据通过串口实时传输至显示屏,界面直观清晰。整套设备独立运行、操作简单,可实时监测环境信息并展示时间,完整呈现物联网数据采集与显示功能。
在设备联网后将会联网获取准确的时间,并开始内部的RTC时钟,开启内部ADC进行温湿度的采集,将信息通过UART上传到串口屏幕上
心得体会
通过本次项目实践,我熟练掌握了 ESP32 的 MicroPython 开发、AP 配网与网络时间获取方法,学会了 SHT30 传感器和串口屏的驱动应用。从硬件接线到代码调试,提升了物联网项目的整体设计能力,感受到软硬件结合的乐趣,也培养了解决实际问题的耐心,为后续智能项目开发打下了坚实基础。