【基于物联网开发板的物联网监控终端系统设计13000字(论文)】_第1页
【基于物联网开发板的物联网监控终端系统设计13000字(论文)】_第2页
【基于物联网开发板的物联网监控终端系统设计13000字(论文)】_第3页
【基于物联网开发板的物联网监控终端系统设计13000字(论文)】_第4页
【基于物联网开发板的物联网监控终端系统设计13000字(论文)】_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于物联网开发板的物联网监控终端系统设计联网及相关行业的从业人员超过200万,伴随5G、中国制造2025等战略的大力实施,在未来5年内,仅物联网安装调试人员的需求量就将达到500万人。本论文系统论述了基于TIPOT物联网开发板的物联网监控终端研发,旨在通过MQTT协议的代理转发机制,实现完整的物联网控制系统。该系统中,物联网通过节点板控制传感器采集数据,通过6Lowpan协议向网关板进行传输,网关板通过MQTT协议向代理服务器发送数据,并订阅用户端指令,对传感器板进行控制。本终端通过采用以contikiOS驱动的TIPOT物联网开发板,对传感器进行控制并收发数据,在PC端通过转接MQTT客户端实现和MQTT代理服 31.1研究背景 31.2国内外常用物联网协议分析 3 41.2.2MQTT-SN协议 51.2.3CoAP协议 7 81.2.5HTTP协议 91.2.6LoRaWAN协议 1.2.7NB-IoT协议 1.3主要研究内容 1.4论文结构说明 第二章相关技术与模块设计 12.1相关原理和技术 2.1.1TIPOT板 2.2.2contikiOS操作系统 2.2.36LoWPAN协议 132.2.4udp协议 2.2总体架构设计 2.3分块设计 2.3.1传感器采集 2.3.2udp发送 第三章模块实现 3.1传感器控制与实现 3.1.1光传感器的控制 3.1.2温湿度传感器控制 23.2节点板之间的UDP通信实现 3.2.1客户端UDP通信(节点板) 3.2.2服务端UDP通信(网关板) 第四章连接实现 4.1网关板与互联网连接实现 4.1.1前期函数准备 4.1.2主函数 4.2PC端接收数据 4.3.1订阅的实现 4.3.2发布的实现 第一章绪论经权威机构预测,2018年中国物联网业务收入比上年增长72.9%,从事物子标签技术,到如今和LoWan、5G、AI和边缘计算等无线传感网络(WSN)是物联网的关键推动者和重要组成部分。成千上万等等。由于IPv6的许多优点,包括其高度可扩展的地址方案(这在处理大量互连设备时是非常关键的)、更强的安全性和完全符合互联网标准,使用IPv6成为无线传感器网络的网络功能的强大推动者。基于无线传感器网络(WSN)的1.2.1MQTT协议是IBM的AndyStanford-Clark和Arcom的ArlenNipper于1999年为了一个通过1.基于TCP协议的应用层协议;4.提供3种消息的QoS(QualityofService)传输质量:至多一次0(只传只有一次2(确保消息到达一次);6.小型传输,开销较小(固定长度的头部是2kb),为了降低网络流量,MQTT协议的架构由Broker和连接到Broker的多个Client组成,如下图1-1MQTT-SN网关MQTT-SN针对低功耗、电池驱动、处理存储受限的设备,不支持TCP/IP协议栈的电子器件来定制,比如常见的ZigBee(或XBee),对所依赖的底层传流程。为了降低广播风暴,MQTT-SN定义了广播路径深度(广播范围或广播半1.CONNECT消息被拆分成三个消息(CONNECT,WILLTIPIC,3.预定义(提前定义)topicid和topicname,省去中间注册流程,客4.协议引入的自动发现机制可帮助客户端发现潜在的网关。若存在多5.“cleansession”即可作用于订阅持久化,也被扩展作用于遗嘱特性(遗嘱主题和遗嘱消息)。6.针对休眠设备增加离线保活机制支持,当有消息时代理需要缓存,1.2.4LwM2M协议LwM2M(LightweightMachine-To-Machine)协议是由OpenMobi协议可以运行在UDP或者SMS(短信)之上,通过DTLS(数据报传输层安全)来实现数on-安卓操作系统的设备,完全可以使用HTTP协议上传和下载数据,就好像在开发移动应用一样。设备也可以使用运行在HTTP协议上的WebSocket主动接收来自LoRaWAN协议是由LoRa联盟提出并推动的一种低功率广域网协议,它和底层使用TCP协议或者UDP协议进行数据传输,整个协议栈运行于IP网络,而LoRa(LongRange)是一种无线通信技术,它具有使用距离远、功耗低的特点。在上面的场景下.用户就可以使用LoRaWAN技术进行组网.在工程设备 安装支持LoRa的模块。协议传输的数据协议包(比如MQTT协议),然后发往云端的数据中心。NB-IoT(NarrowBandInternetofThings)协议和LoRaWAN协议一样,接入NB-IoT协议相比传统的基站,增益提高了约20dB,可以覆盖到地下车库、1.3主要研究内容本毕业设计将利用ContikiOS驱C语言和eclipse软件,编写TIPOT物联网开发板代码,利用上述所学,进行物1.4论文结构说明第二章相关技术与模块设计2.1相关原理和技术的硬件平台,为在基于IEEE802.15.4标准的无线传感网络上运行进行实验研究或者开发无线传感网络/物联网原型设备及解决方案提供了非常有甚至只支持WIFI等非物联网专用的无线通信协议。在网络层方面,大多也不支持IPv6协议。套件包含实验所需的硬件开发板、调试/编程器、逻辑分析仪、传图2-1TIPoT基本研发平台套件1络嗅探器,2.网关板,3.两个节点板,4.QHNmN可M5CPM寸m下0A下3CP咽烟中十面面]十DDNGContiki是一个小型、开源、极易移植的多任务电脑操作系统。它专门设计以适用于一系列的内存受限的网络系统,包括从8位电脑到微型控制器的嵌入系统,由瑞典计算机科学学院的AdamDunkels和他的团队开发,目前已经在许多1.操作系统微型:它针对小内存微控制器设计,适用范围是联网嵌入式系统和无线传感器网络,典型配置仅需2千比特的随机存取存储器和40千比特的2.使用范围广泛:它支持TCP/UDP,支持IPv4和IPv6通信,提供uip协议的IPV4和IPV6协议栈,有完整的IP网络,并且支持Web浏览器、基于文本网络进行特有的交互。在无线传感器网络内部通制和减少传感器节点的功耗。Contik硬件就能够完成网络级别的能量分析。Contiki的能量分析机制不仅能够使用于槛较高,而6Lowpan协议应运而生。IIEEE802.15.4数据包容量很小,6LoWPAN采用的压缩方法是将IP包头压缩成只传送必要内容,去除IP包头中的网络级信息。在接收数据时,IP包头从链路IPv4相比,IPv6的地址比特数是IPv4的4倍(从32位扩充到128位)。128位3.易接入开发:使用IPv6技术,更易于接入其他基于IP技术的网络及下一代互联网,具有与时俱进的能力,可以充分利用IP网络的技术来发展业务和探索更多的使用场景。目前基于IPv6的许多技术已比较成熟,并被广泛接受和使并根据相关规则配置好所需的IPv6地址。这个特性对传感器网络来说,非常具UDP协议是一种无连接传输协议,支持简单的数据报传输。与TCP协议不另一个优点是能够将数据报作为组播或广播发送。这意味着可以将UDP数个字节)超过IP数据包(1,480个字节),所以可使用分包将UDP数据报分成UDP协议与TCP协议一样用于处理数据包,在OSI模型中,两者都位于传输层,处于IP协议(应用层)的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,UDP不像TCP协议一样建立三次全完整到达。UDP用来支持那些需要在计算机之间传UDP协议产生时间较早,计算机的技术层出不穷,有很多功能更强大更专一的协议面世,UDP协议也渐渐退出了历史舞台,与可行性,在信息传输中拥有一席之地。许多应用只支持UDP,如:多媒体数性能而不是传输的完整性时,如:音频和多在UIP中,所有影响主机到主机通信的RFC需求都被实现.然而,为了减少UIP堆栈可以作为多任务系统中的任务运行,也可以作为单任务系统中的主如果数据包已经到达,则输入处理程序函数,UIP_IN周期性超时用于驱动依赖于定时器的TCP机制,例如延迟确认、重传和往UIP堆栈不使用显式动态内存分配。相反,它使用一个全局缓冲区来保存数缓冲区并调用TCP/IP堆栈。如果数据包包含数据,TCP/IP堆栈将通知相应的应有足够大的片上缓冲区,至少可以容纳4个最大大小的以太网帧。由处理器处理的设备,如RS-232端口,可以在应用程序处理期间将传入的字节复制到单独的的网络中只有一个TCP段。在UIP中,用于传入数据包的相同的全局数据包缓冲区也用于传出数据的TCP/IP报头。如果应用程序发送动态数据,它可以使用全局数据包缓冲区中未以及数据的长度传递给堆栈。TCP/IP报头被写入全局缓冲UIP的内存使用总量在很大程度上取决于要运行实现的特定设备的应用程备将发送大量电子邮件,同时运行一个具有高度动态网页和多个同时客户端的uip为程序员提供了两个api:protosocket,一个类似bsd套接字的api,没有 会话(Session):每个客户端与服务器建立连接后就是一个会话,客户端和主题名(TopicName):任何客户端设计一个主题名,所有客户都能向该主本实验根据上述实验套件与预期实现结果,对系统总体架构进行了如下图传感器板图2-4总体架构设计实现基本功能如下:传感器模块进行等间隔数据采集,通过6Lowpan协议发送到网关板,网关板通过MQTT协议连接MQTT2.传感器与网关板的双向数据通信。接□,使用原始线程protothreads,使用较为复杂;标准socket接口基于stopwait议发送协如图2-5所示,TI-POT板通过调用线程内定时器,进行传感器的数据采集工作,再通过udp协议进行打包发送工作。2.3.2udp发送2.3.3UIP连接图2-6UIP协议与PC转接示意图送给MQTT代理服务器。其中UIP工作方式如下:中,并给uip_len变量赋值;调用uip_input(),对接收到的数据进行协议处理。5.应用提供处理协议栈事件的回调函数(CALLBACK),该回调函数也就是实现了网络应用(例如telnet)。在该函数中:物联网终端用户端如图2-7所示,物联网终端通过MQTT协议向代理服务器的topic1话题下发MQTT的中间代理转发特质和订阅发布机制能够使物联网终端和用户端解耦合,只要支持MQTT的协议的双方可以任意进行匹配,拓宽了物联网的使用uint8_tretattribif(etimer_expirret=Tipot_LAB_Brightness_Read(&valueret=Tipot_LAB_Brightness_Read(&value#ifTIPOT_LAB5_LIGHTprintf("Light#endif图3-1传感器控制(1)PROCESS(temp_process,"Tempera//preparationfortemperatureanstaticstructetimeretimer_set(&periodic1,SENSOR_INif(etimer_expired(&periodic1)){printf("Temperature图3-2传感器控制(2)tcpip_handler(void)图3-3UDP通信(1)此段代码进行了数据包接收的判断,uip_newdata()函数判断是否有新的数据包到达,如果有,打印出来;如果输入不为空,将str字符串清零并放入新数据。uip_udp_packet_sendto(client_co#endif图3-4UDP通信(2)之后向网关板发送一个udp包{{uip_ip6addr(&ipaddr,θxaaaa,θuip_ds6_addr_add(&iuip_ds6_addr_add(&iuip_ip6addr(&server_ipaddr,θstaticvoidstaticvoidsplit(buf,",",deintled_id,led_onoff;图3-7UDP通信(5)#endif#endif图3-8UDP通信(6)}图3-9UDP通信(7)etimer_set(&periodic,SEND_INTERVAL);if(ev}if(etimer_expired(&periodic)){图3-10UDP通信(8){sprintf(t,"i,ssprintf(t,"i,sensor:3:%d,%d\n",#endif图3-11UDP通信(9)switchswitch(led_id){图3-12UDP通信(10)PRINTF("DATA'%s'receivedUIP_IP_BUF->srcipaddr.u8[sizeof(UIP_IP_BUF->srcipaddr.u8)-1图3-13UDP通信(11)memset(send1,0,sizeof(send1)pch1astrtok(appdata,pch2=strtok(NULL,"\if(pch1I=NULL&&pcif(strcmp(pch1,"c")==e)「I(strcmp(pch1,"r")=8)II(sUIP_IP_BUF->srcipadr.u8[e],UIP_IP_BUUIP_IP_BUF->sreipaddr.u8UIPIPBUF->srcipaddr.u8[12],UIPIPBUF->srcipaddr.u8[13],UIPIPBUF->srcipadr.u8[14],UIPIPBUF->srcip#endif________图3-14UDP通信(12)如果有来自节点板的输入,重置send1,如果uip的数据大小不为0,将得到的appdata用“,”进行分割,存入pch1,pch2为空;其中,如果pch1和pch2都uip_ipaddr_copy(&server_conn->ripaddruip_udp_packet_send(server_conn,uip_create_unspecified(&server_conn->r图3-15UDP通信(13)PRINT6ADDR(&uip_ds6_if.add图3-16UDP通信(14){图3-17UDP通信(15)uip_ip6addr(&ipaddr,θxaaaa,θ,θ,θ,θ,θ,θ,uip_ds6_addr_add(&ipaddr,θ,Aroot_if=uip_ds6_addrpl_dag_t*dag;dag=rpl_set_root(RPL_uip_ip6addr(&ipaddr,θxaaaa,0,0,0rpl_set_prefix(dag,&ip}#endif/*UIP_CONF_ROUTER*/图3-18UDP通信(16)server_conn=udp_new(NULL,UIP_HTONS(U}udp_bind(server_conn,UIP_HTONS(UPRINTF("local/remoteport%u/%u\n}如果连接成功,接收数据包,连接不成功,退出进程ATA'76'receivedfromATA'76'receivedfromAA:AA:00:00:00:00:00:00:ATA'76'receivedfromAA:AA:00:00:00ATA'76'receivedfromAA:AATA'73'receivedfromATA'73'receivedfromAA:AA:00:00:0ATA'73'receivedfromATA'73'receivedfromAA:AA:00:00:00:00:00:00:ATA'73'receivedfromAA:AA:00:00:00ATA'73'receivedfromATA'73'receivedfroATA'73'receivedfromAA:AA:00:00:00ATA'73'receivedfromAATA'73'receivedfromAA:AA:00:00:00ATA'63'receivedfromATA'63'receivedfromAATA'73'receivedfromAA:AA:00:0ATA'73'receivedfromAA:AA:00:00:00:0图3-20网关板接收数据input(structtcp_socket*s__attribute(unused)),{if(inputdatalen>θ){if(ringbuf_put(&rxbuf,*inputptr)==θ){}}*Only(tryto)addterminatorcharac*Only(tryto)addterminatorcharacif(infor_n!=θ)com_analelse{}}图4-1UIP连接(1)staticvoidevent(structtcp{tcp_socket_connect(&socket,&v6addr,server_}if(strlen(ss)==0printf("ret1:%d,}memcpy(buf1+bytes_to_send,ss,sizeof(buf1)-bytes_to_sebytes_to_send+=sizeof(buf1)-bytes_to_send;buffer_send_tail+printf("ret}intc=ringbuf_get(&rxbuf);ringbuf_put(&rxbuf,buf[}}**a=0;图4-4UIP连接(4)sprintf(buf,"%s,%s\n",dessprintf(buf,"%s,%s,%s\n",dest1[e],dest1[1]uip_udp_packet_send(mcauip_ip6addr_tsscanf(dest2[i],"%84X",(unsignedint*)&ip_auint8_ttemp=ip_adcharserver2client[128];sprintf(server2client,"%s,%s\n",dest1[0]sprintf(server2client,"%s,uip_udp_packet_sendto(server_conn,server2client,strlenPRINTF("%s,%s,%s,%s,%s",*dest1[0],*dest1[1],*dest1[2],*dest1[3],*dest1[4]);|Tipot_cloud_set_iringbuf_init(&rxbuf,rxbuf_data,tcp_socket_register(&socket图4-6UIP连接(6)ip64_addr_4to6(&v4addr,&v6addrtcp_socket_connect(&socket,&v6addr,server_port);//while(connection_flag!=1){图4-7UIP连接(7)if(socket.output_data_maxlen==socket.output_}while(bytes_to_send>θ){tosend=MIN(bytes_to_send,sizeof(olen=tcp_socket_send(}}*received.Notethatthis}psocket开启,psock_readto读取获得的数据,回传缓冲的内容,关闭protosocket接口。PROCESS_THREAD(psock_serv{*/*InitializetheIP64modulesowe'lltcp_listen(UIP_HTONS(/*图4-10UIP连接(10)*Ifapeerconnectedwithus,we'll*withPSOCK_IPSOCK_INIT(&ps,buffer,sizewhile(!(uip_aborted()Iluip_closed()Il*handle_connectiotoditsestheprotosockettohandle_connection(&ps);图4-12UIP连接(12)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论