首页 > 最新动态 > 晶控课堂 >

Uair手机温湿度检测开发板源程序代码开源

2018-09-03 22:19
分享到:
KinCony自2013年推出了Uair空气检测盒子的产品,近几年来,我们一直在做硬件的更新以及软件的优化工作。随着近几年来,智能家居行业的热门度越来越高,更多的企业开始参与到智能家居产品的开发与销售工作,而KinCony一直定位于服务B端企业,为了方便广大企业能够迅速开发出智能家居类的产品,以及接入各自客户端的平台。我们从2017年开始,一直在努力于产品的二次开发以及开源方面的工作,不仅为企业客户提供硬件、软件服务,甚至于外壳、模具的设计与成品的提供。为客户打造一条龙的服务链。
以下是我们制作的Uair空气检测产品的开发板,为了方便广大开发者进行智能家居系统的二次开发应用:
该开发板,可以采集温度、湿度、PM2.5参数,通过板载的SIM卡,实现GPRS无线传输数据至远程服务器。
二次开发数据调用主要有两种模式:1、开发板的数据,通过GPRS方式无线传输至晶控电子的云服务器,用户可以通过向晶控云服务器获得温度、湿度、PM2.5的数值。 2、用户通过编写芯片嵌入式底层软件,直接将传感器采集到的底层数据,传回用户自己架设的云服务器,无需使用晶控电子的云服务器。
下面,我们就两种二次开发模式,分别进行讲解。
温湿度检测二次开发
开发板做得比较小巧,左侧白色为温湿度传感器探头,探头有多种不同的外形规格,如适用于空气的,也有适用于液体的水温传感器探头。
温度检测硬件
这是我们的硬件电路板,以及专门开模制作的外壳模具。
uair空气检测盒子
首先,我们通过晶控的“”易家智联“APP软件,先进行开发板的配置与使用。扫描二维码添加Uair设备至手机APP
温湿度二次开发
为了方便开发人员参考学习,我们进行了屏幕录像,以及拍摄了真实的视频演示,我们将上传至网站的“”视频演示”栏目,大家可以在线观看视频。

以下是我们Uair空气检测盒子的二次开发http协议接口说明。

UAir智能空气魔盒历史数据(公共)-- Designed By KinCony

 
● 接口描述:获取UAir空气魔盒历史数据的公共接口
● 接口类别:设备相关
● 接口版本:1.0
● 接口地址:/device/v1.0/fetchLastDays.action
● 接口参数:
○ deviceCode - 设备编号
○ intervalUnit - 间隔单位为周/天/小时,参数值(Week | Day | Hour)
○ intervalNum - 获取的历史数据时间长度
 
示例:
HTTP 请求:
http://voice.hificat.com:8080/smarthome.IMCPlatform/device/v1.0/fetchLastDays.action?deviceCode=17304c4bda3d8e8b63f1403d&intervalUnit=Week&intervalNum=1
 
接口返回:
{
    "data": {
        "deviceCode": "17304c4bda3d8e8b63f1403d",
        "latest": {
            "PM25": 0,
            "humidity": 30,
            "reportDateTime": "2018-01-02T00:00:00",
            "temperature": 16.5
        },
        "records": [
            {
                "PM25": 0,
                "humidity": 35,
                "reportDateTime": "2017-12-30T00:00:00",
                "temperature": 18.078033
            },
            {
                "PM25": 0,
                "humidity": 31,
                "reportDateTime": "2017-12-31T00:00:00",
                "temperature": 18.314703
            },
            {
                "PM25": 0,
                "humidity": 28,
                "reportDateTime": "2018-01-01T00:00:00",
                "temperature": 18.58797
            },
            {
                "PM25": 0,
                "humidity": 28,
                "reportDateTime": "2018-01-02T00:00:00",
                "temperature": 18.459135
            }
        ]
    },
    "message": "",
    "page": 0,
    "success": true,
    "total": 0,
    "totalPages": 0
}
服务器调用数据
在此,我们将http命令串直接复制到网页浏览器(将命令串中的deviceCode改成你当前实际使用的设备ID序号),回车后,我们便可以看到具体的返回数据了。服务器数据的调用,非常简单,3分钟即可轻松搞定。
下面我们来看一下,如何使用二次开发的第二种方式,编写芯片软件,实现底层数据传输至指定云服务器的方法。
keil5
我们可以使用Keil5嵌入式开发工具来编写程序,整个工程项目的DEMO源程序代码,我们已经为您开发完成。
(如需Keil软件,可以从其官网下载或了解购买信息,本站所提供的例程与资料仅供学习及参考使用)
keil工程
我们已经写好了单片机的底层数据采集与AD模数转换程序,同时,工程师对一些关键程序代码都进行了详细的注释,以便开发人员的理解。整个工程文件,直接打开,即可编译完成。
gprs程序
硬件电路板上,我们使用了SIMCOM公司的SIM800C通信模块为核心,其驱动代码在sim800.c文件中,对于通信部分,主要是指定服务器的IP地址和Port端口,如需将数据发送至您自己的云端服务器,只要将您的服务器IP地址及端口,在第20行程序代码中进行修改即可,相应的代码也有注释,相信一看就会明白。同时,在服务器上,您需要写好一个Socket通信的Server端的程序,前期,建议使用网络调试助手,直接设置好参数即可实现通信。如果写上位机程序时,也可以使用开发工具提供的Socket控件直接使用,如:VC、VB、JAVA、Delphi、C++Builder等等,均提供了相应的通信组件,使开发工作非常便捷。
温湿度采集
这是底层的温湿度采集的子程序,进行相应的AD模数转换,将模拟信号量转成数字量,再传送到服务器端。 
烧写程序
在程序修改完成后,我们通过USB口,将下载器与Uair硬件开发板相连,直接在Keil软件中,即可进行仿真操作或在线烧写程序的操作。
socket通信测试
烧写完成后,我们使用两台电脑进行测试,左侧笔记本电脑连接的是晶控的云服务器,我们在服务器上开了一个网络调试助手窗口,用于接收来自客户端的数据。右侧笔记本电脑,则是编写和烧写芯片软件。
软件调试
云服务器上设置的服务器IP和端口,分别是:118.31.187.235和1001,这正是我们在Keil软件中源程序中的参数设置,两边要一致。
串口通信
为了方便开发人员实时了解开发板的信息,我们将整块开发板工作时的当前状态都通过串口进行了反馈,开发人员,可以将Uair板上的串口和PC端相连,实时查看电路板的工作状态,如GPRS网络的连接,温湿度数据采集的频率和数值等等。
单片机串口通信
将电路板的串口通过USB转串口的适配器直接和笔记本电脑相连。
温湿度gprs检测
右侧屏幕上,可以看到每隔10秒,会采集到新的温湿度值,同时建立GPRS无线连接,并传输数据。左侧电脑屏幕上,可以看到来自客户端不断上报的数据值。
串口检测
这是实时串口检测,反映Uair开发板的当前工作情况。
开发手册
我们为开发人员准备了齐全的软硬件开发手册资料。如有问题,也欢迎和我们取得联系,我们的工程师将为您提供研发级的技术支持。