发新帖本帖赏金 10.00元(功能说明)我要提问
12下一页
返回列表
[创新制造展示]

【21ic第二届设计大赛】+ 无线信息采集监控系统 mohanwei

[复制链接]
4409|27
手机看帖
扫描二维码
随时随地手机跟帖
mohanwei|  楼主 | 2018-6-21 10:58 | 显示全部楼层 |阅读模式
本帖最后由 mohanwei 于 2018-8-20 16:55 编辑

  • 1)项目方案的构想和实施计划;
  • 2)硬件设计过程分享;
  • 3)搭建平台;
  • 4)程序设计;
  • 5)调试流程;
  • 6)作品展示、制作心得和总结等。
  • 7)视频展示



主题一:无线信息采集监控系统
设计目标:
1. [基本项目] 设计一个信息采集监控系统,采用无线通信相互连接,实现对多点采集点的信息收集与监控。
2. [基本项目] 目标系统框图:
img1.gif
系统由一个中央控制台(右边)与多个节点(左边)组成.组网方式宜采用低功耗/长距离的通信方式,如LoRa/SigFox,或者其它协议。中央控制台与节点的通信距离要长于50米。中央控制台的功耗不做要求,但是越低越好。中央控制台可以采用PC扩展,也可以使用其他带显示+输入的任何的任何系统扩展。 样机中节点数最少2个,系统要设计为能扩展至少8个节点。
————满足。采用博通无线键盘鼠标方案BK2425(2.4G收发器,兼容nRF24L01,空旷无遮挡通信距离可达100米):主机(显示+键盘鼠标输入)<——>USB Dongle(STM32F103RC+BK2425)<——>传感器板(STM32F030C8+BK2425+温度传感器DS1B20+2路数字量输入+2路数字量输出)。功耗和响应速度无要求的话可支持数百个节点
3. [基本项目] 无线通信要实现双向通信,平时节点间歇地向中央控制台发送采集的信息(温度,湿度,光线,空气质量等等)。中央控制台也可以至少控制每个节点的一个IO口(比如使用LED表示控制状态)。双向通信可以采用单/双通信模块实现,最好使用单通信模块实现。节点之间可以不实现互相通信。
————满足。主从式组网;从机通过RTC唤醒后,采集1次传感器数据,并监听命令50ms,有命令则进入正常模式通信,无命令则重新休眠指定时间(默认950ms);主机快速重复轮询所有从机,确保50ms内轮询全部从机至少2次(1个节点轮询一次最多3ms,8节点*2次*3ms=48ms);主机收到从机应答后,保存其传感器和IO状态,然后把队列里的新指令(如设置数字输出量)下发,最后发指令让从机继续休眠。
4. [基本项目] 中央控制台平时能通过图表(如曲线的形式)实时显示采集的数据。节点到中央控制台的信息发送至少要达到0.2Hz(即上传数据间隔最多为5秒一次)。节点的数据与中央控制台显示的延迟越短越好。
————满足。如上所述,在没有干扰环境下,同步时间约1s。
5. [基本项目] 中央控制台要有输入手段,控制每个节点的至少一个IO口。控制频率至少为5秒一次,控制延迟不超过2秒。
————满足。如上所述,在没有干扰环境下,控制频率可达每秒1次,控制延迟1s
6. [基本项目] 节点采用电池供电,功耗至少能达到:两节5号电池能使用一天以上,功耗越低越好,节点能上传当前节点电量。
————满足。如上所述,正常工作电流约20mA,放大到30mA;休眠电流约5uA,放大到10uA。则平均电流=(50ms*30mA+950ms*10uA)/1000ms=1.5095mA,1天只需1.5095mA*24h=36.228mAh。而5号普通碳性干电池容量至少300mAh,可工作8天

