ESP32开发之旅——基于ESP32的室内空气质量检测系统

ESP32开发之旅——基于ESP32的室内空气质量检测系统

前言

  • 本文主要是我课设项目的一个备忘,部分资料来源于网上收集。
  • 本设计以ESP32作为控制核心,用DHT11温湿度传感器对空气中的温度和湿度进行采集,MQ135模块对空气中的污染物进行监测,然后将采集到的数据传送给ESP32控制器进行处理,由ESP32将采集到数据整合后通过MQTT协议上传到阿里云IOT平台,由阿里云平台根据数据进行相应的处理,并将数据进行可视化显示。

成果展示

1. web端界面
web端界面
2.硬件端
硬件端

核心代码

MQTT部分

####阿里云配置
SERVER = '106.15.83.29'  # 域名
####三元组
ProductKey = ""
DeviceName = ""
password = ''  ###根据DeviceSecret在第三方平台上计算

CLIENT_ID = DeviceName + "|securemode=3,signmethod=hmacsha1|"  # 设备ID
username = DeviceName +'&' + ProductKey

publish_TOPIC = '/sys/'+ProductKey+'/'+DeviceName+'/thing/event/property/post'
subscribe_TOPIC = '/sys/'+ProductKey+'/'+DeviceName+'/thing/event/property/post_reply'
client = None


def sub_cb(topic, msg):  ###接收aliyun发送过来的消息
    msg = bytes.decode(msg)  ###将接收到的bytes类型数据转换成字符串
    msg = eval(msg)
    temp = msg.get("params")   ###提取返回的信息
    print(temp)

    if temp != None:   ###对硬件进行操作
        AIR.value(temp.get("air"))
        Gl.value(temp.get("LED"))

def apptimerevent(mytimer):   ###将获取到的数据上传到aliyun上
    try:
        sensordata = ReadTemHum()
        mymessage = '{"params": {"CurrentTemperature": %d ,"CurrentHumidity": %d ,"AQI":%d}, "method": "thing.event.property.post"}' % (
        sensordata[0], sensordata[1], sensordata[2])   ##和阿里云上设置的属性相同
        client.publish(topic=publish_TOPIC, msg=mymessage, retain=False, qos=0)
    except Exception as ex_results2:
        print('exception', ex_results2)
        mytimer.deinit()

def on_message(client, userdata, msg):
    '''处理message回调'''
    print('topic: {}'.format(msg.topic))
    print('message: {}'.format(str(msg.payload)))

获取传感器数据部分

def ReadTemHum():   ###获取传感器的数据
    mydht.measure()  ###读取温湿度传感器数据
    qt_data = mymq.read()   ###读取MQ135空气质量传感器数据
    tem = mydht.temperature()   ###提取温度数据
    hum = mydht.humidity()     ###提取湿度数据
    if qt_data >= 2000:     ###防止将MQ135产生的异常数据上传
        qt_data = 0

    data = [tem, hum, qt_data]  ###将数据整合到列表里面,方便上面函数调用
    print(data)
    return data

连接WiFi部分

#######WIFI配置
SSID = " "
PASSWORD = " "
def ConnectWifi(ssid, passwd):   ###用来建立wifi连接
    global wlan
    wlan = network.WLAN(network.STA_IF)  # create a wlan object
    wlan.active(True)  # Activate the network interface
    wlan.disconnect()  # Disconnect the last connected WiFi
    wlan.connect(ssid, passwd)  # 进行连接
    while (wlan.ifconfig()[0] == '0.0.0.0'):
        time.sleep(1)
    print(wlan.ifconfig())

结尾

懒人包下载链接:https://download.csdn.net/download/weixin_44186593/47501979

  • 1
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
一、项目简介 室内空气检测仪是一款基于ESP32开发板的智能设备,用于检测室内空气质量。通过传感器实时检测空气中的温度、湿度、甲醛等有害气体浓度,将数据上传至云端,用户可以通过手机APP或网页进行远程监控和管理。 二、硬件设计 1. ESP32开发板:作为主控板,负责采集传感器数据,处理数据并将数据上传至云端。 2. 温湿度传感器:用于检测室内的温度和湿度,我们可以通过这些数据了解室内的舒适度,并及时调节室内的温湿度。 3. 甲醛传感器:用于检测室内甲醛的浓度,甲醛是室内空气污染的主要因素之一,长期处于高浓度甲醛环境会对人体健康造成很大的危害。 4. OLED显示屏:用于显示室内温湿度和甲醛浓度等数据。 5. Wi-Fi模块:用于将检测到的数据上传至云端,用户可以通过手机APP或网页进行远程监控和管理。 6. 电源模块:用于为开发板和传感器供电。 三、软件设计 1. ESP32开发板端程序设计:程序采用Arduino IDE开发,主要实现以下功能: (1)初始化ESP32开发板和传感器; (2)读取温湿度和甲醛传感器数据,并将数据显示在OLED显示屏上; (3)将传感器数据通过WiFi模块上传至云端。 2. 云端程序设计:云端程序采用Python语言开发,主要实现以下功能: (1)接收ESP32开发板上传的传感器数据; (2)将传感器数据存储到数据库中; (3)提供API接口,供手机APP或网页调用。 3. 手机APP或网页设计:用户可以通过手机APP或网页进行远程监控和管理,主要实现以下功能: (1)实时查看室内温湿度和甲醛浓度等数据; (2)设置报警阈值,当数据超过阈值时发送警报; (3)查看历史数据曲线图和数据记录。 四、总结 本项目主要通过ESP32开发板、传感器、WiFi模块、OLED显示屏等硬件进行设计,通过云端程序和手机APP或网页实现远程监控和管理,可以有效地检测室内空气质量,为用户提供更加健康、舒适的室内环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来程序猿小吕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值