一、总体概述 

二、硬件系统

传感器模块调试

编译环境:

C编译器-IAR Embedded Workbench 

带有C/C++编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。


------------------------------------------------------------------------------------------

新建工作空间

在一个工作空间下,可以包含多个工程,每个工程可以单独配置与编译、调试、下载等,十分适合工业化需求与系统管理。操作如下:File\New\Workspace,点击保存按钮,设置文件名后保存。

1、先创建一个工作区(Workspace)

2、创建一个工程并将创建的工程添加到工作区    选择Project->Create New Project。弹出Create New Project对话框,可以让用户按照模板创建新工程。

 

单片机中的串口是什么

最通俗的解释:一种通讯接口,用来传输一些数据。

硬件特性

1、主流单片机包括CPU、4KB容量的RAM、128 KB容量的ROM、 
2个16位定时/计数器、4个8位并行口、全双工串口行口、ADC/DAC、SPI、I2C、ISP、IAP。

RAM(random access memory)即随机存储内存,这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。
ROM(Read-Only Memory)即只读内存,是一种只能读出事先所存数据的固态半导体存储器。

2、系统结构简单,使用方便,实现模块化;
3、单片机可靠性高,可工作到10^6 ~10^7小时无故障;
4、处理功能强,速度快。
5、低电压,低功耗,便于生产便携式产品
6、控制功能强
7、环境适应能力强

 

软件的使用:

1、Proteus的简介

EDA工具(仿真软件)

 

 

2、Keil C51的简介

 

 温湿度传感器DHT11

DHT11用的是单总线协议,一次传送40位的数据。注意了,看到这一句话,也就是说我们每次读取DHT11的数据时,都要一次性读取40次,也就是读取40位。
并且数据前16位是与湿度相关的,中间16位是与温度相关的,最后八位是用来校验的,当我们校验成功后,证明这一次的温湿度结果正确的,我们单片机就可
以使用这个温湿度值;如果校验不通过,那么就代表我们这次读取出来的温湿度值,是错误的(也许是我们的时序错误了,也许是传感器的问题),我们不进
行采样。

单片机A/D转换, 

A/D转换器是用来通过一定的电路将模拟量转变为数字量。模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。
但在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各种物理量转换成电压信号。

单片机怎么和传感器通信连接

选择器材STM32、温湿度传感器、PM2.5传感器、分贝传感器、GPRS模块、LORA模块

选择开发IAR软件,通过ST-Link和单片机连接下载

单片机和lora模块

单片机和GPRS模块

 

 

PM2.5检测 -- PMS7003 开发程序

PM2.5检测 -- PMS7003 串口测试

 

基于GPRS方式连接OneNET(SIM900A)

物联网:GPRS和NB-IOT

 调试:将USB转TTL串口与SIM模块连接

SIM800C通讯模块调试(一)用这个案例连接,然后用OneNet的案例调试

 

GPRS: 视频讲解
1,是GSM的一种移动数据业务,是2G移动通信的数据传输技术。
2,传输速率为几十kbps
3,永远在线,不会被呼入的电话打断
4,模块启动电流较大,约2A

GPRS应用
1,目前应用最广泛的移动物联网解决方案。
2,信号覆盖面积最广的移动物联网,野外/山区/原野。
3,广泛应用于环境监测、自动抄表、电力公司输电线路检测、车联网、工程建筑质量监理、智慧农业等几乎所有户外移动物联网应用场景。

4,模块价格¥20-30

NB-IOT
1, NB-IoT,即窄带物联网(Narrow Band Internet of Things)。可直接部署于GSM网络、UMTS网络或LTE网络,部署成本低。
2,一种新兴技术,覆盖面积广,低功耗广域网。
3,资费低,未来可能取代GPRS

4,模块价格预计5美元。

视频讲解:https://weibo.com/tv/v/Gkiet9IYe?fid=1034:4fd2e7318d9a0eb317da2bfcfad19ee5

 

用loar模块进行数据传输

 多个LORA模块接收数据但是只有一个模块能接收数据的情况

 

 两个LORA模块工作在一般模式定向传输数据的测试方法

【LoRa模块_E32-TTL-100】+节点端代码实现 

http://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=615488&highlight=E32-TTL-100

 

 

视频开发版调试

 oneNet视频开发版,linux指令

 

执行好./wifi后自动回到命令行输入,每次进入修改一下保存!!!

