聚丰项目 > 自动无土栽培控制器
随着社会的发展土地变得越来越稀缺,能吃上一点绿色食品将成为一种奢侈。 社会在不断的进步,工业生产在走精细化、数字化道路。未来农业发展应该也离不开这条道路。本控制系统就是提供一种无土栽培过程中能实时测量环境温湿度、水温、光照强度等参数并开启各种执行元件对蔬菜生长过程的精准监测与控制,并通过互联网云端大数据让种植变得简单。
黄_e9c
分享黄_e9c
团队成员
黄明峰 工程师
一种无土栽培控制系统包括: 栽培机构与控制系统两部分组成,其中栽培机构部分只是为了说明控制系统的工作流程。
一、栽培机构部分:
机构连接部分:
二、控制系统控制部分:
采用意法半导体提供的NUCLEO-F401RE开发板。
2.2 Ø 无线通信模块
采用庆科提供的EMW3080无线模块, EMW3080是单3.3V供电的、集成Wi-Fi和Cortex-M4F MCU的嵌入式Wi-Fi模块,最高支持133M主频和256K RAM
2.3 Ø温度水位传感器
温度水位传感采用常用的太阳能温度水位传感器.NTC R25为10K 欧,水位传感器空为60K欧。
2.4 Ø光线强度传感器
5528光敏电阻光敏电阻。
2.5 Ø温度湿度传感器
采用DHT11温湿度传感器。
1.传感器采用DHT11
2.湿度测量范围:20%-95%(0 度-50 度范围)湿度测量误差:+-5%
3.温度测量范围:0 度-50 度温度测量误差:+-2 度
4.工作电压3.3V-5V
5.输出形式:数字输出
2.6 Ø温水位传感器
水温传感器 R25=10K
水位传感器 30K+10K+10K+10K=60K
2.7 Ø控制输出端
4路5V继电器模块X2
1. 继电器输出触点最大250V 10A
2. 输入IN1 IN2 IN3 IN4信号线低电平有效VCC
5. 连接器板
6.连接总成
说明
一、首先在庆科云端建立产品、属性点。
二、软件采用Mbed在线开发平台进行开发。
2.2 //读取传感器数据
void ReadInputData(void)
{
wait(1.0); // 1 second
Air_sensor.DHT11_Read_Data(&dht11_temp_data, &dht11_hum_data); //数据要与FOG3上对应
InputData[0]=NTC_sensor.getTemperature(); //读取水温
InputData[1]=LightRes_sensor.getLightRes(); //读取光强度
InputData[2]=WaterLevel_sensor.getWaterLevel(); //读取水位
InputData[3]=(float)dht11_temp_data; //读取环境温度
InputData[4]=(float)dht11_hum_data; //读取湿度
}
2.3 //FramePackage类对数据进行组包并检验
void FramePackage::FrameData(float *FD,bool *bsd,unsigned char *SendData)
{
unsigned char DataHex[48];
SendData[0]=0xAA;
SendData[1]=0xBB;
/**/
DataHex[0]=0x0A;
DataHex[1]=0x00;
DataHex[2]=0x2D;
for(int i=0; i<5; i++) {
LongToHex(FD[i],FloatHext);
DataHex[3+i*6]=i+1;
DataHex[4+i*6]=0x03;
DataHex[5+i*6]=FloatHext[0];
DataHex[6+i*6]=FloatHext[1];
DataHex[7+i*6]=FloatHext[2];
DataHex[8+i*6]=FloatHext[3];
}
for(int i=0; i<5; i++) {
DataHex[33+i*3]=i+6;
DataHex[34+i*3]=0x00;
DataHex[35+i*3]=bsd[i];
}
for (int i=0; i<48; i++) {
SendData[2+i]=DataHex[i];
}
unsigned char RC=dp_hex_frame_checksum(DataHex,sizeof(DataHex));
SendData[50]=RC;
}
//浮点数转成无符号字符
void FramePackage::LongToHex(float FloatData,u8 *m)
{
long L= *( long *)&FloatData;
m[0]=L>>24;
m[1]=(L&0xFFFFFF)>>16;
m[2]=(L&0xFFFF)>>8;
m[3]=(L&0xFF);
}
//RCR校验
unsigned char FramePackage::dp_hex_frame_checksum( unsigned char * buf, unsigned short length )
{
unsigned short checksum = 0;
unsigned char * buf_ptr = buf;
while ( length > 0 ) {
checksum += *buf_ptr;
buf_ptr++;
length--;
}
checksum = (checksum >> 8) + (checksum & 0x00FF);
if ( (checksum & 0xFF00) != 0 ) {
checksum = (checksum >> 8) + (checksum & 0x00FF);
}
return (unsigned char) (~checksum);
}
2.4//将组包好的数据通过串口发送给 3080无线模块。在由3080无线模块将HEX数据转化成Json字串发送给云端。云端在将数据发送的手机APP。手机端就能看到实时采集的数据了并控制设备。
void SendDataFog3()
{
FramePackage FP; //定义组包
wait(5);
pc.printf("AT+FOGSEND=1,51\r"); //准备发送数据包1=HEX,0=透传模式 数据大小51
wait(5);
ReadInputData(); //读取传感器数据
FP.FrameData(InputData,OutDataSW,SendHexData); //组包数据帧
for(int i=0; i<51 ; i++) { //将组包好的数据从串口发送出去
pc.printf("%c",SendHexData[i]); //以符形式
}
wait(5);
}
无线模块与云端进行绑定
设备向云端发送数据
手机APP接到MCU数据
手机APP向设备发Json指令
设备接收到手机APP指令
肇庆天人电脑: 成本是多少吗
回复
肇庆天人电脑: 能教下我吗 380258819
回复