开发系统:Ubuntu 20.04 开发板:Pegasus物联网开发板 MCU:Hi3861 OpenHarmony版本:3.0.1-LTS
Pegasus物联网开发板有许多模块,作者使用环境检测板实时检测环境变化。
6.环境检测板简介
环境检测板有三种设备:AHT20 温湿度传感器、半导体可燃气体传感器 MQ-2,蜂鸣器MLT-8530。
6.1.1 温湿度传感器AHT20简介
AHT20是一种高精度、完全校准、贴片包装的温湿度传感器IIC通信方式,体积超小,功耗极低。温湿度传感器在高精度恒温恒湿室内出厂校准,温度补偿后直接输出湿度、温度等信息。用户可以获得准确的温湿度信息,而无需温度补偿湿度。
AHT20的参考电路如下:
SDA和SCL需要连接拉电阻;VDD脚需要外接10uF滤波电容器。 AHT读20比较简单,分为两个步骤:
AHT初始化相关命令如下:
发送数据读取命令更简单。
关于AHT请参考20更详细的说明《AHT20技术手册。
6.1.2气体传感器 MQ-2简介
MQ-2 气体传感器中使用的气体敏感材料是在清洁空气中导电性较低的二氧化锡(SnO2)。当传感器环境中存在可燃气体时,随着空气中可燃气体浓度的增加,传感器的电导率增加。将电导率的变化转化为与气体浓度相对应的输出信号,使用简单的电路。MQ-2 气体传感器对丙烷、烟雾敏感性高,对天然气等可燃蒸汽的检测也很理想。
传感器通过 J7 接口获取ADC 从而获得气体的浓度。
6.1.3蜂鸣器MLT-8530简介
蜂鸣器MLT-8530是一种需要通过的无源蜂鸣器PWM控制本模块的蜂鸣器MLT-如下所示,8530电路。
当BEEP高电平时,三极管MMBT蜂鸣器3904导通B当BEEP低电平时,三极管截止,蜂鸣器B没有电流。
6.实现环境监测系统
和以前的应用一样,分为三个步骤。
6.2.1新建目录
在./applications/sample/wifi-iot/app用于存储环境检测的源环境检测源代码文件的目录。
在app下新增业务environment_app其中environment_app.c为应用代码入口,BUILD.gn目录结构如下:
6.2.编写应用代码
鸿蒙购物网经有了相关的应用,只需简单移植即可。
这里作者只做了简单的修改。
下载地址
值得注意的是,本实例已被使用PWM和I2C,但这两个选项在默认情况下没有打开,需要打开。
# CONFIG_PWM_SUPPORT is not set修改为CONFIG_PWM_SUPPORT=y # CONFIG_I2C_SUPPORT is not set修改为CONFIG_I2C_SUPPORT=y
修改路径如下:device/hisilicon/hispark_pegasus/sdk_liteos/build/config/usr_config.mk
6.2.修改编译组织文件
修改./applications/sample/wifi-iot/app/wifi_connect/BUILD.gn内容如下:
static_library("environmentapp") { sources = [ "environment_app.c", "oled_ssd1306.c", "aht20.c", ] include_dirs = [ "//utils/native/lite/include", "//kernel/liteos_m/kal", "//base/iot_hardware/peripheral/interfaces/kits", ] }
- static_library静态库文件是指定业务模块的编译结果libenvironmentapp.a,开发人员根据实际情况填写。
- sources指定静态库.a所依赖的.c如果包含中包含文件及其路径"//表示绝对路径(这里是代码根路径),如果不包括///"表示相对路径。
- include_dirs中指定source依赖.h文件路径。
6.2.4新增组件
将environmentapp添加到组件中。即修改applications/sample/wifi-iot/app/BUILD.gn修改后的文件如下所示。
import("//build/lite/config/component/lite_component.gni") lite_component("app") {
features = [ "environment_app:environmentapp" ] }
- environment_app是相对路径,指向applications/sample/wifi-iot/app/environment_app。
- environmentapp是目标,指向applications/sample/wifi-iot/app/environment_app/BUILD.gn中的static_library(“environmentapp”)。
6.2.5编译下载测试
最后,编译下载固件,打开串口不断会有气体的数据信息。
如果街上OLED模块还实时显示温度和湿度,蜂鸣器也会响应LED也会闪烁。
欢迎访问我的网站
BruceOu的哔哩哔哩 BruceOu的主页 BruceOu的博客 BruceOu的CSDN博客 BruceOu的简书 BruceOu的知乎
欢迎订阅我的微信公众号
关注公众号[]获取最新信息