查看: 20241
回复: 16
参赛作品《物联网采控系统》完结
求生之路
1
主题
15
回复
发表于2017-06-11 12:46:41 | 显示全部楼层
1# 电梯直达

【报名阶段需要填写的内容】


1. 参赛者姓名(必填项):

 张工  94900A (立创ID)

2. 单位或学校名称(必填项):

个人

3. 当前职务或职称(必填项):

电子工程师

4. 参赛作品的名字(必填项):

物联网采控系统(通用设备)

5. 简要陈述您的idea和作品(必填项):

    该系统会是一个标准的物联网采控系统,通过标准的接口接入设备可以后期无限制的扩展,避免了每次扩展需要整体修改架构。

系统可以用于家庭物联网,可以实现采集各项指标,例如PM2.5,室内温度光照,有毒气体等。同时还可以通过控制链路进行对相应的设备控制操作。

系统可以用于工业采控,智能家居,对环境的采集,实时监控环境的指标,如果需要可以实时对相应的控制设备进行下发控制


该系统具备一个服务器后台,服务器系统采用linux,服务器编写采用PHP/C/C++

对于数据的展现,由于时间关系,只初级暂时实时消息,展示端为PC端,采用C#操作,如果时间不够,则采用MQTT协议实施发布展示数据内容,这样可以通过第三方的MQTT客户端查阅。


目前需要展示的设备内容有网关+无线采集器+无线/有线控制器。

网关:

    公网采用以太网通信,后续可以兼容GSM等通信方式

    主板自带WIFI,前期暂时不用

    本地网络采用Lora通信以及2.4G(NRF24L01)

    主控采用STM32F系列

    支持RS485/232总线,方便驳接设备

无线采集器:

    低功耗设计,电池供电

    采用Lora通信方式

    主控采用STM8L系列

    挂载SHT20温湿度传感器

控制器:

    采用2.4G(NRF24L01)通信

    支持4路继电器控制(展示用,实际可以扩展)

    主控采用STM8


说明:

    为了节省时间,射频部分均采用购买模块来完成,包含LORA模块,NRF24L01P模块


6. 拟用到的立创商城在售物料(必填项):

主控 STM32 STM8

外围器件 电阻 电容 电感 DCDC 等等

7. 拟用到的非立创商城物料或其它补充(必填项):

LORA模块

NRF24L01P模块

【作品正式发表(报名成功后进入设计阶段)需要填写的内容】


一、作品简介

例如,可以包括但不局限于以下内容:

1.作品的整机外观图片或焊接组装好的PCBA图片;

2.作品的研究背景、目的和功能、市场应用前景;

3.作品在创新性、趣味性、实用性甚至公益性方面,有哪些亮点可体现?


        现在的物联网设备品种太多,如果要把各类的协议标准起来也不可能,例如MODBUS也只是标准了协议,并没标准协议内的有效数据。这样就会使

各个厂家有各自的软件。如果自家用了5家的设备,那么最终你想控制这些设备要来回切换,不麻烦吗?同时也防止厂家间接“强奸”用户,例如:

            为了使用更加方便,买同一个牌子的设备,实际上有些我并不是很喜欢,只是能凑合罢了。


      用这个网关就是集成各种厂家的数据,最终给用户的只是一个界面,这样用户体验更加清爽,舒适。同时还可以把古老的设备,没有接入互联网功能

的设备让它联网!成为一个互联网设备。让数据集中管理,用户单一管理,效率更高更实用。


二、系统构架图

用流程图或思维导图等形式,描述您的作品的组成构架,即方案图。


  点击查看大图


网关与服务器通信架构图:

 


关与节点的通信架构图:

 

三、硬件部分的描述

1.附上原理图&PCB实物图的图片或者源文件(官方建议大家尽量用源文件上传),如果是图片,请确保图片是清晰可辨的;

2.用文字把该作品的实现原理、系统的工作过程大致讲解一下。

PCB原文件:网关PCB源文件 

网关原理图:

 

 

 

 

 

 

 

 

