WeChat_20230304233753
网关介绍
此网关是基于瑞萨芯片来进行开发的,以在农业大棚中应用为例介绍。
网关功能
主要功能:
温湿度检测:DHT11
显示屏:OLED
报警:蜂鸣器
远程监控控制:WIFI模块+阿里云
浇水:舵机
打开关闭空调:红外模块
本地控制:蓝牙模块
详细介绍:
此网关主要有以下功能,可以通过温湿度检测模块进行检测温度、湿度等。通过检测的温度、湿度来进行判断,比如说温度过高我们就通过红外模块进行控制,空调进行控制这个温度,当温度过低也是一样的道理,通过红外模块进行控制空调来进行调节大棚里的温度,当检测到湿度低于标准值的时候。我们通过舵机来进行控制,水阀的开关来进行控制进行浇水,如果温度和湿度都过高的情况下,通过调节之后还是没有明显效果的情况下,那么蜂鸣器就会报警,发出滴滴滴的响声。然后在室内呢,在近距离的交互中呢,是可以通过OLED显示屏直接查看数据,或者说通过蓝牙模块查看数据都是可以的,如果远程操作和监控室内大部分的情况是通过WiFi模块儿进行控制的和查看的,是通过上阿里云进行实现的。
网关中主要原理介绍
显示屏是用到了IIC,进行主机与显示屏之间的通信的,详细参考我这文章,链接如下:
https://bbs.elecfans.com/jishu_2336776_1_1.html
MQTT上阿里云的原理和步骤详细参考我这篇文章,链接如下:
https://bbs.elecfans.com/jishu_2336782_1_1.html
红外模块中是通过红外转串口实现的,串口配置的步骤可参考我这篇文章,链接如下:https://bbs.elecfans.com/jishu_2336774_1_1.html
浇水的舵机是通过输出PWM波形进行控制的舵机旋转,PWM是由时钟频率简介调节控制的。
主要功能代码
static unsigned char operation = 0;
static uint8_t cnt=0;
fsp_err_t err;while(1)
{
switch(operation)
{
case 0:
g_ioport.p_api->pinWrite(g_ioport.p_ctrl, LED1, BSP_IO_LEVEL_HIGH);
wifi_init();
err = wifi_set();
g_ioport.p_api->pinWrite(g_ioport.p_ctrl, LED1, BSP_IO_LEVEL_LOW);
if(err)
{
R_BSP_SoftwareDelay(2000,BSP_DELAY_UNITS_MILLISECONDS);
}
else
{
R_BSP_SoftwareDelay(2000,BSP_DELAY_UNITS_MILLISECONDS);
operation = 1;
}
break;case 1:
cnt++;
sprintf((char *)user_buffer,"%s%s%3d%s",(char *)AT_S,(char *)TCP_DATA,(uint8_t)cnt,"}\r\n");
err = wifi_TCP_SEND_DATA();
if(err)
{
cnt--;
R_BSP_SoftwareDelay(2000,BSP_DELAY_UNITS_MILLISECONDS);
operation = 0;
}
else
{
R_BSP_SoftwareDelay(1000,BSP_DELAY_UNITS_MILLISECONDS);
g_ioport.p_api->pinWrite(g_ioport.p_ctrl, LED2, BSP_IO_LEVEL_HIGH);
R_BSP_SoftwareDelay(1000,BSP_DELAY_UNITS_MILLISECONDS);
g_ioport.p_api->pinWrite(g_ioport.p_ctrl, LED2, BSP_IO_LEVEL_LOW);
}
break;
default:
operation = 0;
break;
}
网关介绍
|