vi config.json  每次进入都要假修改再保存退出

 

1、表的设计

Django中的Model(操作表)

https://www.cnblogs.com/chenchao1990/p/5311531.html?utm_source=tuicool&utm_medium=referral

2、echarts X轴数据显示不全问题

很奇怪,X轴只显示了部分节点。没有显示全。

在xAxis上加上下面的配置就能解决:

axisLabel :{
    interval:0 
}

坐标轴刻度标签的显示间隔,在类目轴中有效。

默认会采用标签不重叠的策略间隔显示标签,可以设置成 0 强制显示所有标签。

3、解决时间轴的问题

 

把四个传感器读数放在一个折线图里面显示

仪表盘的形式显示当下的最新读数

仪表盘中各种数据的含义可自定义 

 

4、web直播api

手机端推流,网页端直播

 https://cloud.tencent.com/document/product/267/5704

网页端播放器的代码实现

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>地图坐标定位</title>
    <script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=67jMQ5DmYTe1TLMBKFUTcZAR"></script>

    {#    直播推流#}
    <script src="//qzonestyle.gtimg.cn/open/qcloud/video/live/h5/live_connect.js" charset="utf-8"></script>;


{#    <script src="http://vjs.zencdn.net/5.19/lang/zh-CN.js"></script>#}
{#          #}

    <style type="text/css">
        body {
            margin: 0;
            padding: 0;
            font: 12px/1 "Microsoft Yahei", "微软雅黑", sans-serif;
        }

        p, span {
            font-family: 'Microsoft Yahei' !important;
        }

        #map {
            overflow: hidden
        }

        #allmap {
            float: left
        }

        #container {
            float: left
        }

    {#    video#}


    </style>

    {#   echarts #}
    <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>
    <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-gl/echarts-gl.min.js"></script>
    <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-stat/ecStat.min.js"></script>
    <script type="text/javascript"
            src="http://echarts.baidu.com/gallery/vendors/echarts/extension/dataTool.min.js"></script>
    <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/china.js"></script>
    <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/world.js"></script>
    <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=ZUONbpqGBsYGXNIYHicvbAbM"></script>
    <script type="text/javascript"
            src="http://echarts.baidu.com/gallery/vendors/echarts/extension/bmap.min.js"></script>
    <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/simplex.js"></script>
    {#    echarts   #}
</head>

<body>
<div id="map">
    <div style="width: 800px; height: 503px;" id="allmap"></div>

    <div id="container" style="width: 600px;height: 400px"></div>
</div>
<div>
    <button style="width: 300px;height: 50px;" id="map1">
        定位到武汉黄鹤楼
    </button>
    <button style="width: 300px;height: 50px;" id="map2">
        定位到武汉大学文理学部
    </button>
</div>

{#<div id="video" style="width: 600px; height: 400px;"></div>#}



<div id="id_video_container" ></div>


</body>


<iframe style="display: none;" id="geoPage" width="100%" height="30%" frameborder=0 scrolling="no"
        src="https://apis.map.qq.com/tools/geolocation?key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77&referer=myapp&effect=zoom"></iframe>
<!-- 接收到位置信息后 通过 iframe 嵌入位置标注组件 -->

<script type="text/javascript">
    function ShowMap(zuobiao, name, addrsee, phone, chuanzhen, zoom) {
        var arrzuobiao = zuobiao.split(',');
        var map = new BMap.Map("allmap");
        map.addControl(new BMap.OverviewMapControl());
        map.centerAndZoom(new BMap.Point(arrzuobiao[0], arrzuobiao[1]), zoom);
        map.addControl(new BMap.NavigationControl());
        var marker = new BMap.Marker(new BMap.Point(arrzuobiao[0], arrzuobiao[1]));
        map.addOverlay(marker);
        var infoWindow = new BMap.InfoWindow('<p style="color: #bf0008;font-size:14px;">' + name + '</p><p>地址:' + addrsee + '</p><p>电话:' + phone + '</p><p>传真:' + chuanzhen + '</p>');
        marker.addEventListener("click", function () {
            this.openInfoWindow(infoWindow);
        });
        marker.openInfoWindow(infoWindow);
    }


    var loc;
    var isMapInit = false;
    //监听定位组件的message事件
    window.addEventListener('message', function (event) {
        loc = event.data; // 接收位置信息
        //console.log('location', loc);
        if (loc && loc.module == 'geolocation') { //定位成功,防止其他应用也会向该页面post信息,需判断module是否为'geolocation'
            var markUrl = 'https://apis.map.qq.com/tools/poimarker' +
                '?marker=coord:' + loc.lat + ',' + loc.lng +
                ';title:我的位置;addr:' + (loc.addr || loc.city) +
                '&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77&referer=myapp';
            //给位置展示组件赋值
            // document.getElementById('markPage').src = markUrl;
            var lng = loc.lng//经度
            var lat = loc.lat //维度
            console.log(lng)
            ShowMap('' + lng + ',' + lat + '', 'dome', loc.city, '1388888888', '010-88888888', '20');
        } else {
            console.log('定位失败');
        }
    }, false);


    $('#map1').click(function () {//点击更换坐标
        ShowMap('114.313479,30.547525', 'dome', '武汉', '武汉黄鹤楼', '888666888', '20');
        $.ajax(
            {
                url: '',
                type: 'post',
                //

                success: function (data) {
                    data = data['k2']


                    console.log(data);
                    if (data) {


                        var dom = document.getElementById("container");
                        var myChart = echarts.init(dom);
                        var app = {};
                        option = null;
                        option = {
                            xAxis: {
                                type: 'category',
                                boundaryGap: false,
                                axisLine: {onZero: false},

                                data: data[0].map(function (str) {
                                    return str.replace(' ', '\n')
                                }), axisLabel: {
                                    interval: 0
                                }


                            },
                            yAxis: {
                                name: '温度',
                                type: 'value'
                            },
                            series: [{
                                data: data[1],
                                type: 'line'
                            }]
                        };
                        ;
                        if (option && typeof option === "object") {
                            myChart.setOption(option, true);
                        }


                    }

                }
            })


    })
    $('#map2').click(function () {//点击更换坐标
        ShowMap('114.368107,30.543083', 'dome', '武汉 ', '武汉大学文理学部', '021-66658888', '20');
        // 登录验证
        $.ajax(
            {
                url: '',
                type: 'post',
                //

                success: function (data) {
                    data = data['k1']


                    console.log(data);
                    if (data) {


                        var dom = document.getElementById("container");
                        var myChart = echarts.init(dom);
                        var app = {};
                        option = null;
                        option = {
                            xAxis: {
                                type: 'category',

                                data: data[0],
                            },
                            yAxis: {
                                type: 'value'
                            },
                            series: [{
                                data: data[1],
                                type: 'line'
                            }]
                        };
                        ;
                        if (option && typeof option === "object") {
                            myChart.setOption(option, true);
                        }


                    }

                }
            })


    })


var option = {
"live_url" : "rtmp://3891.liveplay.myqcloud.com/live/3891_user_c1c2c329_5224?bizid=3891&txSecret=d31ab37d0e5fb0967b80f0855ff6d93b&txTime=5C27718F",
"live_url2" : "http://2000.liveplay.myqcloud.com/live/2000_2a1.flv",
"width" : 480,
"height" : 320

//...可选填其他属性
};

var player = new qcVideo.Player("id_video_container", option)

</script>
</html>
View Code

谷歌问题无法播放的问题

用Django 发送邮件的方法

用花生壳内网穿透

 

 

物联网平台onenet的使用

1、通过ONENET文档中心的快速开始进行平台的注册及产品的创建。

2、设备联网,对准备上传的数据进行组包。可使用restful API或直接用平台写好的SDK

{“liu”:123} 
3、设备和平台建立连接(通过设备ID和APIkey)

至此,您已经在OneNET上完成了产品的创建。

若您选择的是EDPMQTTHTTPModbus或者JT\T808作为接入协议,请进入公开协议产品指南了解详情;

若您选择的是RGMP作为接入协议,请进入私有协议产品指南了解详情。

 

oneNet文档中心

 

 

 

1、采集终端:

 


OneNET视频能力体验------使用树莓派摄像头推流

 

从中移动onenet平台获取数据

import urllib #python3
 
DEVICE_ID='3*****6'#设备ID
API_KEY='tJX4fe************WbQoGo= '#产品的APIKEY,是MAsterKey,具有最大权限
 
#获取的是数据流最近更新的数据点值
def http_get_data():
        url='http://api.heclouds.com/devices/'+DEVICE_ID+'/datapoints'
        request = urllib.request.Request(url)
        request.add_header('api-key',API_KEY)
        request.get_method = lambda:'GET'           # 设置HTTP的访问方式
        request = urllib.request.urlopen(request)
        return request.read()
 
 
post = str(http_get_data())#返回的报文转换成字符串格式
print('*'*100)
print(post)
str1=post.split('datapoints":')[1].split('[{')[1].split('},')[0]
str2=post.split('datapoints":')[2].split('[{')[1].split('},')[0]
str3=post.split('datapoints":')[3].split('[{')[1].split('},')[0]
str4=post.split('datapoints":')[4].split('[{')[1].split('},')[0]
str5=post.split('datapoints":')[5].split('[{')[1].split('},')[0]
print('*'*100)
print(str1)
print('*'*100)
print(str2)
print('*'*100)
print(str3)
print('*'*100)
print(str4)
print('*'*100)
print(str5)
print('*'*100)
View Code

 

 基于Django的环境监测系统

温度、湿度、PM2.5、视频模块

oneNet平台添加触发器设置报警规则,对超过预设阀值的异常环境数据进行报警以引起用户的注意

向用户预留的手机号码或邮箱进行消息报警

 

设置定时器功能,每5分钟上报一次,每5分钟采集一次

 

OneNet api文档

 

OneNET介绍学习资料、视频、例程代码汇总帖(2017年6月19日)

 

树莓派传输数据给OneNET(HTTP形式)

使用python和树莓派实现远程监控

 

树莓派能用来做啥?

 

温度没问题

湿度

一、湿度,表示大气干燥程度的物理量。
二、在一定的温度下在一定体积的空气里含有的水汽越少,则空气越干燥;水汽越多,则空气越潮湿。
三、空气的干湿程度叫做“湿度”。在此意义下,常用绝对湿度、相对湿度、比较湿度、混合比、饱和差以及露点等物理量来表示。
四、若表示在湿蒸汽中水蒸气的重量占蒸汽总重量(体积)的百分比,则称之为蒸汽的湿度。
五、人体感觉舒适的湿度是:相对湿度低于70%。

 分贝:

分贝(decibel)是量度两个相同单位之数量比例的计量单位,主要用于度量声音强度,常用dB表示。

pm2.5:

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>地图坐标定位</title>
    <meta name="viewport" content="width=device-width,initial-scale=1"/>
    <link rel="stylesheet" href="/static/blog/bootstrap-3.3.7/css/bootstrap.css">
    <script src="/static/JS/jquery-3.2.1.min.js"></script>
    <script src="/static/blog/bootstrap-3.3.7/js/bootstrap.min.js"></script>

    <script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=67jMQ5DmYTe1TLMBKFUTcZAR"></script>

    {#    直播推流#}
    <script src="//qzonestyle.gtimg.cn/open/qcloud/video/live/h5/live_connect.js" charset="utf-8"></script>
    {#导航栏#}

    <link rel="stylesheet" href="/static/css/index.css">

    <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->

    {#    #}


    {#    <script src="http://vjs.zencdn.net/5.19/lang/zh-CN.js"></script>#}
    {#          #}

    <style type="text/css">
        body {
            margin: 0;
            padding: 0;
            font: 12px/1 "Microsoft Yahei", "微软雅黑", sans-serif;
        }

        p, span {
            font-family: 'Microsoft Yahei' !important;
        }

        #all, #all2 {
            overflow: hidden
        }

        #allmap {
            float: left
        }

        #show, #show2 {
            float: left
        }

        #show3, #id_video_container {
            float: left
        }
    </style>

    {#   echarts #}
    <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>
    <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-gl/echarts-gl.min.js"></script>
    <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-stat/ecStat.min.js"></script>
    <script type="text/javascript"
            src="http://echarts.baidu.com/gallery/vendors/echarts/extension/dataTool.min.js"></script>
    <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/china.js"></script>
    <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/world.js"></script>
    <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=ZUONbpqGBsYGXNIYHicvbAbM"></script>
    <script type="text/javascript"
            src="http://echarts.baidu.com/gallery/vendors/echarts/extension/bmap.min.js"></script>
    <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/simplex.js"></script>
    {#    echarts   #}
</head>

<body>

{#导航栏#}
<script type="text/javascript">
    $(function () {
        $('.navbar-nav li ').click(function () {
            //添加类名addclass、siblings查找所有兄弟元素---不包括自己
            $(this).addClass('active').siblings('li').removeClass('active');
        });
    })

</script>

<nav class="navbar  navbar-inverse">
    <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
                    data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/index/">首页</a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav">
                <li id="person_index"><a href="/{{ request.user }}/">个人主页<span class="sr-only">(current)</span></a></li>
                <li id="notebook"><a href="/cn_backend/">笔记</a></li>
                <li id="monitor_center" class="active"><a href="/map/">监控中心</a></li>
            </ul>


        </div><!-- /.navbar-collapse -->
    </div><!-- /.container-fluid -->
</nav>

{#-------导航栏----end#}
<div id="all">

    <div style="width: 800px; height: 700px;" id="allmap"></div>

    {# 可视化图形 #}
    <div id="show">
        <div id="container" style="width: 600px;height: 300px">
            <div id="dashboard" style="width: 280px;height:280px;display:inline-block "></div>
            <div id="dashboard2" style="width: 280px;height:280px;display:inline-block "></div>

        </div>
        <div id="container2" style="width: 600px;height: 400px"></div>
        {#        所有传感器#}

    </div>

    <div id="show2">
        <div id="container3" style="width: 600px;height: 300px">
            <div id="dashboard3"  style="width: 280px;height:280px">
                <button type="button" class="btn btn-success">(成功)Success</button>
            </div>

            <div id="dashboard4" style="width: 280px;height:280px">
                <button type="button" class="btn btn-info">(一般信息)Info</button>
            </div>
        </div>
        <div id="container4" style="width: 600px;height: 300px"></div>
        {#    视屏显示#}
    </div>

</div>


<div id="all2">

    <div id="show3" style="width: 800px;height: 300px">
        <button style="width: 300px;height: 50px;" id="map1">
            定位到武汉黄鹤楼
        </button>
        <button style="width: 300px;height: 50px;" id="map2">
            定位到武汉大学文理学部
        </button>
    </div>
    <div id="id_video_container"></div>

</div>
{#<div id="video" style="width: 600px; height: 400px;"></div>#}


</body>


<iframe style="display: none;" id="geoPage" width="100%" height="30%" frameborder=0 scrolling="no"
        src="https://apis.map.qq.com/tools/geolocation?key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77&referer=myapp&effect=zoom"></iframe>
<!-- 接收到位置信息后 通过 iframe 嵌入位置标注组件 -->

<script type="text/javascript">
    function ShowMap(zuobiao, name, addrsee, administrator, phone, zoom) {
        var arrzuobiao = zuobiao.split(',');
        var map = new BMap.Map("allmap");
        map.addControl(new BMap.OverviewMapControl());
        map.centerAndZoom(new BMap.Point(arrzuobiao[0], arrzuobiao[1]), zoom);
        map.addControl(new BMap.NavigationControl());
        var marker = new BMap.Marker(new BMap.Point(arrzuobiao[0], arrzuobiao[1]));
        map.addOverlay(marker);
        //var infoWindow = new BMap.InfoWindow('<p style="color: #bf0008;font-size:14px;">' + name + '</p><p>详细地址:' + addrsee + '</p>');
        var infoWindow = new BMap.InfoWindow('<p style="color: #bf0008;font-size:14px;">' + name + '</p><p>地址:' + addrsee + '</p><p>负责人:' + administrator + '</p><p>电话:' + phone + '</p>');
        marker.addEventListener("click", function () {
            this.openInfoWindow(infoWindow);
        });
        marker.openInfoWindow(infoWindow);
    }


    var loc;
    var isMapInit = false;
    //监听定位组件的message事件
    window.addEventListener('message', function (event) {
        loc = event.data; // 接收位置信息
        //console.log('location', loc);
        if (loc && loc.module == 'geolocation') { //定位成功,防止其他应用也会向该页面post信息,需判断module是否为'geolocation'
            var markUrl = 'https://apis.map.qq.com/tools/poimarker' +
                '?marker=coord:' + loc.lat + ',' + loc.lng +
                ';title:我的位置;addr:' + (loc.addr || loc.city) +
                '&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77&referer=myapp';
            //给位置展示组件赋值
            // document.getElementById('markPage').src = markUrl;
            var lng = loc.lng//经度
            var lat = loc.lat //维度
            console.log(lng)
            ShowMap('' + lng + ',' + lat + '', '监测点', loc.city, 'someone', '18012346542', '20');
        } else {
            console.log('定位失败');
        }
    }, false);


    $('#map1').click(function () {//点击更换坐标
        ShowMap('114.313479,30.547525', '监测点A', '武汉黄鹤楼', '张三', '13612346541', '20');
        $.ajax(
            {
                url: '',
                type: 'post',
                //
                success: function (data) {
                    //data = data['k2']//===[list,list2]
                    console.log(data, typeof data);
                    if (data) {

                        var dom = document.getElementById("container2");
                        var myChart = echarts.init(dom);
                        option = null;
                        option = {
                            title: {
                                text: '传感器读数'
                            },
                            tooltip: {
                                trigger: 'axis'
                            },
                            legend: {
                                data: ['温度(℃)', '湿度(%)', 'PM2.5(μg/m3)', '分贝(dB)']
                            },


                            xAxis: {
                                type: 'category',
                                boundaryGap: false,
                                axisLine: {onZero: false},

                                data: data['Humidity'][0].map(function (str) {
                                    return str.replace(' ', '\n')
                                }), axisLabel: {
                                    interval: 0
                                }


                            },
                            yAxis: {

                                type: 'value'
                            },

                            series: [
                                {
                                    name: '温度(℃)',
                                    type: 'line',

                                    data: data['Temperature'][1]
                                },
                                {
                                    name: '湿度(%)',
                                    type: 'line',

                                    data: data['Humidity'][1]
                                },
                                {
                                    name: 'PM2.5(μg/m3)',
                                    type: 'line',

                                    data: data['PM2_5_Content'][1]
                                },
                                {
                                    name: '分贝(dB)',
                                    type: 'line',

                                    data: data['NoiseValue'][1]
                                },

                            ]


                        };
                        myChart.setOption(option, true);
                    }

                    //two
                    if (data['new_Temperature']) {


                        var dom2 = document.getElementById("dashboard");
                        var myChart2 = echarts.init(dom2);
                        option = {
                            series: [
                                {
                                    name: '业务指标',
                                    type: 'gauge',
                                    detail: {formatter: '{value}℃'},
                                    data: [{value: data['new_Temperature'][1], name: '温度'}]
                                },
                            ]
                        };

                        myChart2.setOption(option, true);


                    }

                    //three
                    if (data['new_Humidity']) {

                        var dom3 = document.getElementById("dashboard2");
                        var myChart3 = echarts.init(dom3);

                        option = {
                            series: [
                                {
                                    name: '业务指标',
                                    type: 'gauge',
                                    detail: {formatter: '{value}%'},
                                    data: [{value: data['new_Humidity'][1], name: '湿度'}]
                                }
                            ]
                        };

                        myChart3.setOption(option, true);

                    }

                    //four


                }
            })
    });

    $('#map2').click(function () {//点击更换坐标
        ShowMap('114.368107,30.543083', '监测点B', '武汉大学文理学部教5 ', '李四', '021-66658888', '20');
        // 登录验证
        $.ajax(
            {
                url: '',
                type: 'post',
                //

                success: function (data) {
                    //data = data['k1']


                    console.log(data);
                    if (data['NoiseValue']) {
                        data4 = data['NoiseValue']

                        var dom = document.getElementById("container");
                        var myChart = echarts.init(dom);
                        var app = {};
                        option = null;
                        option = {
                            xAxis: {
                                type: 'category',

                                data: data[0],
                            },
                            yAxis: {
                                type: 'value'
                            },
                            series: [{
                                data: data[1],
                                type: 'line'
                            }]
                        };

                        if (option && typeof option === "object") {
                            myChart.setOption(option, true);
                        }


                    }

                }
            })


    });

    var option = {
        "live_url": "rtmp://3891.liveplay.myqcloud.com/live/3891_user_1693306d_5838?bizid=3891&txSecret=5d4c6dd2ab8b914246c56a58ef0495c3&txTime=5C2EB1C6",
        {#"live_url2" : "http://2000.liveplay.myqcloud.com/live/2000_2a1.flv",#}
        "width": 480,
        "height": 300

//...可选填其他属性
    };

    var player = new qcVideo.Player("container4", option)

</script>
</html>
代码1.7版本

 

Django网页开发

 网页端百度地图引用出现问题:

解决方法

 

posted on 2018-12-27 19:22  foremost  阅读(1117)  评论(0编辑  收藏  举报