锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

基于鸿蒙Hi3861和华为云平台的烟雾报警器

时间:2023-01-10 02:00:00 集成电路hi1rf传感器反光板式感应开关

基于鸿蒙Hi3861烟雾报警器

  • 项目需求
  • 硬件介绍
    • Hi3861
    • MQ-2
    • 软件介绍
  • 功能设计
    • 修改配置文件
    • 编写功能程序
  • 后续

项目需求

如今,随着社会的发展,人们越来越关的生活安全。俗话说,水火无情,防止家中失火,是保障我们人身安全最重要的一点。传统的家庭烟雾报警器只能在产生烟雾时报警。如果家里没有人,就没有效果。这只能保护一定的人身安全,但往往很难保证人们的财产安全。所以今天就以Hi以3861为主控,设计了一个可以与云平台互动的平台,用户不仅可以在烟雾发生时报警,还可以实时上传到云平台,让用户远程了解室内安全。

硬件介绍

Hi3861

Hi3861是高度集成的2.4GHz WiFi SoC芯片,集成IEEE 802.11b/g/n基带和RF电路,RF电路包括功率放大器PA、低噪声放大器LNA、RF balun、支持20MHz标准带宽和5MHz/10MHz窄带宽,提供最大72.2Mbit/s物理层速率。
Hi3861WiFi支持正交频分复使用的基础支持(OFDM)该技术与直接序列扩频兼容(DSSS)和补码键控(CCK)技术,支持IEEE 802.11 b/g/n协议的各种数据速率。
Hi3861芯片集成高性能32bit外设界面包括微处理器、硬件安全引擎和丰富的外设界面SPI、UART、I2C、PWM、GPIO和多路ADC,支持高速SDIO2.0 Slave接口最高时钟可达50MHz;芯片内置SRAM和Flash,可独立运行,支持Flash操作程序。
Hi3861支持Huawei LiteOS与第三方组件一起,提供开放、易用的开发和调试运行环境。
Hi3861芯片适应于智能家电等物联网智能终端领域。

MQ-2

MQ-2常用于家庭和工厂的气体泄漏监测装置,适用于检测液化气、苯、烷、酒精、氢气、烟雾等。MQ-准确地说,它是一种多种气体探测器。
MQ-探测范围极其广泛。其优点:灵敏度高,响应快,稳定性好,使用寿命长,驱动电路简单。

软件介绍

  1. VScode
  2. DevEco Device Too(HarmonyOS智能设备开发者提供的一站式集成开发环境)
  3. 鸿蒙底层源码
  4. 华为云平台
  5. 串口调试助手

功能设计

修改配置文件

修改device/hisilicon/hispark_pegasus/sdk_liteos/build/config/usr_config.mk

CONFIG_PWM_SUPPORT=y CONFIG_I2C_SUPPORT=y 

编写功能程序

  1. 检测烟雾值
    遇到可燃气体时,可燃气体
    传感器的电阻值会降低,气体浓度越大,电阻值越小。ADC通道的电压会通过收集增加ADC传感器的电阻值由5通道的电压计算。可燃气体浓度由电阻值计算。
    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);
        }
    }

5 / hi_adc_convert_to_voltage(value)-1就是我们使用的MQ-2的烟雾值。越小,表示烟雾越浓。
2. 蜂鸣器

	const int NumLevels = 100;
    for (int i = 1; i < NumLevels; i++)
    { 
        
        hi_pwm_start(HI_PWM_PORT_PWM0, 65400/i, 65400);
        osDelay(10);
        hi_pwm_stop(HI_PWM_PORT_PWM0);
    }
  1. 阈值报警
if((5 / hi_adc_convert_to_voltage(value)-1)<9)
{ 
        
    for (int i = 1; i < NumLevels; i++)
    { 
        
        hi_pwm_start(HI_PWM_PORT_PWM0, 65400/i, 65400);
        osDelay(10);
        hi_pwm_stop(HI_PWM_PORT_PWM0);
    }
}
  1. 上传烟雾值到华为云平台
while (!toStop){ 
        
		char* payload ="上传给华为云平台的数据";
		int payloadlen = strlen(payload);
 
		if (MQTTPacket_read(mqtt_buf, mqtt_buflen, transport_getdata) == PUBLISH){ 
        
			unsigned char dup;
			int qos;
			unsigned char retained;
			unsigned short msgid;
			int payloadlen_in;
			unsigned char* payload_in;
			int rc;
			MQTTString receivedTopic;
			rc = MQTTDeserialize_publish(&dup, &qos, &retained, &msgid, &receivedTopic,
					&payload_in, &payloadlen_in, mqtt_buf, mqtt_buflen);								// 发送数据
			printf("message arrived %.*s\n", payloadlen_in, payload_in);
 
            mqtt_rc = rc;
        }
 
		printf("publishing reading\n");
		mqtt_len = MQTTSerialize_publish(mqtt_buf, mqtt_buflen, 0, 0, 0, 0, topicString, (unsigned char*)payload, payloadlen);
        mqtt_rc = transport_sendPacketBuffer(mqtt_sock, mqtt_buf, mqtt_len);
		osDelay(1000);
	}

传给华为云的数据格式

{ 
        "services":
[
{ 
        "service_id":"服务ID",
"properties":
{ 
        
"属性名称":烟雾值
}
}
]
}
		

后续

欢迎关注我的毕业设计专栏。
关注微信公众号,发送“基于鸿蒙Hi3861的烟雾报警器”获取源码。
在这里插入图片描述

编写不易,感谢支持。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章