7. [加分项目]
  • 系统要显示可扩展性、可配置性,如可以动态增加减少节点。————满足。1.利用STM32的唯一ID和程序里写入的产品代号,组成传感器唯一ID。
    2-集中器定期发“广播查询新设备”指令,传感器如果自身“在线标记”为假,则会响应这个广播,送出自己的唯一ID;如果“在线标记”为真,则忽略这个广播
    3-集中器收到广播应答后,校验数据是否吻合,吻合则保存新的传感器节点,下次轮询时,会使用这个传感器节点保存的唯一ID作为地址码。
    4-集中器连续一段时间访问某个在线的传感器节点无应答,则会删除这个传感器节点。
    5-传感器一旦收到跟自己唯一ID对应地址码的命令,则会把“在线标记”设为真,并清零一个在线倒计时定时器,当倒计时定时器结束时,把“在线标记”设为假,再次响应“广播查询新设备”指令

    实测两个传感器和集中器花式组合断电重启,网络都能很快重新恢复,相当的健壮。

  • 节点有两种工作方式:正常工作方式/低功耗方式(仅仅监听主机的控制指令)。————满足。从机本身就是工作在休眠+间歇工作模式,主机可通过配置休眠占空比来优化功耗和响应速度
  • 数据可以保存文本或者数据库形式,传输到其他存储体上(如每天备份当天数据到SD卡)。————满足。上位机程序可定期保存数据到文件
  • 中央控制台能与互联网通信,如将数据上传到云上,在网页上显示实时数据。————暂不考虑上传到云。当前商业化云服务申请和维护都需要精力
  • 中央控制台可以根据采集值定制自动控制Policy(如采集值高于某点,低于某点自动发送IO控制命令,并且在中央控制台显示报警)。————满足。从机可定制大机房温度监控应用场景:区域温度高低温告警+上传+上位机控制区域空调开关机
  • 节点可以按照一定的作息切换工作模式与低功耗模式,如采集光线的应用可以仅仅在8:30-20:30工作,其余时间段低功耗。该作息Policy可以配置。————满足。从机功耗可由主机动态配置
  • 其他参数上的优化。




计划:最近有段项目空档期,看到这个题目正好可以用以前积累的软硬件模块拼凑实现,打算2个月内完成



  • 1)项目方案的构想和实施计划;
  • 2)硬件设计过程分享;
  • 3)搭建平台;
  • 4)程序设计;
  • 5)调试流程;
  • 6)作品展示、制作心得和总结等。
  • 7)视频展示

2.1 USB Dongle 2.4G主机原理图:


2.2 传感器板原理图:


原图是很清晰的大图,上传到这个论坛似乎会自动压缩,怎么搞都是模糊的……将就吧


  • 1)项目方案的构想和实施计划;
  • 2)硬件设计过程分享;
  • 3)搭建平台;
  • 4)程序设计;
  • 5)调试流程;
  • 6)作品展示、制作心得和总结等。
  • 7)视频展示


PCB到了,焊接、测量电源对地是否短路,烧录测试程序简单验证LED闪烁、2.4G模块收发,一切功能正常。
实物看起来似乎比前面发的原理图多了不少东西,实际是把多余IO都接出来,方便验证其它小项目。传感器板多加了交流电过零检测和双向可控硅驱动,用来做点焊机控制的。
下面先调程序,整机联调时再外接电池和按键、指示灯



芯片焊接局部细节。拆机芯片有不少腿折弯了,硬是给我用小刀一个个重新掰正了……
拍照设备是手机+9.9元的微距镜片夹子




焊接工具是烙铁+0.8mm焊锡丝,拖焊。普通焊锡丝内部带免清洗松香助焊剂,不需要像网上的一些焊接视频那样刷高级助焊油、用铜编织带吸多余焊锡
普通0603封装的元件也不需要镊子,直接用烙铁沾两头放到焊盘上,焊锡丝两头戳一下,烙铁再拖一下就好了

  • 1)项目方案的构想和实施计划;
  • 2)硬件设计过程分享;
  • 3)搭建平台;
  • 4)程序设计;
  • 5)调试流程;
  • 6)作品展示、制作心得和总结等。
  • 7)视频展示

中间有几个急活赶工,这个DIY就丢一边了……时间临近,赶紧焊上两个按键(模拟两路数字输入量,带绿色指示灯,按下发光)和两个红色LED(模拟两路数字输出量)。
为了省事,直接从集中器那里引出3.3V给两路传感器板供电;没有合适开关,就在传感器板上焊了2pin的插针,用一个跳线帽来当电源开关;
最后找了个报废的5**换机的一半外壳,滴点热熔胶上去,把板子按上去,搞定收工。




  • 1)项目方案的构想和实施计划;
  • 2)硬件设计过程分享;
  • 3)搭建平台;
  • 4)程序设计;
  • 5)调试流程;
  • 6)作品展示、制作心得和总结等。
  • 7)视频展示

