数码之家

 找回密码
 立即注册
搜索
查看: 2708|回复: 12

[Arduino] 使用315/433收发DS18B20采集的温度,简易模块拼接,你动手你也行

[复制链接]
发表于 2022-1-24 10:27:44 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
模块买了很久一直懒得折腾
看了这个帖子 https://www.mydigit.cn/thread-291093-1-1.html 折腾折腾了下
想的完整设计是收发信号通过MQ发送给服务器收集信息
发送端:太阳能板+TP4506锂电池模块+AMS1117-3.3v+arduino mini或者stc15w104+DS18B20温度采集+315/433发送模块
接收端:esp8266+315/433接收模块

为了简单测试,接收端我用了老王的脑残电波手表屏(st7565 128x64)显示收到的数据

315/433 默认是发送3byte,也就是24位二进制数,000000000000000000000001

arduino库使用了 RC-switch 兼容 315和433,也就是说代码不修改,直接将315替换成433一样可以收发
DS18B20使用 OneWire协议传输,样子类似三极管,我买的成品封装好了接线和金属探头,每个芯片貌似都有自己的唯一编号,寄存器存放芯片信息和温度数值,通过库读取

六日 折腾了2天暂时不再弄了
代码直接扔 csdn
https://blog.csdn.net/firseve/article/details/122659358

说一下传输吧,模块看图片,在没有外置天线的情况下传输比较惨,直线距离最大也就只有2-3米的举例,可能跟我 esp8266 使用3.3v供电给接收模块有一丁点关系
普通承重墙可以穿透,但效果不是很好需要调整模块方向,后面找时间再接个天线试试如果不能改善就换 24 的无线模块
温度探头旁边放了温度表对比,温度差距在0.5度范围内,还是可以接受的,毕竟温度这玩意说不好那个是准的

价格上 DS18B20 三极管样子的大概1块多,315/433收发也就几块钱

IMG_3371.JPG
IMG_3370.JPG
发表于 2022-1-24 11:13:09 | 显示全部楼层
我上学时候18b20卖7块多,我买回来一直就不会写读温度的程序,搞不明白,后来在网上找的编好的,就直接用了
时序就是不明白
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-24 11:54:34 | 显示全部楼层
nb267213667 发表于 2022-1-24 11:13
我上学时候18b20卖7块多,我买回来一直就不会写读温度的程序,搞不明白,后来在网上找的编好的,就直接用了 ...

几个月前TB买的 忘了写的是国产还是什么标题,我买的时候就1块多点
这玩意就是3根线 正负和信号,信号位和电源正极需要一个4.7k的电阻,有些地方写10k 无所谓了,应该是个上拉电阻,有什么就接什么了
用arduino的库好处就是驱动别人都写好了,直接拿来用就是了,毕竟只是玩玩而已,又不是专门做电路开发必须要了解时序命令,浪费时间

000.png

回复 支持 反对

使用道具 举报

发表于 2022-1-24 14:04:30 | 显示全部楼层
它的时序里好像有个延时数百毫秒,我写VFD时钟程序时手边没有示波器,MCU的延时只能靠经验来试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-24 14:12:18 | 显示全部楼层
sz1988 发表于 2022-1-24 14:04
它的时序里好像有个延时数百毫秒,我写VFD时钟程序时手边没有示波器,MCU的延时只能靠经验来试 ...

库里的demo有写
delay(1000);     // maybe 750ms is enough, maybe not
这玩意不需要实时精准,差不多就可以了 其实1分钟读一次温度足够了
回复 支持 反对

使用道具 举报

发表于 2022-1-24 14:26:16 | 显示全部楼层
firseve 发表于 2022-1-24 14:12
库里的demo有写
delay(1000);     // maybe 750ms is enough, maybe not
这玩意不需要实时精准,差不多就 ...

这是死延时,实际不会这样写,要不其他程序没法跑了,一般是用状态机,通过轮询来实现读数据~
回复 支持 反对

使用道具 举报

发表于 2022-1-25 20:23:52 | 显示全部楼层
老王的屏吧紫薯布丁
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-26 14:36:06 | 显示全部楼层
兔族族长 发表于 2022-1-25 20:23
老王的屏吧紫薯布丁

对啊 我有写 ~ 老王的脑残电波屏
回复 支持 反对

使用道具 举报

发表于 2022-1-30 22:28:05 | 显示全部楼层
firseve 发表于 2022-1-26 14:36
对啊 我有写 ~ 老王的脑残电波屏

败了他家一堆的各种屏,忙的没空折腾,都吃灰了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-14 09:07:34 | 显示全部楼层
兔族族长 发表于 2022-1-30 22:28
败了他家一堆的各种屏,忙的没空折腾,都吃灰了

屏这玩意,还是找个容易点亮的折腾,一堆一堆没参数的没必要折腾,浪费时间
回复 支持 反对

使用道具 举报

发表于 2022-7-5 16:57:36 | 显示全部楼层
sz1988 发表于 2022-1-24 14:04
它的时序里好像有个延时数百毫秒,我写VFD时钟程序时手边没有示波器,MCU的延时只能靠经验来试 ...

先读取温度,再启动温度转换。这一次读取上一次的值,这样不需要延时等待。温度变化不是很快的环境下差一次的时间间隔问题不大。
回复 支持 反对

使用道具 举报

发表于 2022-7-6 08:46:41 | 显示全部楼层
这个读数据的代码我也不会.
回复 支持 反对

使用道具 举报

发表于 2022-7-6 11:30:14 | 显示全部楼层
这个收发模块我也有,但是没用过
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-20 02:08 , Processed in 0.249600 second(s), 13 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表