0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【开源样例】Py4OH:自制开源鸿蒙空气质量监控系统(上)

电子发烧友论坛 来源:未知 2023-06-27 08:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天为大家隆重介绍一位 Py4OH 家族的新成员 – 小凌派开发板,目前已经进入 Py4OH 主线,基于 OpenHarmoy 3.0 LTS 并完整支持 Py4OH 所有特性。



小凌派开发板是一款由福州市凌睿智捷电子有限公司基于OpenHarmony打造的L0级物联网开发板,采用E53接口标准,可接入所有的E53案例扩展板:

  • 主控为瑞芯微RK2206芯片,200MHz主频

  • RAM:256KB、ROM:16KB、PSRAM:8M、FLASH:8M

  • 板载NFCForum Type 2 Tag芯片及天线,可实现HarmonyOS“碰一碰”功能

  • 支持 IEEE 802.11b/g/n 制式,AP 模式

  • 丰富的外设接口,包含 GPIO、UARTI2CADCDAC、PWM 等

  • 两个TypeC USB接口,一个用于供电及下载,一个用于串口调试


小凌派提供了多个好玩的扩展板,比如:智慧手势扩展板,智慧农业扩展板,有了这些扩展板,我们可以来做点有意思的东西。


做点什么呢?嗯,空气质量监控系统!!!



智慧农业扩展板上集成了温湿度传感器SHT30,LED灯,直流电机,而温湿度传感器SHT30可以说是为我们的空气质量监控系统量身打造:当环境温度在体感舒适度(大约18-25摄氏度)之外,则LED警报指示灯开始闪烁;否则关闭LED警报指示灯。


实现思路:开发板上电后,先进行必要的初始化,然后每隔1秒通过SHT30获取当前环境的温度和湿度;当温度处于体感舒适度时关闭LED灯,否则改变LED灯的状态(闪烁)。


有了实现思路就可以很轻松的画出设计图。


首先就是交互图。交互图可以帮助我们理清楚开发板与扩展板之间的关系,这是至关重要的,只有理清楚关系才可能从代码层面出发,想明白先做什么再做什么。



从上面的交互图可以看出,在开发板一侧需要一个程序变量代表扩展板上的SHT30传感器,同时也需要一个程序变量代表扩展板上的LED灯。有了这两个变量,就可以直接获取温度数据和湿度数据,并且可以轻松愉快的控制LED灯状态了!!!


嗯,这是什么?同学们!!这是面向对象编程啊。


Py4OH使用的是Python语言进行设备开发,而Python语言完美支持面向对象编程啊!


这又能怎样?这就可以简化编程了!!


不信??来,看看下面的流程图!



整个流程图描述的逻辑是非常简单的,仅仅是表达了我们想做的东西。相信大家也看出来了,“简单”是依赖于 th 和 light 所具备的能力,这两个变量(对象)所对应的类型将SHT30与LED的复杂性及控制逻辑全部隐藏,使得它们变成了黑盒,我们只需要知道如何使用即可!


OK!铺垫已经足够,是时候展示真正的技术了!

import pin
import sht30
import gpio
import os
i2cx = 0 # SHT30是一种i2c设备,位于0号i2c上
freq = 400000 # i2c通信频率
sda = gpio.make_id([0, 'A', 0]) # 计算sda所对应的引脚号
scl = gpio.make_id([0, 'A', 1]) # 计算scl所对应的引脚号
th = sht30.SHT30(i2cx, sda, scl, freq) # 创建名为th的SHT30对象
th.open() # 通过th对象打开SHT30设备
lpin = gpio.make_id([0, 'A', 2]) # 计算接入LED灯的引脚号
light = pin.Pin(lpin) # 创建LED灯对象
while True :
t = th.temperature() # 获取温度数据
h = th.humidity() # 获取湿度数据

if t != None :
print('temperature = ' + str(t))

if h != None :
print('humidity = ' + str(h))

if (18 <= t) and (t <= 25) :
light.low() # 若当前温度在体感舒适度范围内,则关闭LED灯
else :
light.change() # 若当前温度不在体感舒适度范围内,则改变LED灯的状态,即:闪烁

os.sleep(1)

(左右移动查看全部内容)


很明显,LED灯不是第一次出现我的文章中,SHT30也不是!如果有同学对它们的驱动方式还不熟悉,可以参考我之前的两篇帖子《使用Python开发鸿蒙设备程序(1-GPIO外设控制)》和《使用Python开发鸿蒙设备程序(2-I2C应用实例)》,在这里重点强调的是使用面向对象技术对它们进行封装,增加代码复用性。


