一个小制作,单总线18b20的无线温度采集项目
仅占用1个IO口,采集多个温度数据
可以通过sn上线时间自行判断18B20所在位置并关联相关数据
无线部分采用TI的CC2530,蜂鸟科技出的模块
PCB画得比较cute,呵呵
基本框图:
核心器件采用的基本上都是TI的IC
传输距离500米即是采用CC2530的无线模块完成
485总线也做了相应改造,适合单总线数据传输
用VB写了个上位机,比较简陋
带有短信通知功能,不过PC要联网才行
上下位机也自定义了一套通信协议
下位机发送温度指令0X01
LSB HSB
上位机发送数据时,第一个字节是指令0x01,之后格式是先发地址再发温度,地址和温度的发送都是高位在前,一次发送可以上传4组温度,一共17个字节。
特别说明的是,以整型变量变量存在,占有两个字节以上的需要将高位放在前。
下位机发送未注册序列号指令0X02
LSB HSB
指针:MCU内部指向缓冲区二维数组的行数。
下位机接收注册信息的指令0X03
LSB HSB
下位机发送丢失DS18B20通知上位机指令0X04
LSB HSB
类型标志 0XFF——已经注册的DS18B20丢失
0X00——插入总线但尚未注册的DS18B20丢失
下位机接收接收同步PC机时间指令0X05
LSB HSB
下位机发送注册成功应答0X06
LSB HSB
下位机接收删除注册信息指令0X07
LSB HSB 下位机发送删除注册成回复指令0X08
LSB HSB
下位机发送先注册后发现方式下传感器ID号的指令0X09
标志: OXFF——正确发送
0X00——DS18B20损坏(检测工具)
下位机接收先注册后发现注册方式的注册信息指令0X10
LSB HSB
下位机发送先注册后发现方式的注册成功应答指令0X11
LSB HSB 下位机接收先注册后发现方式的删除传感器指令0X12
LSB HSB 下位机应答删除成功指令0X13
LSB HSB
下位机接收清空注册指令0X14
LSB HSB
下位机接收继电器控制指令0X15
LSB HSB
继电器接通:0XFF 继电器断开:0X00
CC2530作为透传模块,未对传输的数据进行编码
依靠这套自定义的通信协议完成功能