-----------------------------------------网关PCB图片如下--------------------------------------------------

  

 

 

 

网关PCB实物图,手工焊接了2张,WIFI是预留了接口,ESP-08

 点击查看大图

 点击查看大图 点击查看大图

 点击查看大图

采用了很多钽电容,目前全部焊接,如果作为实际的产品而言,可以通过测压力,去掉一些钽电容,毕竟成本太高了

 选取的网关外壳,铝合金的,不过商家不给开孔,我得想办法了

点击查看大图

 点击查看大图

 点击查看大图

=====================================无线采集控制功能验证板===============================

  

 

 

 PC远程控制软件

 

 

 

四、材料清单(BOM列表)

列出您这个作品所用到的主要器件(关键器件即可),比如单片机&ARM芯片、专用集成芯片(ASIC)、传感器、功能模块等。

如果所列出的芯片是来自我们立创商城上的,最好能写出该器件的商品编号或附上对应购买链接。

MCU:

STM32F205

存储:

W25Q64 & TF

无线通信:

RA-01/02 & NRF24L01P & ESP8266(预留接口)

有线通信:

RS232/485

RTC:

PCF8563T

传感器:

BH1750FVI

SHT211

DS18B20

MQ-135/MQ-2

DCDC:

MP2451

LDO:

ME6210

所有元器件都是常用你的,除了模块,其他的立创都有。模块想必每个人呢都见过了吧,都是行业大佬出的模块。

  

BOM没有整理,有点乱!嘿嘿

五、软件部分的描述(选填)

见 【二】

硬件介绍:

LORA(Aithink RA-01):

      选取LORA的原因是,针对于物联网行业,越来越多的设备选择它是因为距离比较远,但是缺点也没见几个人说,那就是距离远,传输速率慢!传输时间长!

      (20dbm的功率,9600bps的速率,空旷距离1km左右)

      LORA应用,对于数据量小,使用环境复杂的情况使用还不错。对于智能家居这一块使用我个人觉得还不错,因为在家里面,几乎全是墙壁,如果用zigbee,

      会涉及到非常多的路由,如果链路断掉,很定位问题点。对于这种环境,看好LORAWAN,顺带吐槽下,目前LORAWAN的开发设备套件太JB贵了!!!!

      选择理由:距离远,未来主流

NRF24L01P(PA+LNA):

        这款搞这行电子的应该都知道了吧,现在很多无线通信设备、传感器都是用它做无线,甚至国内还有这款的SOC,这价格叫一便宜。所以可以挂载很多不同

        厂家的传感器,知道对方的协议即可。

        NRF24L01P,传输速率比LORA快N倍,但说【入网】这个流程那是ms级别。LORA那是 百ms级别,但是缺点就是无线绕射性能不怎么好,传输直线距离

        还不错,但是曲线,有障碍物这种情况距离大大衰减。

        选择理由:市场占有率高,便宜

W25Q64:

       这款华邦的SPI FLASH,只要用过SPI FLASH 的工程师应该第一款就用的这类吧。说下个人看法:

       优点:便宜,好用

       缺点:擦除时间太长了!!!!!

       选择理由:便宜!好用!

W5500:

      对于以太网而言,要么跑协议栈,要么就用硬件,再要么上高逼格linux(自带)。我这里选取的是W5500,因为主办方要求用STM芯片,其次跑通协议栈很

      简单,搞稳定协议栈不简单!!所以,为了项目进度、稳定所以选取了W5500。

      芯片支持8个socket,1个用于通信,1个用于UDP(本地配置参数用,广播),1个DNS,预留1个TCP SERVER做网页。

      目前使用中还是很稳定,用W5500官方的栈分分钟钟搞定,比较稳定。

      提示:在我使用中发现socket刚连接上就发送数据,会返回成功,但是服务器并没收到数据。解决方法:链接上socket后,延时300ms(随便延时的)再发送。

      选择理由:开发简单,大大缩短了开发时间,成本也不会上升多少,芯片使用也很稳定。

