使用 ESP32 + HaaS Python 打造智能温湿度UI面板
随着这几年智能家居行业的快速发展,家庭用的智能面板越来越普及。智能面板不仅可以用来显示时间、家用电器的状态、回家/离家模式选择还可以用来调节空调温度、加湿器状态等等信息,给人们的生活带来了很多便利。本文则是以最常用的智能温湿度面板为例,介绍如何使用快速打造一个UI面板。
1、简介
本文将基于HaaS UI Lite开发框架使用Python语言进行家居温湿度面板的打造。
1.1、准备
本案例打造需要使用到如下硬件:
- M5StackCore2开发板 一台
- SHT3X温湿度传感器 一个
1.2、硬件连线图
将SHT3X和M5StackCore2通过I2C接口连接起来,硬件连线图如下图所示。
2、设备端开发
2.1、开发环境
在进行下一步之前请确保M5StackCore2开发环境已经搭建完毕,详情请参考M5StackCore2快速开始中的说明。
2.2、创建解决方案
如下图所示,打开VS Code之后在新建一个基于helloworld的python工程,设定好工程名称(“humiture_panel”)及工作区路径之后,硬件类型选择m5stackcore2,点击立即创建,创建一个Python轻应用的解决方案。
下载本案例脚本的代码解压后全部复制,覆盖“humiture_panel”工程根目录下的所有文件,main.py文件如下图所示:
3、运行效果
将humiture_panel工程推送到M5StackCore2开发板之后,脚本会自动运行。屏幕上面显示如下信息:
脚本运行过程中日志如下。其中:
- python execute from /data/pyamp/main.py:代表Python脚本开始运行
- create humiture device:创建温湿度传感器对象
- create humiture panel:创建温湿度面板
- temperature: 21.32931:从温湿度传感器读取到的温度值
- humidity: 33.0602:从温湿度传感器读取到的相对湿度值
==== python execute bootpy ======== python file check /data/pyamp/main.py ======== python execute from /data/pyamp/main.py ====
create humiture device
create humiture panel
temperature: 21.32931
humidity: 33.0602
temperature: 21.35601
humidity: 33.11513
temperature: 21.38539
humidity: 33.12886
4、HaaS UI Lite 温湿度面板模板说明
本案例中使用到了HaaS UI Lite封装的温湿度面板类型的模板。此模板的代码实现请参考humiturePanel.py的实现。基于此模板可以很方便的将温湿度信息显示在面板上。下面是对模板元素及面板库API的说明。
4.1、温湿度面板元素
如下图所示,此温湿度面板一共有8个元素,编号为1-4的元素是温度显示的组成部分,编号为5-8的元素为相对湿度显示的组成部分。
下面是humiturePanel面板模板代码中显示各元素的位置,读者可以根据自己的需求对其进行替换或修改。
元素ID | 功能 | 相关代码 | 说明 |
1 | 温度图标 | self.createTemperatureItem(self.container, RESOURCES_ROOT + "temperature.png", RESOURCES_ROOT + "centigrade_l.png", "Temperature") | 静态图片,尺寸:64*64 |
2 | 温度值 | self.temperatureLable.set_text(str(int(temperature))) | 动态更新 |
3 | 温度单位图标 | self.createTemperatureItem(self.container, RESOURCES_ROOT + "temperature.png",RESOURCES_ROOT + "centigrade_l.png", "Temperature") | 静态图片,尺寸:64*64 |
4 | 温度英文字串 | 同“元素1” | 字符串 |
5 | 相对湿度图标 | self.createHumidityItem(self.container, RESOURCES_ROOT + "humidity.png", "Humidity") | 静态图片,尺寸: |
6 | 相对湿度值 | self.humidityLable.set_text(str(int(humidity)) + " %") | 动态更新 |
7 | 相对湿度单位图标 | 同“元素6” | %为符号 |
8 | 相对湿度英文字串 | 同“元素5” | 静态文字 |
4.2、温湿度面板模板API说明
HumiturePanel() - 创建温湿度面板对象
- 函数原型
panelObj = HumiturePanel()
- 参数说明
无
- 返回值
创建成功返回温湿度面板类型的对象
- 示例代码
from humiturePanel import HumiturePanel
humiturePage = HumiturePanel()
print('create humiture panel')
- 代码输出
create humiture panel
showTemperature(temperature) - 更新温度值到面板上
- 函数功能:
更新温度值temperature到面板上
- 函数原型
HumiturePanel.showTemperature(temperature)
- 参数说明
参数 | 类型 | 必选参数? | 说明 |
temperature | int | 是 | 如果是float等类型的变量,则会被强制转换成int型 |
- 返回值
无
- 示例代码
from humiturePanel import HumiturePanel
humiturePage = HumiturePanel()
print('create humiture panel')
humiturePage.showTemperature(26)
print('update temperature value done')
- 代码输出
create humiture panel
update temperature value done
showHumidity(humidity) - 更新相对湿度值到面板上
- 函数功能:
更新相对湿度值humidity到面板上
- 函数原型
HumiturePanel.showHumidity(humidity)
- 参数说明
参数 | 类型 | 必选参数? | 说明 |
humidity | int | 是 | 如果是float等类型的变量,则会被强制转换成int型 |
- 返回值
无
- 示例代码
from humiturePanel import HumiturePanel
humiturePage = HumiturePanel()
print('create humiture panel')
humiturePage.showHumidity(62)
print('update humidity value done')
- 代码输出
create humiture panel
update humidity value done
showHumiture(tempearture, humidity) - 同时更新温度和相对湿度值到面板上
- 函数功能:
更新温度tempearture和相对湿度值humidity到面板上
- 函数原型
HumiturePanel.showHumiture(tempearture, humidity)
- 参数说明
参数 | 类型 | 必选参数? | 说明 |
temperature | int | 是 | 如果是float等类型的变量,则会被强制转换成int型 |
humidity | int | 是 | 如果是float等类型的变量,则会被强制转换成int型 |
- 返回值
无
- 示例代码
from humiturePanel import HumiturePanel
humiturePage = HumiturePanel()
print('create humiture panel')
humiturePage.showHumiture(26, 62)
print('update humiture value done')
- 代码输出
create humiture panel
update humiture value done
本示例中使用的是SHT3X温湿度传感器获取温度和相对湿度信息并将其显示在屏幕上。您也可以参考HaaS硬件积木的页面来查来选择其它的温湿度传感器。
5、思考
本案例中使用外置的温湿度传感器对环境温湿度进行测量并显示在面板上。HaaS官网中还有通过其它开发板(ESP32、HaaS EDU K1等)量测环境温度。假设有一台“ESP32温湿度计”开发板(和M5StackCore2不是同一台设备的情况下)布置在智慧农业的大棚中。请读者思考下如何通过物联网平台远程获取到“ESP32温湿度计”的温室度信息并显示在M5StackCore2的面板上。
提示:
在物联网平台建立一个虚拟的温湿度面板设备,创建“温度”和“湿度”的物模型,通过物联网平台的“规则引擎”能力将“ESP32温湿度计”的温室度信息流转到“虚拟的温湿度面板设备”的物模型,物模型数据下发到M5StackCore2设备可以正确显示了。
使用 ESP32 + HaaS Python 打造智能温湿度UI面板相关推荐
- 【毕设参考】ESP32 + HaaS Python打造可以统计流量的自动感应门系统
下图是本案例的四步导学. 简介 目前很多写字楼.酒店等入口都采用自动感应的方式开门.关门,当有人靠近时,门就会自动打开,远离时会自动关门:有时候也需要将自动门设置常开状态,比如需要多次进出 ...
- 【毕设参考】ESP32 + HaaS Python 打造可以远程控制的智能风扇
智能小风扇 下图是本案例除硬件连线外的3步导学,每个步骤中实现的功能请参考图中的说明. 简介 在日常生活中,我们经常需要一些通过风扇降温的场景,比如说机房,电脑主机等等.通常情况下,我们都 ...
- 用 ESP32 + HaaS Python 打造 RFID 智能刷卡门禁系统
简介 我们每天进小区人行通道的时候,都会带一张卡或者一个小扣子,进小区以前往往要把小扣子靠近一下闸机,然后门才开,那这一套闸机系统是怎么实现的呢? 本章课程将一步步教会大家如何去学习并且打造一套 ...
- ESP32 + Python打造智能温湿度花卉养植系统
我们国家的现代农业和过去相比已经有了长足的进步,其中花卉养植监控系统也是高效农业的一个重要组成部分. 花卉养植监控系统是一种可以改变植物生长环境.为植物生长创造最佳条件.避免外界四季变化和恶劣气候对其 ...
- 【毕设参考】ESP32 + HaaS Python 打造的噪音检测系统,远离喧嚣,安享静谧
噪音检测系统 下图是本案例除硬件连线外的3步导学,每个步骤中实现的功能请参考图中的说明.在硬件连线完成之后我们建议您先使用"一分钟上云体验"功能预先体验本案例的实际运行效果. ...
- 使用ESP32 + HaaS Python打造运动心率检测系统 云上实时守护运动健康
当今社会,人们经常通过跑步等运动方式来健身.适量的运动可以提高免疫力,促进身心健康. 然而,无论是跑步,还是其他的健身运动,如果运动过量就会对身体造成损害,甚至导致休克.猝死等严重后果. ...
- 工科生的信仰 ESP32 + HaaS Python 打造HaaS收音机
HaaS收音机 简介 FM收音机作为上世纪的产物,一度是大家日常使用最多的工具之一,现在已经很少用到,主要还是用在汽车上.一台经典的收音机往往能勾起很多人的回忆.本案例教大家如何快速打造一台物联网FM ...
- 【毕设参考】ESP32 + HaaS Python 打造数据上云声控灯
声控灯 声控灯是通过声音控制开灯的技术,适用于使用声音控制开灯的场景,特别是楼宇.住宅楼的公共场合,例如楼梯间.走廊.大厅等场所,它可减少人工开关电灯的麻烦,解放您的双手,可避免您的双手接触公共 ...
- 【毕设参考】ESP32 + HaaS Python 打造在线空气质量检测器
空气检测系统 下图是本案例除硬件连线外的3步导学,每个步骤中实现的功能请参考图中的说明. 简介 近几年空气污染逐渐变重,很多人对空气质量愈发关心.及时检测周报环境的空气质量并通过钉钉通知相 ...
最新文章
- 迭代法移动盘子java,算法学习--日记(牛顿迭代法)
- 植保口的面上项目共153项,系统总结
- 【数理知识】《积分变换与场论》王振老师-第3章-矢量与矢量空间
- 关于联合利华:我的第一次正式实习的单位!撒花!
- 监听localStorage变化(同页面监听)
- freeradius 3.0 时间限制_java锁之RateLimiter(限制访问速率)
- Linux之LVM(逻辑卷管理)、分层存储Stratis、VDO、SWAP分区及相应案例
- ThinkPHP5校园图书馆管理系统
- 这十个Python实战项目,让你瞬间读懂Python!
- 有关微博营销的社交营销打法
- 小程序外链,实现桌面图标、短信和邮件外链跳转到小程序的工具
- html网页图片下方空隙太大,网页制作中图片上下间为什么会有空隙?解决办法...
- 1427: 数字转换
- 强劲的网络。http://www.chartboost.com/
- Directx11 安装、配置、报错
- java三角形类_java 三角形类 Triangle的用法详解
- fadeIn fadeOut
- HTML----锚标签
- Linux 命令xxd输出十六进制
- imac一体机,mac 电脑安装win7双系统
热门文章
- soap 版本可能不匹配: 出现意外的 envelope 命名空间_10M/S!百度网盘偷偷更新,终于实现免费不限速了!...
- Cookie、Session、Token和JWT
- 利用二分法查找 设计人与计算机猜数游戏,计算机游戏教学法第十一章.ppt
- 获得打气筒的三种方式,以及ListView的使用与优化
- SAP ABAP BDC 的使用及代码详解
- 其实,认真的人可以赢
- 五分钟带你玩转docker(三)全网最新最简单docker安装方式,楼主亲测
- 例题:索洛模型——弹性与收敛速度
- openMVS:极线校正Fusiello
- Visual_Studio_2022_Enterprise 简体中文离线版