代码陆续调了一星期,主要是做着做着就当自己公司的产品做了,设计了个基于2.4G收发器的无线协议栈,暂命名为WTU,还有空中升级、远程配置管理等功能……题目的功能仅仅是最后挂在协议栈上的一个"APP"。————所以,源码就不打包上传了,后面如有需要,再把无线收发和IO剥离出来做个demo吧。
8月18,今天是个好日子,最后的“APP”也调通了。
挂电池座、5号电池还是麻烦,直接用USB集中器来供电了:
合照上方是ID:


  • 1)项目方案的构想和实施计划;
  • 2)硬件设计过程分享;
  • 3)搭建平台;
  • 4)程序设计;
  • 5)调试流程;
  • 6)作品展示、制作心得和总结等。
  • 7)视频展示

调试流程:
1-先易后难。先脱离PC软件,在集中器里做个自动采集+8路传感器缓存,上电就开始不停查找传感器,并定期循环访问已找到的传感器,读取当前数字输入输出量和温度值保存到传感器缓存里,并从传感器缓存里取出新的数字输出量(用户通过PC软件输入)写入到传感器里。
2-集中器里跑个测试程序:把传感器里读出的数字输入量1搬移到数字输出量1——这样通过按传感器上的按键1,观察数字输出量1(红灯1)的变化,来判断传感器是否已经被纳入网络、网络响应速度。由于实际只焊了2路传感器,响应速度目测应该在200ms内。

3-功能调通后,再优化传感器功耗、减小工作时间。板子工作电流可拔掉3.3V跳线帽,用万用表电流档夹上去测量,实测连续发射平均电流约19.2mA,休眠模式电流如果不按按键(有上拉电阻)和驱动输出LED,大约46uA。估算工作时间:平均电流=(50ms*20mA+950ms*36uA)/1000ms=1.034mA,1天只需1.034mA*24h=24.82mAh。而5号普通碳性干电池容量至少300mAh,可工作12天————实际还受限于数字输入电路输出电路的耗电。
4-最后去掉集中器的测试程序,挂上上位机软件测试。

  • 1)项目方案的构想和实施计划;
  • 2)硬件设计过程分享;
  • 3)搭建平台;
  • 4)程序设计;
  • 5)调试流程;
  • 6)作品展示、制作心得和总结等。
  • 7)视频展示

PC软件是附加在公司产品软件的一个小窗口上,很简陋,打开的样子:



  • 1)项目方案的构想和实施计划;
  • 2)硬件设计过程分享;
  • 3)搭建平台;
  • 4)程序设计;
  • 5)调试流程;
  • 6)作品展示、制作心得和总结等。
  • 7)视频展示

PC软件是附加在公司产品软件的一个小窗口上,很简陋,打开的样子:
WTU调测1.PNG (24.13 KB, 下载次数: 0)
下载附件 [url=]保存到相册[/url]
2018-8-19 08:31 上传




默认1秒钟刷新数字输出量并读回传感器所有状态并显示,点“启动采集”:

手动控制传感器两路数字输出量的方法是点击对应单元格,在弹出的下拉列表里选“开”或“关”:



  • 1)项目方案的构想和实施计划;
  • 2)硬件设计过程分享;
  • 3)搭建平台;
  • 4)程序设计;
  • 5)调试流程;
  • 6)作品展示、制作心得和总结等。
  • 7)视频展示

6.1 作品展示
就前面发的那些了
6.2 制作心得、总结
习惯了整机设计好让别人动手……轮到自己焊板感觉挺费劲的

7 视频展示
用了5年的土豪金,电池和剩余空间都拍不起……
删除部分文件,再接上充电线,勉强可以一拍,上传到优酷:
http://v.youku.com/v_show/id_XMzc4OTc2OTY2MA==.html?spm=a2h3j.8428770.3416059.1
下面视频播放不了的话,可复制上面哪行链接到浏览器地址栏再打开。


修改原因:把后面的分散回帖都合并到主贴。

打赏榜单

21ic小喇叭 打赏了 10.00 元 2018-08-28

相关帖子

21ic小喇叭| | 2018-6-21 11:03 | 显示全部楼层
速度呀,,就欣赏你这种麻溜得~~期待大作!!

使用特权