ESP8622:

     出货量相当惊人的WIFI模块,所以必须得兼容,现在很多智能家居都是用的它采集控制的。不过同是在一个局域网,依然可以通过W5500控制那些WIFI设备。

     暂时预留着,后续使用。不过有网线的地方还是建议用以太网,WIFI的稳定性受自身以及路由器的影响,会导致产品体验感不受控制,掉线了是设备问题还是

     路由器问题呢?

     选择理由:便宜!大众化!


RS232/485:

    古老且标准的通信方式,必须兼容。打印机、传感器啥的几乎都有这个东西,所以必须兼容。如果家里有一台传统的打印机,想要改造成互联网打印,所以这就

    派上用场了,拨接协议,直接远程通信打印就搞定了!

    硬件设计采用了全隔离方式(信号+电源),保证主控不会受影响。毕竟外接什么设备是unknow的。

    选择理由:地球标准,兼容新旧设备

USB:

      采用USB HID方式进行通信,目前下位机已经完成,上位机还没写完.....。后续继续!

      为什么采用HID方式? -->> 免驱!!!

      打开上位机,插上设备即可完成通信多么好,虽然速率不高,但是满足配置以及读取信息足矣了!

      如果虚拟串口,那么你打开的是串口几呢?还要去选择,很麻烦的。体验感太差劲了。

      选择理由:仅需要一根USB Micro 数据线(大部分安卓手机标配)即可

TF:

     目前是预留了TF卡,是为了用做长期的大量历史数据存储。通信接口是SDIO方式,硬件已经完善,软件还没有调试。目前使用W25Q64来存储历史数据。

     选择理由:地球标准大容量储存卡


RTC:

    RTC选取的是一款比较常用的型号PCF8563T,同时配上了一颗充电电池作为RTC备用电源。这颗芯片通信方式采用常用的IIC,很方便操作。

    选择理由:便宜!操作简单!稳定!


网关功能介绍:

     1. 远程升级

         原理:通过以太网/RS232/R485/LORA 按照指定格式把升级Bin文件发送给网关,目前实现的是通过以太网网络发送,

                   每次发送256byte字节。因为软件是等Bin文件接收完了之后,再跳转到Bootloader进行升级,所以在此是存储在SPI FLASH上的。

                   该SPI FLASH 单次写入最大数据是256byte,所以这样规定的。其次是因为数据采用json协议,如果数据量过大,会导致解析json开销过大。

                   提示:发送bin文件,因为是16进制,所以我用了base64进行转码。

     2. 数据缓存

          软件内部会有一个RAM的缓存池,根据芯片的RAM来决定,目前我用的这款我采用了最大50KB来作为缓存池,以便于网络不稳定,数据不会丢失。

          如果数据存满了,网络依旧尚未畅通,则会按照指定格式存储在SPI FLASH 指定的区域,以便于网络通畅后把历史数据上传到服务器。

     3. 无线通信

         载无线通信模块:RA-01(LORA) + NRF24L01P+ESP8266,目前ESP8266预留接口,功能调试主要是针对于RA-01+NRF24L01P。

         由于硬件原因,LORA的单包最大数据为128Byte,NRF24L01P最大数据为32Byte,这对于传输json数据太痛苦,但是传输modbus这种协议很难

         解读。所以我采用的类似json的“序列化”+“反序列化”的方式进行编写,这样后期可无限制的添加协议,不会影响之前设备的协议。

         同时在LORA和NRF24L01P上做了简单的拆组包协议,以便于发送更长的数据包。目前支持最高512Byte。

     4. 兼容协议

         无论是通过RS232/485、LORA、NRF24L01、ETH,所有的数据协议会分为两种,第一种JSON,第二种自定义协议。然后把数据放入指定的TASK解析,

         例如要开个灯,从RS232发送,从ETH发送,从LROA发送都是一样的效果,而且执行的程序也是一样的,只是指令进出的管道不一样而已。这样方便于

         管理通信协议,不会造成混乱。

     5. 电量检测

         1秒一次检测DCDC输入电压值,并记录发送到服务器,方便于核实供电情况。

    

