鸿蒙
系统定位
HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。
在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体娱乐等)业务能力。
HarmonyOS有三大特征:
MQ-2烟雾传感器
MQ-2常用于家庭和工厂的气体泄漏监测装置,适宜于液化气、苯、烷、酒精、氢气、烟雾等的探测。故因此,MQ-2可以准确来说是一个多种气体探测器。
MQ-2的探测范围极其的广泛。它的优点:灵敏度高、响应快、稳定性好、寿命长、驱动电路简单。
I2C
IC( Inter-- Integrated Circuit)总线是一种由 PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。
在CPU与被控I2C之间、I2C与I2C之间进行双向传送,高速IC总线一般可达400kbps以上。I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结東传送数据。
应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为 受控单元出现故障。
这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。
具体设计
当遇到可燃气体时,可燃气体传感器的电阻值会减小,气体的浓度越大电阻值越小。ADC通道的电压会增大,可以通过采集ADC5通道的电压来计算传感器的电阻值。
关键代码
static void AdcGpioTask(void *arg){
(void)arg;
hi_gpio_init();
hi_io_set_func(HI_GPIO_IDX_11, HI_IO_FUNC_GPIO_11_GPIO);
hi_gpio_set_dir(HI_GPIO_IDX_11, HI_GPIO_DIR_IN);
hi_u16 value;
int num=5;
while (num>0)
{num--;
if(hi_adc_read(HI_ADC_CHANNEL_5, &value, HI_ADC_EQU_MODEL_4, HI_ADC_CUR_BAIS_DEFAULT, 0) != HI_ERR_SUCCESS){
printf("ADC read error!\n");
}else{
printf("ADC Voltage = %f\n", hi_adc_convert_to_voltage(value));
printf("MQ2 value = %f\n", 5 / hi_adc_convert_to_voltage(value)-1);
usleep(10000);
}
}
}