评论回复
iDiy| | 2018-6-21 11:12 | 显示全部楼层
速度赞

使用特权

评论回复
mohanwei|  楼主 | 2018-6-21 11:14 | 显示全部楼层
21ic小喇叭 发表于 2018-6-21 11:03
速度呀,,就欣赏你这种麻溜得~~期待大作!!

慢慢填坑……

使用特权

评论回复
一路向北lm| | 2018-6-21 19:01 | 显示全部楼层
速度点赞

使用特权

评论回复
一叶倾城wwq| | 2018-6-22 17:40 | 显示全部楼层
这做下来已经是一个小型的智能家居了

使用特权

评论回复
caijie001| | 2018-6-23 11:02 | 显示全部楼层
火前留名,,,,期待大作,,,厉害

使用特权

评论回复
mohanwei|  楼主 | 2018-6-26 22:58 | 显示全部楼层
本帖最后由 mohanwei 于 2018-6-26 23:03 编辑

  • 1)项目方案的构想和实施计划;
  • 2)硬件设计过程分享;
  • 3)搭建平台;
  • 4)程序设计;
  • 5)调试流程;
  • 6)作品展示、制作心得和总结等。
  • 7)视频展示

2.1 USB Dongle 2.4G主机原理图:
STM32 USB 2.4G收发器-原理图.png

2.2 传感器板原理图:
STM32 2.4G传感器-原理图.png

原图是很清晰的大图,上传到这个论坛似乎会自动压缩,怎么搞都是模糊的……将就吧

使用特权

