IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 使用 ESP32 + HaaS Python 打造智能温湿度UI面板 -> 正文阅读

[Python知识库]使用 ESP32 + HaaS Python 打造智能温湿度UI面板

?? 随着这几年智能家居行业的快速发展,家庭用的智能面板越来越普及。智能面板不仅可以用来显示时间、家用电器的状态、回家/离家模式选择还可以用来调节空调温度、加湿器状态等等信息,给人们的生活带来了很多便利。本文则是以最常用的智能温湿度面板为例,介绍如何使用快速打造一个UI面板。

1、简介

?? 本文将基于HaaS UI Lite开发框架使用Python语言进行家居温湿度面板的打造。

1.1、准备

?? 本案例打造需要使用到如下硬件:

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)

  • 参数说明
参数类型必选参数?说明
temperatureint如果是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)

  • 参数说明
参数类型必选参数?说明
humidityint如果是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)

  • 参数说明
参数类型必选参数?说明
temperatureint如果是float等类型的变量,则会被强制转换成int型
humidityint如果是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设备可以正确显示了。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-17 22:06:24  更:2022-03-17 22:07:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:31:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码