物联网应用技术竞赛——单片机笔记

1.lora呼吸灯代码

switchLed1Breath();  //开LED1呼吸灯
breathLed();      //开始呼吸
DelayMs(1);	

2.lora双击代码

int time=0,js=0;
if(isKey3Pressed()) {
  resetKey3();
  while(time<=1000)   //1s内判断是否再次按下
  {
   if(isKey3Pressed()){
   resetKey3();
   js=2;         //双击标志位
   time=0;
   break;
   }
   else{
   time++;      //time=time+1;
   HAL_Delay(1);  //1ms
   }
  }
 if(time>1000){   //1s内没有按下代表是单击
  js=1;
  time=0;
 }
}

3.继电器端口号

双联继电器(P1_7第一联,P2_0第二联) 
单联继电器(P2_0)

4.lora输出

USART1_Init(115200);//串口1初始化
printf("   ");

5.lora获取模拟量数据(获取ADC1_IN0(PA_0)的电压值--------光照 空气 火焰 可燃气体)

Adc_t adc;
AdcInit(&adc, PA_0);//初始化adc 光照值是读取PA_0处电压
-------------------------
uint16_t ADC0Value,v,light;
ADC0Value=AdcReadChannel( &adc,0);  //adc精度12位,参考电压3.3v
v=ADC0Value*3300/(4096-1.0);//得到传感器电压值,单位:mV  
light=(5/2.0)*(v/10.0);

6.lora获取开关量数据(读取PA_1引脚值-------人体 红外 声音)

HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1)

7.获取数字量传感器(温湿度)

#include "sht3x.h"
-------------------------
float tem;
float humi;
char a[32]={0};
hal_temHumInit();
-------------------------
call_sht11(&tem, &humi);
sprintf(a,"%.2f",tem);  //格式成保留两位的字符串,将float转换成字符串

8.Zigbee获取温湿度

#include "sht.h" 
-------------------------
float temp,humi;
SHT_Init();
-------------------------
call_sht11(&temp,&humi);
uart_printf("温度:%f,湿度:%f",temp,humi); 

 添加头文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vVZwcgHf-1642036695108)(C:Users86134DesktopMarkdownProjectsa.png)]

9.Zigee输出

#include "UART_PRINT.h" 
-------------------------
halBoardInit();
uart_printf("温度:%f",temp); 

在这里插入图片描述

10.Zigbee获取模拟量数据

#include "get_adc.h"
-------------------------
float value;
value=get_adc();// AD值转化成电压值,得到传感器电压值,单位:V  

11.读取开关量值

uint8 a;
P0SEL &= ~( 1 <<1);  //设置p0.1为普通i/o口
P0DIR &= ~( 1 <<1);  //设置p0.1为输入口
a=P0_1;

12.Zigbee点灯

SEL &= ~( 1 <<1);  //设置p0.1为普通i/o口
P0DIR &= ~( 1 <<1);  //设置p0.1为输入口
a=P0_1;

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>