要面向对象封装,必须的,先定义接口!

'''
This is just a demo for interface definition.
'''
class Pin:
is_high = False
def __init__(self, pin_num):
pass

def high(self):
# output 1
self.is_high = True

def low(self):
# output 0
self.is_high = False

def status(self):
return 1 if self.is_high else 0

def change(self):
if self.is_high:
self.low()
else:
self.high()

def __del__(self):
pass
class SHT30:
sht30_addr = 0x44
write_cmd = (sht30_addr << 1) | 0x00
read_cmd = (sht30_addr << 1) | 0x01
def __init__(self, i2cx, sda, scl, freq):
pass
def open(self):
pass

def close(self):
pass
def temperature(self):
return None
def humidity(self):
return None

def __del__(self):
pass

(左右移动查看全部内容)


由于实现细节太多,大家可以在附件中直接下载完整代码自行参考学习。


看到这,是不是觉得我有炒冷饭的嫌疑?!


又拿LED灯和SHT30温湿度传感器来写水文!!


哈哈!如果你这么想,那么请看看标题,,,这只是《上》,还有《下》呢!!


下一篇文章,我会带着大家将其它设备接入小凌派开发板,然后编程获取当前环境的PM2.5和PM10数据,并在数据不理想时启动直流电机(风扇)对空气质量进行调整。


最后,给大家展示一下Py4OH命令行的输出。



To be continued...





声明本文由电子发烧友社区发布,转载请注明以上来源。如需社区合作及入群交流,请添加微信EEFans0806,或者发邮箱liuyong@huaqiu.com。


更多热点文章阅读

  • 基于Cortex-M3内核的32位微控制器STM32项目实战分享!

  • 基于32位RISC-V设计的互联型微控制器,沁恒微CH32V307开发样例

  • RK3568!四核64位ARMv8.2A架构,汇聚编译源码及实战样例

  • 尺寸仅有21mm*51mm,板边采用邮票孔设计,合宙 Air105 核心板开发总结

  • 嵌入式Linux开发秘籍!工程师大佬亲历分享项目样例


原文标题:【开源样例】Py4OH:自制开源鸿蒙空气质量监控系统(上)

文章出处:【微信公众号:电子发烧友论坛】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

原文标题:【开源样例】Py4OH:自制开源鸿蒙空气质量监控系统(上)

