版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的宠物环境监测系统设计与实现案例目录TOC\o"1-3"\h\u2704基于单片机的宠物环境监测系统设计与实现案例 1308961.1开发环境介绍 1154651.2数据模块处理与采集 1120011.3上位机程序设计与实现 799181.4数据库的设计与实现 8309251.5小结 81.1开发环境介绍MDK是Keil公司研发的集成开发环境,目前的最新版本为MDK5。MDK5由MDK编译器(Core)和设备(device)、微控制器软件接口标准CMSIS以及中间件(Middleware)组成,支持小型TCP/IP协议栈(LWIP),在不更换编译器的前提下,可进行设备支持包、中间件下载、更新、移除等操作。它作为一个软件开发平台,提供了一系列的开发功能,其中包括编译器、程序调试跟踪、串口、USB及仿真器烧录。功能非常强大,适合开发者进行项目开发及使用。1.2数据模块处理与采集基于NB-IOT的宠物运输安全监测管理系统采集的数据有温湿度、光照、心率、GPS定位信息,在下位机可以将数据传输给上位机,功能是可以帮助宠物主、宠物运输公司更好进行宠物运输工作。数据采集利用中断与轮询读取和处理数据,工作流程为:STM32单片机上电,时钟、GPIO口、UART、AB等初始化,温湿度传感器、光敏传感器、心率感应传感器、GPS模块、NB-IOT模块使能,定时器初始化并开始计数,定时中断读取各个模块的数据,进行数据处理,处理完成就转到传输模块,其流程图如图4-1所示。图4-1数据模块处理与采集流程图获取心率数据的实现心率传感器本系统项目使用的是PulseSensor脉搏传感器,当心率传感器检测到动物时,当光束透过动物体外周血管,由于动脉搏动充血容积变化导致这束光的透光率发生改变,此时由光电变换器接收经反射的光线,转变为电信号并将其放大和输出。由此可以通过检测动物的心率。实现功能的主要代码如下://心率检测 LCD_ShowxNum(180,290,Signal,4,16,0); if(QS==true) { LCD_ShowxNum(60,290,BPM,4,16,0);//需要上传的 QS=false;//resettheQuantifiedSelfflagfornexttime } delay_ms(20);获取温湿度的实现实现检测温湿度使用的是DTH11。DHT11上电后测试环境温湿度数据,并记录数据,同时DHT11的DATA数据线由上拉电阻拉高一直保持高电平;此时DHT11的DATA引脚处于输入状态,时刻检测外部信号。微处理器的I/O设置为输出同时输出低电平,等待DHT11作出回答信号,DHT11的DATA引脚检测到外部信号有低电平时,等待外部信号低电平结束,输出低电平作为应答信号,紧接着输出高电平通知外设准备接收数据,微处理器的I/O此时处于输入状态,检测到I/O有低电平(DHT11回应信号)后,等待数据接收,发送信号。实现温湿度检测的具体代码如下://获取温湿度 if(t%10==0) //每100ms读取一次 { DHT11_Read_Data(&temperature,&humidity); //读取温湿度值 LCD_ShowNum(30+40,90,temperature,2,16); //显示温度值 LCD_ShowNum(30+40,110,humidity,2,16); //显示湿度值 } delay_ms(10);获取光敏度模块的实现光敏度模块使用的是LS1光敏二极管,利用的电流变化,转换成电压的变化,从而通过ADC读取电压值,判断外部光线的强弱。通过开发板,实现光敏度的检测。具体实现代码如下://获取光敏度值 adcx=Lsens_Get_Val(); LCD_ShowxNum(30+10*8,70,adcx,3,16,0);//显示ADC的值 delay_ms(10); NB-IOT传输模块设计本系统采用NB-IOT无线传输模块作为项目的通信模块,该模块是一种使用NB-IoT网络进行无线数据传输的嵌入式终端模块,采用BC28专业通信芯片,具有支持连接、IDLE、PSM状态功能,值守功耗不到10uA,可支持使用UDP、CoAP网络协议,为开发者、用户提供透明的数据传输模式。该模块具有体积小、功耗小、接口简单的特点,同时开发者或用户能够集成到自己的主板设备进行使用。STM32开发板与NB-IOT通信模块的连接使用到的是串口,NB-IOT通信模块通过接收STM32的AT指令进行工作(AT是指Attention,AT指令是指从终端设备向数据电路终端设备发送的指令)。通过AT指令,用户可以进行设备入网、数据发送等方面的控制。而STM32与NB-IOT通信模块的通信使用CoAP协议作为它们的通信协议。使用到的华为物联网开发平台的IP地址是:180.101.147.115,端口号为:8080。NB-IOT传输模块的工作流程为:1、在xcom实验窗口发送一个AT指令,等待NB-IOT通信模块响应;设置模块最小功能,配置CDP(连接设备平台)的IP地址和端口号,关闭eDRX模式(及IDLE模式)、PSM模式;2、设置模块最大功能,设置附着网络,设置新消息提醒。数据整理,进行数据的发送;3、STM32微控制器向NB-IOT模块发送AT指令,应先等待NB-IOT通信模块处理完成上一条AT指令后,返回结果“OK”关键字,再发送新的AT指令;4、在下位机程序中,设置每隔5秒发送一条AT指令,如NB-IOT通信模块成功执行该指令,则会返回“OK”关键字,否则返回“ERROR”关键字,可根据此字段来判断指令是否执行成功。NB-IOT通信模块的部分功能配置需要在最小功能模式下设置,由于本系统不需要实现消息实时下发操控设备,则不在这里说明。下位机程序所用到的AT指令如表4-1所示。表4-1AT指令表序号命令功能1AT判断设备是否正常2AT+CFUN=0设置为最小功能3AT+CGSN=1查询自己的IMEI码4AT+NCDP=180.101.147.115,5683设置CDP的IP地址和端口号5AT+CPSMS=0关闭PSM模式6AT+CEDRXS=0关闭eDRX模式7AT+CFUN=1设置为最大功能8AT+CGATT=1设置为网络附着9AT+CGPADDR返回设备IP地址10AT+CSQ获取信号强度(0-31)如果是99代表不成功11AT+NNMI=1开启新消息提醒(即接收平台返回信息)12AT+NMGS=<length>,<data>发送消息,length为信息长度10进制表示,data为发送的信息16进制表示。intNB_SendData(intid,char*strData,char*result,inttime){ intdatalen=0; charstrID[2]; charstrSend[256]; charstrDataLen[3]; //AT+NMGS=3,001C1D memset(strID,0,2);NumToHexStr(id,1,strID); datalen=(strlen(strID)+strlen(strData))/2; memset(strDataLen,0,3); //sprintf(strDataLen,"%s",num); NumToStr(datalen,strDataLen); memset(strSend,0,256); strcat(strSend,AT_NMGS);//strSend="AT+NMGS=" strcat(strSend, strDataLen);//strSend="AT+NMGS=3" strcat(strSend, ",");//strSend="AT+NMGS=3," strcat(strSend, strID);//strSend="AT+NMGS=3,00" strcat(strSend, strData);////strSend="AT+NMGS=3,001C1D" strcat(strSend, "\r\n");//strSend="AT+NMGS=3,001C1D\r\n"revc_len=0; memset(Revc_Data,0,512); Usart2_Send(strSend); //delay_ms(time); //if((revc_len>0)&&(strstr(Revc_Data,result)!=NULL)) //{ //CommandHandle(); //revc_len=0; //memset(Revc_Data,0,512); //returnrevc_len; //} //elsereturn0; return0; }获取GPS实时数据的实现GPS模块采用NMEA0183协议,采用ASCII码来传递GPS定位信息,我们称之为帧。帧格式形如:$aaccc,ddd,ddd,„,ddd*hh(CR)(LF)1、“$”:帧命令起始位2、aaccc:地址域,前两位为识别符(aa),后三位为语句名(ccc)3、ddd„ddd:数据4、“*”:校验和前缀5、hh:校验和,$与*之间所有字符ASCII码的校验和(各字节做异或运算,得到6、校验和后,再转换16进制格式的ASCII字符)7、(CR)(LF):帧结束,回车和换行符通过对单片机串口通信进行设置,然后保存到EEPROM。GPS有7种指令数据输出,如果我们只需要经纬度的话,可以屏蔽其他的数据。使用中断循环buffer来接收GPS输出的串口数据,然后在需要的地方读取buffer,对数据实现一次检索,找到一个有用的GPS定位数据。我们这里只获取了经纬度、高度、以及速度。具体实现代码如下://GPS定位if(USART3_RX_STA&0X8000) //获取到一次数据了 { rxlen=USART3_RX_STA&0X7FFF; //得到数据长度 for(i=0;i<rxlen;i++)USART1_TX_BUF[i]=USART3_RX_BUF[i]; USART3_RX_STA=0; //启动下一次获取数据 USART1_TX_BUF[i]=0; //自动添加结束字符 GPS_Analysis(&gpsx,(u8*)USART1_TX_BUF);//分析字符串 Gps_Msg_Show(); //显示信息 if(upload)printf("\r\n%s\r\n",USART1_TX_BUF);//发送接收到的数据到串口1 } /*用来上传地图到电脑端*/ key=KEY_Scan(0); if(key==KEY0_PRES) { upload=!upload; POINT_COLOR=RED; if(upload)LCD_ShowString(30,100,200,16,16,"NMEADataUpload:ON"); elseLCD_ShowString(30,100,200,16,16,"NMEADataUpload:OFF"); } if((lenx%500)==0)LED0=!LED0; lenx++; 获取二氧化碳的实现SGP30传感器基于金属氧化物(MOx)纳米颗粒的加热膜,气敏材料——金属氧化物颗粒上吸附的氧气与目标气体发生反应,从而释放出电子。由传感器测量的金属氧化物层的电阻发生改变。简单地说,当二氧化碳出现造成气敏材料表面氧浓度降低,改变了半导体的电阻。通过电路(ASIC)对电阻进行检测、信号处理与转换。 //CO2、TVOC获取 SGP30_Write(0x20,0x08); sgp30_dat=SGP30_Read();// CO2Data=(sgp30_dat&0xffff0000)>>16;//取出CO2值 TVOCData=sgp30_dat&0x0000ffff;//取出TVOC值 LCD_ShowNum(30+40,130,CO2Data,3,16); //显示CO2 LCD_ShowNum(30+40,150,TVOCData,3,16); //显示TVOC// printf("CO2:%dppm\r\nTVOC:%dppd\r\n",CO2Data,TVOCData);//串口显示 delay_ms(10);1.3上位机程序设计与实现本系统使用的W
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年盘锦职业技术学院单招职业适应性测试题库带答案
- 2026年吉林交通职业技术学院单招职业技能考试必刷测试卷带答案
- 2025年河南省新闻出版学校公开招聘人事代理工作人员16名参考题库附答案详解(夺分金卷)
- 2026年云南旅游职业学院单招综合素质考试题库新版
- 2025年甘肃省事业单位招聘考试模拟试卷 公共某础知识(一)附答案详解(培优b卷)
- 2026年福建水利电力职业技术学院单招综合素质考试必刷测试卷必考题
- 2025广东韶关“百万英才汇南粤”南雄市秋季高层次和急需紧缺专业人才招聘88人参考题库附答案详解(综合卷)
- 2026年烟台汽车工程职业学院单招职业适应性测试题库带答案
- 2026年贵州省黔东南苗族侗族自治州单招职业适应性考试题库新版
- 2026年汉中职业技术学院单招综合素质考试必刷测试卷及答案1套
- 【A3】人教版2023-2024学年五年级数学上册期中检测卷(卷一)(含答案)
- 重说二十年前的作品亮出你的舌苔或空空荡荡
- 身份证前六位与省市县区对照表可直接存入数据库
- 工程洽商单(样本)及工程设计中标通知书
- 三菱HOPE电梯的故障码
- JJG 875-2019数字压力计
- 量子信息与量子计算课件
- 基于Robotstudio机器人上下料工作站设计
- 制梁场制存梁台座检测方案
- 质性研究方法PPT通用课件
- 中线的用法(倍长中线法)分析
评论
0/150
提交评论