无线采集控制功能验证板介绍:

     这只是为了验证功能,所以采用了N合一的设计,实际应用应该不会用到这么多。

     多合一内容:

     SHT21 + DS18B20 + BH1750FVI + MQ-XXX + 2路继电器 + 1个UART扩展

     无线通信:LORA/NRF24L01P,二选一。演示采用LORA,这个相对复杂点,NRF24L01P相对简单一点,暂时不做演示。

     模块采用MOS管控制电源,不用则关闭,以降低功耗,主控采用STM8L151K4,最终最低功耗做到了2.5ua睡眠电流,RTC唤醒,视频有介绍哈。


六、作品演示



腾讯视频: 地址 

(https://v.qq.com/x/page/n0539xzjjbj.html)


着急忙忙的终于吧B端的采集展示做好了,来不及拍视频,就留个链接哈

http://iots.f3322.net:10080/index.php/admin/login/index

账号:user

密码:1234567890

 

  

  



七、总结

     先说下整体的流程吧:

     1. 网关设计,思考到底要做成什么样子,有什么功能。

     2. 功能验证,通过设计的理念,去网上找是否有现成的零部件让我能组装成我想要的产品。

     3. 网关电路设计

     4. 服务器搭建

     5. 网关程序编写+功能验证

     6. 无线采集控制功能验证板电路设计,因为只是为了验证功能,所以没有去设计外观。

     7. 无线采集控制功能验证板程序编写+功能验证

     8. 系统联调

     9. PC端软件编写

     10. 帖子编写

     由于时间关系,只做了PC端演示程序,但是协议都是零活的,后续会完善B端展示。无论是http,ws,socket,有效数据里面的数据协议均是一样,

这样就让整套系统更加容易管理。

    服务器用的linux + php + workerman + mosquito + mysql + nginx搭建。支持长连接,高并发!针对于嵌入式物联网设备。

    服务器目前完成了:用户登陆+数据解析+数据存储+远程升级 + 远程控制等,后续继续完善B端,这样就方便于手机操控,同时绑定在微信里面就更易用了。


    提醒下:买物料一定要仔细!!!我这就买错了一个物料,继电器我设计的是5V供电,买成了12V,后面写程序的时候才发现,然后在一个开发板上卸

了两个下来。上面的图片继电器是12V,那是焊接好拍摄的。视频里面是5V,那是后面写程序的时候修改过了。

    

这里感谢立创商城提供的这个机会-->

int main(void){

    for(;;){

        printf("3Q!\r\n");

    }

}

由于时间关系,没有做得那么精致完美完善,希望做这个产品的目的大家能理解,有什么更好的建议意见可以回帖一起讨论。谢谢!

/*

    更新日志

*/

2017-06-25 - 2017-07-01 搭建云服务器


  • 操作系统:Linux
  • 云服务器程序语言:PHP5
  • MQTT代理:mosquitto
  • MQTT版本:V3.1.1
  • 数据库:MQSQL
  • 暂无WEB操作界面

2017-07-01 - 2017-07-05 网关的原理图设计以及PCB绘制


  • 主控    :STM32F2xx
  • 存储    :SPI FLASH & SD CARD
  • 以太网 :W5500
  • LORA   : SX127x
  • WIFI   :ESP8266-XX
  • 2.4G    : NRF24L01P+
  • 隔离RS485/232 (采用同一路串口)

2017-07-21


  • 完成网关的外设驱动
  • NRF24L01,SX1278通信正常,频道速率等切换正常
  • 与采集器协议添加完毕

下一步:打样采集器+制作,目前看来时间要紧,所以采集器为功能验证板,没法做成产品的样子了。

            完成网关的外壳修改,让其成为一个像样的的产品。

2017-08-19

完结



倚楼听风雨
2
主题
48
回复
发表于2017-09-18 10:51:34   |  显示全部楼层
15#
楼主,从上到下,软件硬件一条龙啊,好厉害,东西很不错

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部