文末有恰饭内容,车速较快把稳安全。
考虑到我祖传的焊台好久没有通电了,就方案了这个项目。秉承勤俭节约的原则,项目利用了SOP8的51单片机,用掉一起串口,还有4个IO口恰好可以接4路传感器。这里感谢一位叫小明的男人帮我分担优与愁,事实证明只有男人才懂男人。

本来做完硬件就准备撤了,奈何忍受不了一包烟的诱惑,男人嘛,总有打破点。顺手又整了一个上位机,可把我的肾给亏完了,连续肝几个晚上。
实在这种数据采集系统最核心的地方在于通信协议,一个得当的通信协议能避免后期80%以上的坑。这次设计的温度采集系统采取JSON字符串交流数据,一种人类和打算机都随意马虎理解的字符串。固定3秒主动输出一次数据,嫌慢了你可以自己改源码。这样搞的好处是不用考虑太多的数据交互问题,安心做好数据处理就完事了。
关键是温度这数据吧,还真不是啥主要数据,采集几万个数据丢那么几百个都无所谓,以是不用考虑数据重传啥的各种分外情形,丢就丢了呗。
成果图
1,开拓前方案开拓前方案
2-四路温度转串口模块-DS18B20-事理图完全事理图:https://oshwhub.com/7a745fc8/si-lu-wen-du-zhuai-chuan-kou-mu-
配套工具-USB转TTL:https://oshwhub.com/7a745fc8/usb-zhuaittl-usb-jie-kou-shu-chu
事理图模块1
1,LDO降压到3V给单片机和传感器供电。
2,设计了一个LED,用来指示电源状态。
3,左边是一个4PIN的接口,用来下载程序,传输JSON字符串。老姚的STC单片机是通过串口下程序的,切实其实不要太爽。
事理图模块2
1,8个引脚100%都利用了。两个是电源,两个是TTL通信,4个是普通IO口。
2,关键是嘉立创SMT可贴片,节约肾的支出。
3,右边是一个4PIN的端子,实际上没有焊,便是预留后期备用的。
事理图模块3
1,四路传感器接口电路,完备参考规格书来的。
2,不过接口是3PIN端子的形式,自己焊插件的时候别搞错正负极,否则传感器会烫手。
3,每个IO口挂载一个传感器,且独立供电。同时传感器的数据接口要通过电阻上拉到电源。
事理图模块4
1,这个图和本项目有关联,但是不属于本项目本身的设计范畴。
2,这是一个USB转TTL的参考方案。由于下载程序和吸收数据都须要一个USB转TTL嘛。你可以参考着画一个板子,这个板子上所有器件都可以SMT的,自己回来焊插件就行了。
3,不想自己弄,也可以买个类似的。立创商城直接搜索下单就行,省事 C192392 。
3-绘制PCB 四路温度转串口模块-DS18B20-PCBPCB图1
1,为了蹭LCEDA的热度我也是挖空心思,各种LOGO走起。
2,安利一波吧。 www.oshwhub.com 是一个非常精良的硬件开源平台,现在已经有很多前辈知识分子在里面贡献自己的创意,尤其是很多又帅又有文化的。
3,看布局,充分表示了对称美。走线啥的都无所谓,关键是得美。
PCB图2
1,背面紧张放一些关键信息的丝印。
2,传感器接口的丝印就在这里表示,有效防止焊插件的时候接反正负极。
3,看背面的丝印你就能猜出来,参加了开源平台的征集令,拿了几十块钱的优惠券。虽然小项目造了我大几百大洋,但是能回一点血就回一点吧。
4,况且,我看这个LOGO很俊秀啊。
4-打样焊接和调试四路温度转串口模块-DS18B20-焊接调试B站视频:
调试/焊接1
1,这个界面是嘉立创SMT时的界面,通过DFM检讨看的。这个预览效果便是实际打样回来的效果。此时如果创造出错比如方向反了等都是可以联系客服及时补救的。
2,鄙吝件,不好焊的器件都让嘉立创SMT帮我给盘了,我收到货后只焊了几颗料而已。科技向善,一点都不假。
调试/焊接2
1,这里展示一下打样的速率。3号下单开始制造PCB,9号晚上收到货。
2,这时在疫情器件的交付速率,刚刚的。
3,佩服深圳速率,感想熏染到了百口当链的上风。
成品图
1,从淘宝买的带不锈钢外壳的传感器,实在便是DS18B20加了一个外壳。
2,这样的好处是可以将探头安装到各种地方。淘宝逛一圈你会创造有N多安装办法可选。
3,图中的USB接头便是USB转TTL,事理图上面也分享了。自己买了一根4PIN的线,按照接线顺序焊了一下。TX和RX要交叉连接。
4,传感器:https://s.click.taobao.com/KXHOvmv
5,单片机程序 四路温度转串口模块-DS18B20-单片机程序单片机代码1
1,截图的时候手一抖,少了一行。仔细不雅观察哈,你能创造的。
2,主程序能看出全体程序的框架。在主循环里一贯跑着一个子程序。它卖力定时调用其他子程序。
3,程序初始化时将须要定时调用的子程序添加到调度器中。子程序中不要利用太多软件延时。
4,朋友你猜这个程序多少秒发送一串数据出去?
单片机代码2
1,根据规格书的提示,操作IO口写了底层驱动时序。由于传感器的分外性,这里利用了软件延时。
2,这里参考网友的代码,写了一个CRC打算的程序。CRC是一种常见的数据完全性校验方法,用来识别一帧数据在传输的过程中是否发生了突变。
3,发送端发送数据完毕后打算一个CRC结果给你看,你收到数据后也同样方法打算一遍CRC,理论上得出的结果该当一样的,否则这个数据你该当丢弃的。
4,全体驱动暴露了两个子程序给外部接口,一个是读取传感器数据的驱动,固定时间调用一次就行,但是要把稳调用间隔大于750ms。每当有新数据过来就把数据缓存到RAM中。
5,另一个是打算缓存中的数据为浮点形式的温度。这样无论何时外部程序都能调用这个接口去读取目前最新的温度数据。
6,家里穷,没有一个冰箱,没办法测试零下的温度显示啥的是否正常。
单片机代码3
1,这是运行在51内核中的大略程序调度器代码。
2,单片机开了一个定时器,每1ms进入一次中断。
3,程序在主循环中持续检测中断标志位,判断数组中哪个程序该运行了。
4,通过这种大略的办法实现了任务的定时运行,但是还没有实现不同任务间的通信。
6,上位机 四路温度转串口模块-DS18B20-上位机上位机
1,上位机吸收JSON字符串。但是必须按照固定的格式发送数据,否则解析会出错。
2,一次要发送四个Key过来,包括T1,T2,T3,T4,值该当是浮点数或整型数据。
3,你可以用单片机发送其他数据,只假如浮点数就行,然后它就可以采集你的数据了。
上位机程序片段
1,上位机是用Python写的,利用PYQT的框架搭人机交互界面。
2,零妖也不是高手,代码太烂没自傲。放出读取CSV文件的源码供大家参考。
7,恰饭干事讲究动机,爱好这块内容是一方面,顺便搞包烟也可以。项目利用的是8位的单片机2^8=256,RAM大小也是256Byte,太有缘了。
256块公民币 = 板子一个+传感器四个+USB转TTL一个 纯手工玩耍,感兴趣的扫码联系我(微信"大众年夜众号:物联网零妖)。有偿供应技能支持,完备凭运气安排韶光,由于平时搬砖挺辛劳的。
途经的朋友也可以图个热闹,扫码关注我也是一种支持。
8,资料下载单片机源码:单片机程序:四路温度转串口模块-DS18B20.zip
上位机(WINX64):数据采集存储剖析系统.zip
在线查看事理图:https://oshwhub.com/7a745fc8/si-lu-wen-du-zhuai-chuan-kou-mu-
配套工具-USB转TTL:https://oshwhub.com/7a745fc8/usb-zhuaittl-usb-jie-kou-shu-chu
下载源文件须要注册立创商城帐号,点击链接去注册https://activity.szlcsc.com/invite/A5A96ED566B10862.html零妖送你20元代金券。
关注"大众年夜众号“物联网零妖”,回答“DS18B20”获取资料。






