• 中国北方某高校16级课程设计硬件部分设计的基本思路: 本次课设使用的是开发箱的Zigbee模块(屏幕左面的6个模块)和arm板(右上角屏幕做WiFi数据传输)实现Zigbee组建网状网络,采集传感器数据并通过arm板外接usb...
    # 一、基本说明
    
    中国北方某高校16级课程设计硬件部分设计的基本思路:
    ![物联网开发箱](https://img-blog.csdnimg.cn/2019082413025821.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzOTIzNTg4,size_16,color_FFFFFF,t_70)
    本次课设使用的是开发箱的Zigbee模块(屏幕左面的6个模块)和arm板(右上角屏幕做WiFi数据传输)实现Zigbee组建网状网络,采集传感器数据并通过arm板外接usb无线网卡将数据传到pc,最后对url中的json格式传感器数据进行解析得到我们想要的数据并存入数据库。
    
    # 二、Zigbee组建网状网络
    
    使用IAR对对应模块烧写ZStack-CC2530-r200代码
    (Github链接[https://github.com/bobo-0oer/ZStack-CC2530-r200.git])
    选择不同模块烧写以后会自动组建网络(根据信号的强弱各节点选择信号较强的路由器或协调器进行组网)烧写过程就不多BB了。
    ![网络拓扑图](https://img-blog.csdnimg.cn/20190824133044353.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzOTIzNTg4,size_16,color_FFFFFF,t_70)
    值得注意的是:如图所示的就是网状网,不过其各节点的连线代表的只是数据传输的路径,而不是只有显示为网状才叫网状网。现在如果关闭其中一个节点(除协调器)其他模块会自行重新组建网络进行数据传输,完成指定功能。
    
    自此,Zigbee组建网状网络已经完成。
    
    # 三、Wifi数据传输
    
    这一部分主要使用arm板,其里面自带Qt程序可以作为实验箱上数据传输的服务器,多用户提供多个API接口:
    请自行更换IP地址
     1. http://192.168.10.130/topo.html为Zigbee网络拓扑展示
     2. http://192.168.10.130/cgi-bin/topology2.cgi为拓扑信息的json格式数据
     3. http://192.168.10.130/cgi-bin/node.cgi为json格式的传感器数据
     4. http://192.168.10.130/cgi-bin/send_node.cgi目测为控制部分使用,我也不太清楚这个干什么。。。
    
    ## 实验箱上WiFi传输信息的配置和应用:
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190824134357291.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzOTIzNTg4,size_16,color_FFFFFF,t_70)
    地址设置选择手动,配置好IP、子网掩码、网关后点应用接着点立即生效
    
    此时屏幕右下角会显示出你的IP地址,打开WiFi可以看到你的热点名称(前提是插了usb无线网卡)...用pc连接热点,之后打开上面的网址会得到你想要的信息。
    
    自此WiFi数据传输部分也基本结束。
    
    # 四、python解析json数据并存入数据库
    先上代码:
    
    ```
    import json
    import time
    import urllib.request
    import pymysql
    
    
    def get_record(url):
        resp = urllib.request.urlopen(url)
        HardwareData = json.loads(resp.read())
    
        nowTime=time.strftime("%H:%M:%S")
        # print("当前时间为:" + nowTime)
    
        for counter in HardwareData:
            # print(counter['macAddr'])
            if counter['macAddr']=='DCE15305004B1200':
                print("协调器工作正常!")
            elif counter['macAddr']=='1DE25305004B1200':
                print("路由1工作正常!")
            elif counter['macAddr']=='56DD5305004B1200':
                print("路由2工作正常!")
            elif counter['macAddr']=='3DE25305004B1200':
                temperature=counter['funcList'][0]
                humidity=counter['funcList'][1]
                print("温度为:", temperature['data'])
                print("湿度为:", humidity['data'])
            elif counter['macAddr']=='DBDD5305004B1200':
                # print(counter['funcList'])
                illumination=counter['funcList'][0]
                # print(illumination['data'])
                print("光照强度为:", illumination['data'])
            elif counter['macAddr'] == 'AD625305004B1200':
                print("控制节点工作正常!")
            else:
                print("网络连接错误,请重试!")
    
        # print(temperature['data'], humidity['data'],illumination['data'])
    
        db = pymysql.connect("localhost", "root", "050014", "zigbee")
        cursor = db.cursor()
        sql = "INSERT INTO zigbeedata(time, temperature, humidity, illumination)VALUES('%s','%s','%s','%s')" % (
            nowTime, temperature['data'], humidity['data'], illumination['data'])
        cursor.execute(sql)
        db.commit()
        print("存入数据库成功!")
    
    
    if __name__ == '__main__':
        while True:
            print(get_record('http://192.168.10.130/cgi-bin/node.cgi'))
            time.sleep(5)
    
    ```
    
    写这段代码的基本思路为:
    
     1. 从http://192.168.10.130/cgi-bin/node.cgi获取通过WiFi传输回来的json格式的传感器数据
    ```
    if __name__ == '__main__':
        while True:
            print(get_record('http://192.168.10.130/cgi-bin/node.cgi'))
            time.sleep(5)
    ```
    写一个死循环,只要执行一次循环就会向网页请求一次数据,这样就可以解决网页端不会自己刷新数据的问题了
     time.sleep(5):作用就是每5秒执行一次循环
      
     2.接收json格式的数据
    ![网页上json数据](https://img-blog.csdnimg.cn/20190824135727962.PNG)
     3. json数据解析思路
    
    我们可以看到在上图中每一条数据有:
    nwkAddr属性,为其网络地址,会在每次重新连接时改变
    parAddr属性,为其父节点地址,也会随着拓扑结构的改变而改变
    macAddr属性,为其网络地址,只要没人偷你的zigbee芯片,绝对不会变
    funcList属性,为每个节点的信息及数据
    
    ```
     if counter['macAddr']=='DCE15305004B1200':
                print("协调器工作正常!")
            elif counter['macAddr']=='1DE25305004B1200':
                print("路由1工作正常!")
            elif counter['macAddr']=='56DD5305004B1200':
                print("路由2工作正常!")
            elif counter['macAddr']=='3DE25305004B1200':
                temperature=counter['funcList'][0]
                humidity=counter['funcList'][1]
                print("温度为:", temperature['data'])
                print("湿度为:", humidity['data'])
            elif counter['macAddr']=='DBDD5305004B1200':
                # print(counter['funcList'])
                illumination=counter['funcList'][0]
                # print(illumination['data'])
                print("光照强度为:", illumination['data'])
            elif counter['macAddr'] == 'AD625305004B1200':
                print("控制节点工作正常!")
            else:
                print("网络连接错误,请重试!")
    ```
    因此这个循环使用每个节点的物理地址作为获取数据的依据
    
    其次json格式数据本质就是一个列表,在python中只需要对列表的操作即可提取到想要的数据
    
     4.数据存入数据库
     
    
    ```
     db = pymysql.connect("localhost", "root", "050014", "zigbee")
        cursor = db.cursor()
        sql = "INSERT INTO zigbeedata(time, temperature, humidity, illumination)VALUES('%s','%s','%s','%s')" % (
            nowTime, temperature['data'], humidity['data'], illumination['data'])
        cursor.execute(sql)
        db.commit()
        print("存入数据库成功!")
    ```
    配置数据库,将需要的数据存入就OK了。
    
    
    运行截图:![在这里插入图片描述](https://img-blog.csdnimg.cn/20190824140822496.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzOTIzNTg4,size_16,color_FFFFFF,t_70)
    数据库截图:
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190824140845850.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzOTIzNTg4,size_16,color_FFFFFF,t_70)
    之后需要使用传感器数据的时候只需要从数据库取出来就行了!
    
    
    希望对大家有一定帮助!最后祝大家考研顺利!
    
    展开全文
  • 课程设计报告 2019-01-05 15:19:49
    《c++程序设计课程设计报告           班级:数学2班 学号:2018212776 报告人姓名:刘涵 实验地点:山东农业大学东校机房411 完成起止时间:2019.1.2---2019.1.4                 ...
  • 物联网移动应用开发课程设计报告 ——音乐播放器 android studio 开发 .doc版找我要
  • 本论文是关于在物联网系统下所搭建的大棚温度自动控制系统
  • 物联网实训总结——简易的智能农场   一、场景需求  1. 农场环境监测 对农场的环境实现智能感知,对温度,湿度,光照值实时显示。同时检测农场烟雾状态,判断火情。实时监控农场人员出现情况。  2. 控制管理...
  • 1000套物联网毕业设计资料和电赛设计资料822,大四同学马上要写毕业设计了,我把之前收藏的毕业设计资料分享给大家,供大家学习参考。 如果出现解压问题,联系管理员毕业设计及产品设计资料:其他资料: 0001...
  • 物联网空气质量监测系统 2016-12-18 18:06:30
    通过物联网技术实时采集空气质量监测数据,上报到大数据计算平台,通过数据分析,控制各类设备进行空气净化处理 提供完整的二次开发api接口
  • 物联网概论知识点 2019-06-06 23:17:31
    物联网概论课程知识点整理 主讲教师:宋云胜老师 https://blog.csdn.net/Wjwstruggle/article/details/91051348 目录 物联网概论课程知识点整理 第一章 物联网概述 1、什么是物联网? 2、物联网核心技术 3...
  • 大四课程设计之基于RFID技术的考勤管理系统(一)读取COM口数据
  • 电子时钟课程设计报告 2017-12-18 13:23:53
    数字电路课程设计报告题目:数字电子钟的设计 姓 名: 乔蒙蒙 专 业: 物联网工程 班 级: 中兴物联网一班 学 号: 1506955060 第1章,课程任务设计及要求…………………………………………………3 第2章,
  • 使用Http协议下载文件,写入SD卡中 下载步骤: 1、创建一个HttpURLConnection对象 HttpURLConnection urlConn = (HttpURLConnection )url.openConnection(); 2、获得一个InputStream对象 urlConn.getInoutStream() 3...
  • 作品源代码 由于没有分块仔细讲解作品各部分源代码的具体功能,仅供大家进行代码运行及作品效果欣赏。希望有机会看到、用到粗部分代码的朋友,能自主相关理论知识,提高自己,而不仅仅是代码的拷贝,对自己好点!...
  • 物联网实验箱 2019-05-08 22:11:33
    移动互联安卓教学实验平台紧密围绕教育部移动互联网应用专业人才培养大纲要求,以移动互联网应用专业以及相关专业(包括计算机科学与技术、软件工程、网络工程、物联网工程、嵌入式开发等)的移动互联技术开发与应用...
  • 用Java从零开始开发一个物联网项目 多年的产品设计和开发经验,带领团队完成...
  • 华为NBlot物联网学习内 2018-06-30 12:50:18
    华为NBIOT物联网系列课程路线图 1.2.物联网的深度理解和最新动态 1.3.半小时了解NBIOT技术全貌 1.4.华为物联网体系全介绍2.NB476开发板核心技术详解 3.NBIOT物联网云管端全系统开发模式 3.1、端侧开发 3.2、...
  • 物联网专业前景 2018-01-04 21:14:18
    物联网专业是教育部允许高校增设新专业后,高校申请最多的学校,这也说明了国家对物联网经济的重视和人才培养的迫切性。 物联网是继计算机、互联网和移动通信之后的又一次信息产业的革命性发展,目前被正式列为...
  • 课程设计任务 一、作业目的  物联网的核心是应用,应用的核心是云计算。通过构建一个云计算平台,并利用这个平台设计云计算实验,将结果与普通的电脑计算比较两者的差别,感受云计算的优越性能,从而对物联网...
  • 这是一个课程设计的文档,源码及文档数据库我都修改过了,貌似这里复制过来的时候图片不能贴出 ...数据库原理课程设计说明书 目 录 1课题背景与意义.3 1.1课题开发背景.3 1.2课题开发意义.3 2系...
  • 湖南科技大学计算机科学与工程学院 《数据库系统》 课 程 设 计 题 目: 教学管理系统 专 业:计算机科学与技术 年 级: 2017级 班 级: 计科三班 ...数据库系统课程设计是为了配合数据库原理及应用开发而...
  • 课程设计 2015-01-11 11:42:10
    《数据结构课程设计》             课程题目 校园地图 课程编号   学生姓名  姚文华 所在专业 物联网工程 所在班级
1 2 3 4 5 ... 20
收藏数 790
精华内容 316