您现在的位置是:首页 >技术交流 >使用Harmony OS控制外设——读取传感器,如何在HiSpark WiFi IoT套件上使用Hamony OS的传感器相关编程接口网站首页技术交流
使用Harmony OS控制外设——读取传感器,如何在HiSpark WiFi IoT套件上使用Hamony OS的传感器相关编程接口
使用Harmony OS控制外设——读取传感器
本节课程中主要介绍如何在HiSpark WiFi IoT套件上使用Hamony OS的传感器相关编程接口,即环境感知能力。
相关知识点
本节涉及Harmony OS外设相关接口:
-
ADC接口
-
wifiiot_adc.h头文件 -
unsigned int AdcRead(WifiIotAdcChannelIndex channel, unsigned short *data, WifiIotAdcEquModelSel equModel, WifiIotAdcCurBais curBais, unsigned short rstCnt);
-
-
I2C接口
wifiiot_i2c.h头文件I2cInit/I2cDeinit/I2cRead/I2cWrite
外设与主控芯片引脚的对应关系
-
HiSpark Wi-Fi IoT 开发套件 炫彩灯板
- 三色LED——PWM占空比控制颜色
- GPIO10: 红
- GPIO11: 绿
- GPIO12: 蓝
- 光敏电阻——ADC采集值和电压对应,电压和电阻对应,电阻和光照强度对应
- GPIO09: ADC4
- 人体红外传感器——ADC采集值反应是否有人靠近
- GPIO07: ADC3
- 三色LED——PWM占空比控制颜色
-
HiSpark Wi-Fi IoT 开发套件 OLED屏板
- OLED屏——SSD1306芯片,I2C总线, 地址 0x78
- GPIO13: I2C0_SDA
- GPIO14: I2C0_SCL
- 两个按键——ADC,接在同一个GPIO引脚上,通过电压区分
- GPIO05: ADC2
- OLED屏——SSD1306芯片,I2C总线, 地址 0x78
-
HiSpark Wi-Fi IoT 开发套件 环境检测板
-
蜂鸣器——PWM控制声音的评率和音量
- GPIO09: PWM0
-
MQ2 燃气传感器——ADC读取模拟值
- GPIO11: ADC5
-
AHT20 温湿度传感器——I2C接口通信,地址 0x38
- GPIO13: I2C0_SDA
- GPIO14: I2C0_SCL
-
如何编译
-
将此目录下的所有
.c文件和BUILD.gn文件拷贝到,openharmony源码的applicationssamplewifi-iotappiothardware目录下, -
修改openharmony源码的
applicationssamplewifi-iotappBUILD.gn文件,将其中的features改为:features = [ "iothardware:sensing_demo", ] -
修改
applicationssamplewifi-iotappiothardwareBUILD.gn中的solo_demo下的sources属性,放开其中的的一个文件的注释,以开启选择对应功能文件;sources = [ "colorful_light_demo.c", # "environment_demo.c", # "oled_demo.c", "oled_ssd1306.c" ] -
在openharmony源码顶层目录执行:
python build.py wifiiot
报错解决
-
编译过程中报错:undefined reference to
hi_pwm_init等几个hi_pwm_开头的函数,- 原因: 因为默认情况下,hi3861_sdk中,PWM的CONFIG选项没有打开
- 解决: 修改
vendorhisihi3861hi3861uildconfigusr_config.mk文件中的CONFIG_PWM_SUPPORT行:# CONFIG_PWM_SUPPORT is not set修改为CONFIG_PWM_SUPPORT=y
-
编译过程中报错:undefined reference to
hi_i2c_init等几个hi_i2c_开头的函数,-
原因: 因为默认情况下,hi3861_sdk中,I2C的CONFIG选项没有打开
-
解决: 修改
vendorhisihi3861hi3861uildconfigusr_config.mk文件中的CONFIG_I2C_SUPPORT行:# CONFIG_I2C_SUPPORT is not set修改为CONFIG_I2C_SUPPORT=y
-





U8W/U8W-Mini使用与常见问题解决
QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结