评论回复
一路向北lm| | 2018-7-16 13:34 | 显示全部楼层
mohanwei 发表于 2018-6-26 22:58
  • 1)项目方案的构想和实施计划;
  • 2)硬件设计过程分享;
  • 3)搭建平台;

  • 有实物吗?期待

    使用特权

    评论回复
    01dxwlm| | 2018-7-18 08:06 | 显示全部楼层
    这东西需要用STM32芯片吗?

    使用特权

    评论回复
    mohanwei|  楼主 | 2018-7-18 21:33 | 显示全部楼层
    • 1)项目方案的构想和实施计划;
    • 2)硬件设计过程分享;
    • 3)搭建平台;
    • 4)程序设计;
    • 5)调试流程;
    • 6)作品展示、制作心得和总结等。
    • 7)视频展示


    PCB到了,焊接、测量电源对地是否短路,烧录测试程序简单验证LED闪烁、2.4G模块收发,一切功能正常。
    实物看起来似乎比前面发的原理图多了不少东西,实际是把多余IO都接出来,方便验证其它小项目。传感器板多加了交流电过零检测和双向可控硅驱动,用来做点焊机控制的。
    下面先调程序,整机联调时再外接电池和按键、指示灯
    焊接PCB.jpg

    使用特权

    评论回复
    mohanwei|  楼主 | 2018-7-18 21:35 | 显示全部楼层
    01dxwlm 发表于 2018-7-18 08:06
    这东西需要用STM32芯片吗?

    简单IO控制和低功耗休眠,任何单片机都可以的。
    手头刚好有一些废板可以拆STM32,顺手就用了。

    使用特权

    评论回复
    mohanwei|  楼主 | 2018-7-18 21:47 | 显示全部楼层
    芯片焊接局部细节。拆机芯片有不少腿折弯了,硬是给我用小刀一个个重新掰正了……
    拍照设备是手机+9.9元的微距镜片夹子
    芯片焊接细节1.JPG
    芯片焊接细节2.JPG

    使用特权

    评论回复
    mohanwei|  楼主 | 2018-7-18 21:55 | 显示全部楼层
    焊接工具是烙铁+0.8mm焊锡丝,拖焊。普通焊锡丝内部带免清洗松香助焊剂,不需要像网上的一些焊接视频那样刷高级助焊油、用铜编织带吸多余焊锡
    普通0603封装的元件也不需要镊子,直接用烙铁沾两头放到焊盘上,焊锡丝两头戳一下,烙铁再拖一下就好了

    使用特权

    评论回复
    21ic小喇叭| | 2018-8-17 15:48 | 显示全部楼层
    比赛还有三天就结束啦,还请及时更新哦,这样才不会影响到时候的评委打分~

    使用特权

    评论回复
    21ic小喇叭| | 2018-8-17 15:48 | 显示全部楼层
    比赛还有三天就结束啦,还请及时更新哦,这样才不会影响到时候的评委打分~

    使用特权

    评论回复
    mohanwei|  楼主 | 2018-8-18 21:09 | 显示全部楼层
    21ic小喇叭 发表于 2018-8-17 15:48
    比赛还有三天就结束啦,还请及时更新哦,这样才不会影响到时候的评委打分~ ...

    时间过得真快,一不留神就差点错过了……

    使用特权

    评论回复
    mohanwei|  楼主 | 2018-8-18 21:17 | 显示全部楼层
    • 1)项目方案的构想和实施计划;
    • 2)硬件设计过程分享;
    • 3)搭建平台;
    • 4)程序设计;
    • 5)调试流程;
    • 6)作品展示、制作心得和总结等。
    • 7)视频展示

    中间有几个急活赶工,这个DIY就丢一边了……时间临近,赶紧焊上两个按键(模拟两路数字输入量,带绿色指示灯,按下发光)和两个红色LED(模拟两路数字输出量)。
    为了省事,直接从集中器那里引出3.3V给两路传感器板供电;没有合适开关,就在传感器板上焊了2pin的插针,用一个跳线帽来当电源开关;
    最后找了个报废的5**换机的一半外壳,滴点热熔胶上去,把板子按上去,搞定收工。

    IMG_9630背面引出按键、LED和电源线-缩图.jpg
    IMG_9631-焊接完成-缩图.jpg

    使用特权

    评论回复
    mohanwei|  楼主 | 2018-8-18 21:27 | 显示全部楼层
    • 1)项目方案的构想和实施计划;
    • 2)硬件设计过程分享;
    • 3)搭建平台;
    • 4)程序设计;
    • 5)调试流程;
    • 6)作品展示、制作心得和总结等。
    • 7)视频展示

    代码陆续调了一星期,主要是做着做着就当自己公司的产品做了,设计了个基于2.4G收发器的无线协议栈,暂命名为WTU,还有空中升级、远程配置管理等功能……题目的功能仅仅是最后挂在协议栈上的一个"APP"。————所以,源码就不打包上传了,后面如有需要,再把无线收发和IO剥离出来做个demo吧。
    8月18,今天是个好日子,最后的“APP”也调通了。
    挂电池座、5号电池还是麻烦,直接用USB集中器来供电了:
    合照上方是ID:
    IMG_9633-工作中-缩图.jpg

    使用特权

    评论回复
    mohanwei|  楼主 | 2018-8-18 21:51 | 显示全部楼层
    • 1)项目方案的构想和实施计划;
    • 2)硬件设计过程分享;
    • 3)搭建平台;
    • 4)程序设计;
    • 5)调试流程;
    • 6)作品展示、制作心得和总结等。
    • 7)视频展示

    调试流程:
    1-先易后难。先脱离PC软件,在集中器里做个自动采集+8路传感器缓存,上电就开始不停查找传感器,并定期循环访问已找到的传感器,读取当前数字输入输出量和温度值保存到传感器缓存里,并从传感器缓存里取出新的数字输出量(用户通过PC软件输入)写入到传感器里。
    2-集中器里跑个测试程序:把传感器里读出的数字输入量1搬移到数字输出量1——这样通过按传感器上的按键1,观察数字输出量1(红灯1)的变化,来判断传感器是否已经被纳入网络、网络响应速度。由于实际只焊了2路传感器,响应速度目测应该在200ms内。

    3-功能调通后,再优化传感器功耗、减小工作时间。板子工作电流可拔掉3.3V跳线帽,用万用表电流档夹上去测量,实测连续发射平均电流约19.2mA,休眠模式电流如果不按按键(有上拉电阻)和驱动输出LED,大约46uA。估算工作时间:平均电流=(50ms*20mA+950ms*36uA)/1000ms=1.034mA,1天只需1.034mA*24h=24.82mAh。而5号普通碳性干电池容量至少300mAh,可工作12天————实际还受限于数字输入电路输出电路的耗电。
    4-最后去掉集中器的测试程序,挂上上位机软件测试。


    使用特权

    评论回复
    发新帖 本帖赏金 10.00元(功能说明)我要提问
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    个人签名:试一下能否设置签名档

    177

    主题

    9320

    帖子

    24

    粉丝