文章出处:【微信号:gh_9b9470648b3c,微信公众号:电子发烧友论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【RA-Eco-RA4M2开发板评测】+ 空气质量传感器及其检测

    。 图3 引脚功能 图4检测值数据结构 为实现空气质量的检测及显示,它以RA4M2为控制核心,通过串口与该传感器连接。 为此,需要由RASC来配置所用的引脚,串口的参数配置见图6所示。 图5 添加串口 图
    发表于 04-22 16:38

    基于ESP32的开源空气质量传感器介绍

    今天给大家带来一款基于 ESP32 的开源空气质量传感器!专为家庭环境长期空气质量追踪打造,集成双高精度传感器,可同步监测 PM2.5、温湿度、气压、VOC,自带屏显实时看数据,还能联动 Home Assistant 等智能家
    的头像 发表于 03-26 16:11 837次阅读
    基于ESP32的<b class='flag-5'>开源</b><b class='flag-5'>空气质量</b>传感器介绍

    多合一空气质量传感器对比白皮书

    (RS-MG111-N01)四款代表性多合一空气质量传感器,从品牌背景、产品定位、技术指标、价格及适用场景等维度进行客观横向对比,为工程选型提供参考依据。所有参数均引用各厂商公开规格书及官方渠道,价格为 2025 年末市场含税参考单价。
    发表于 02-26 11:20

    “温湿度 + 空气质量” 双维度博物馆文物环境综合监控系统技术方案

    原标题:博物馆空气质量监控系统技术方案 添加图片注释,不超过 140 字(可选) 一、项目背景与目标 (一)背景 博物馆内空气质量直接影响文物保存寿命:挥发性有机化合物(VOC)会加速
    的头像 发表于 12-29 15:16 1065次阅读
    “温湿度 + <b class='flag-5'>空气质量</b>” 双维度博物馆文物环境综合<b class='flag-5'>监控</b><b class='flag-5'>系统</b>技术方案

    深入解析RRH62000:一体化空气质量模块的卓越之选

    深入解析RRH62000:一体化空气质量模块的卓越之选 在空气质量监测领域,一体化空气质量模块以其集成度高、功能强大等优势,成为众多电子工程师的首选。今天,我们就来深入了解一下Renesas推出
    的头像 发表于 12-29 09:25 471次阅读

    Sensirion SEN6x系列空气质量传感器平台介绍

    今天,在楼宇自动化、智能家居、工业生产等场景中,对精准可靠的空气质量监控的需求日趋旺盛。而传统空气质量监测,通常采用分立式的传感器解决方案,往往面临着系统集成难度高、设计开发工作复杂、
    的头像 发表于 12-10 09:51 1598次阅读
    Sensirion SEN6x系列<b class='flag-5'>空气质量</b>传感器平台介绍

    基于开源鸿蒙的图片编辑开发(2)

    本期内容介绍基于开源鸿蒙在RK3568开发图片编辑的全流程,分为上篇和下篇,本篇为下篇,主要介绍标记、保存图片功能。
    的头像 发表于 10-31 09:19 3369次阅读
    基于<b class='flag-5'>开源</b><b class='flag-5'>鸿蒙</b>的图片编辑开发<b class='flag-5'>样</b><b class='flag-5'>例</b>(2)

    基于开源鸿蒙的图片编辑开发(1)

    本期内容介绍基于开源鸿蒙在RK3568开发图片编辑的全流程,分为上篇和下篇,本篇为上篇,主要介绍添加相册图片、编译图片功能。
    的头像 发表于 10-31 09:16 3231次阅读
    基于<b class='flag-5'>开源</b><b class='flag-5'>鸿蒙</b>的图片编辑开发<b class='flag-5'>样</b><b class='flag-5'>例</b>(1)

    盛思锐助力Loxone打造智能室内空气质量监测与管理方案

    在日常生活中,我们常会忽略一个影响健康与舒适度的关键因素——室内空气质量。尤其是在通风不足的空间里,二氧化碳浓度会悄然攀升,引发嗜睡、注意力下降等反应,如何精准感知并智能调控室内空气质量,成为提升生活品质的重要一环。
    的头像 发表于 10-29 11:04 976次阅读

    广州唯创电子WTN6系列语音芯片:空气质量检测仪的智能语音解决方案

    精准播报空气质量,让健康呼吸"听得见"随着城市化进程加快和环境污染问题日益突出,空气质量已成为现代人关注的重点健康议题。据统计,人日均吸入空气约1万升,空气质量直接影响着我们
    的头像 发表于 09-22 09:40 800次阅读
    广州唯创电子WTN6系列语音芯片:<b class='flag-5'>空气质量</b>检测仪的智能语音解决方案

    车库空气质量监控系统,沃思智能

    下,沃思智能研发了车库空气质量监控系统空气质量监控系统研发与应用显得尤为重要。 地下车库
    的头像 发表于 09-16 11:03 778次阅读
    车库<b class='flag-5'>空气质量</b><b class='flag-5'>监控</b><b class='flag-5'>系统</b>,沃思智能

    基于开源鸿蒙的AVPlayer视频播控开发

    开源鸿蒙生态建设中,多媒体能力是构建丰富用户体验的核心要素。本开发基于AVPlayer实现,AvPlayer支持流媒体和本地资源解析、媒体资源解封装、视频解码和渲染功能,适用于对
    的头像 发表于 08-21 10:22 3194次阅读
    基于<b class='flag-5'>开源</b><b class='flag-5'>鸿蒙</b>的AVPlayer视频播控开发<b class='flag-5'>样</b><b class='flag-5'>例</b>

    基于开源鸿蒙的视频播放开发

    开源鸿蒙生态建设中,多媒体能力是构建丰富用户体验的核心要素。本开发针对视频播放场景,聚焦开源鸿蒙
    的头像 发表于 08-19 10:41 1810次阅读
    基于<b class='flag-5'>开源</b><b class='flag-5'>鸿蒙</b>的视频播放开发<b class='flag-5'>样</b><b class='flag-5'>例</b>

    空气质量监测物联网系统方案

    隐患。在此背景下,基于数之能远程监控管理平台的空气质量监测物联网系统应运而生,通过"感知-传输-分析-控制"的全链路数字化改造,构建起车间环境管理的"智慧大脑"。   通过接入空气质量
    的头像 发表于 08-11 15:11 689次阅读
    <b class='flag-5'>空气质量</b>监测物联网<b class='flag-5'>系统</b>方案