步骤1:电池操作无线传感器设计
434-MHz无线遥控器的设计使用以下部件:
Sensirion SHT31-D - 温度和湿度传感器分线板
Sparkfun 434-MHz RF链路发送器
10K欧姆电阻器
早期设计决策之一是避免需要稳压3.3V或5V的器件,以及选择在宽电压范围内工作的器件。这消除了对电池操作设计中的电源浪费的电压调节器的需要,并且延长了传感器的工作寿命,因为随着电池电压随时间下降它们将继续运行更长时间。所选部件的工作电压范围如下:
ATtiny85:2.7V至5.5V
SHT31-D:2.4V至5.5V
RF Link Tx:1.5V至12V
允许一定的余量,434-MHz无线遥控器应在功能上运行至3V的电池电压。如前所述,随着电池电压降低,发射功率降低,可以保持RF链路可靠性保持良好状态。
决定使用3节AA电池提供标称启动电压4.5V运行16个月后,测得的最低电池电压为4.36V。
ATtiny85看门狗定时器(WDT)用于使434-MHz无线遥控器在大多数时间内处于休眠模式。每隔8秒WDT就会唤醒ATtiny85以增加一个10分钟的计数器;在达到10分钟的时间间隔后,进行测量并传输数据包。
为了进一步降低功耗,SHT31-D和RF链路发送器由数字I/O端口引脚供电。 ATtiny85配置为输出。当I/O引脚被驱动为高电平(1)时会产生电源,当I/O引脚被驱动为低电平(0)时会被移除。通过软件,只需每隔10分钟对这些外围设备供电,持续1-2秒,同时进行测量和传输。有关相关软件的说明,请参阅434-MHz无线远程软件。
434-MHz无线遥控器中使用的唯一其他组件是10K欧姆电阻,用于上拉ATtiny85上的复位引脚。
早期的设计在电池上使用了一个电阻分压器,使ATTINY85上的ADC引脚能够测量电池电压。虽然很小,但这个分压器对电池施加恒定负载。一些研究发现了使用ATtiny85内部1.1V带隙参考电压来测量Vcc(电池电压)的技巧。通过将ADC参考电压设置为Vcc并测量内部1.1V参考电压,可以求解Vcc。只要Vcc》 3V,ATtiny85内部1.1V基准电压就是恒定的。有关相关软件的说明,请参阅434-MHz无线远程软件。
ATtiny85和SHT31-D之间的通信是通过I2C总线实现的。 Adafruit SHT31-D分线板包括用于I2C总线的上拉电阻。
ATtiny85和RF链路发送器之间的通信是通过配置为输出的数字I/O引脚实现的。 RadioHead Packet Radio库RH_ASK通过此数字I/O引脚用于RF链路发送器的开关键(OOK/ASK)。
步骤2:434-MHz无线远程硬件
零件清单:
1 x Adafruit 1/4尺寸面包板,Digikey PN 1528-1101- ND
1 x电池座3 x AA电池,Digikey PN BC3AAW-ND
1 x Adafruit Sensiron SHT31-D分线板,Digikey PN 1528-1540-ND
1 x Sparkfun RF链路发送器(434-MHz),Digikey PN 1568-1175-ND
1 x ATtiny85微控制器,Digikey PN ATTINY85-20PU-ND
1 x 8引脚DIP插座,Digikey PN AE10011-ND
1 x 10K ohm,1/8W电阻,Digikey PN CF18JT10K0CT-ND
6.75“/17cm长18AWG漆包铜线
1 x片双面泡棉胶带
18“/45cm电线缠绕电线
ATtiny85使用插座,因为不支持在线编程。
SHT31-D分线板,RF Link发射器,8针DIP插座和天线导线焊接在面包板上,如上图所示。从18AWG天线导线的1/4“处取下珐琅焊接到面包板之前。
10K欧姆电阻器焊接在8针DIP插座的引脚1和8之间的面包板上。
绕线焊接在面包板上根据上一步骤中所示的无线远程原理图,在面包板的背面进行组件之间的链接。
电池座的正极和负极引线焊接到一组“+”和“ - ”总线分别位于面包板上。
434-MHz无线遥控器使用无线网桥和LoRa IOT网关进行测试。每次插入电池时,434-MHz无线遥控器将立即发送一个数据包,此后每隔约10分钟发送一次数据包。从434-MHz传感器层接收到无线数据包后,无线网桥上的绿色LED闪烁约0.5秒。如果在网关中配置了434-MHz无线远程站号,则应通过LoRa IOT网关显示站名,温度和湿度。
使用编程的ATtiny85测试无线遥控器后,将一块双面泡棉胶带切割成与面包板相同的尺寸,用于将完成的面包板连接到电池座上。
步骤3:434-MHz无线遥控器软件
434-MHz无线远程软件附带此步骤,评论很好。
我使用Sparkfun Tiny AVR编程器和Arduino IDE对ATtiny85微控制器进行了编程。 Sparkfun有一个关于如何设置驱动程序等的广泛教程以及如何让程序员使用Arduino IDE。
我在Tiny AVR Programmer中添加了一个ZIF(零插入力)套接字来制作很容易添加和删除程序员的芯片。
步骤4:无线网桥硬件
零件清单:
1 x Arduino Uno R3,Digikey PN 1050-1024-ND
1 x Adafruit Proto Shield Arduino Stack V.R3,Digikey PN 1528-1207-ND
1 x Adafruit RFM9W LoRa无线电收发器板(915-MHz),Digikey PN 1528-1667-ND
1 x Sparkfun RF链路接收器(434-MHz),Digikey PN 1568-1173-ND
1 x 8针DIP插座,Digikey PN AE10011-ND
6.75“/17cm长度18AWG漆包铜线
3.25“/8.5cm长18AWG漆包铜线
24“/61cm电线缠绕电线
1 x USB电缆A/MicroB,3英尺,Adafruit PID 592
1 x 5V 1A USB端口电源,Adafruit PID 501
按照Adafruit.com上的说明组装原型屏蔽。
按照Adafruit.com上的说明组装RFM95W LoRa收发器板.3.25“/8.5cm长度的18AWG导线用于天线,并在从导线上剥去1/4“的珐琅后直接焊接到收发器板上。
小心地将8针DIP插座切成两半长度来创建两组4针SIP插座。
如图所示,将两个4针SIP插座焊接到原型屏蔽罩上。这些插座将用于插入RF Link接收器,因此请确保它们位于在焊接之前,正确的孔与RF链路发送器匹配。
如图所示,将RFM9W LoRa收发器板焊接到原型屏蔽。
Arduino Uno和之间建立了以下连接。使用w的RFM9W收发器板将电线缠绕在原型板的顶部:
RFM9W G0 - 》 Arduino数字I/O引脚2,RadioHead库在此引脚上使用中断0
RFM9W SCK - 》 Arduino ICSP接头,引脚3
RFM9W MISO - 》 Arduino ICSP接头,引脚1
RFM9W MOSI - 》 Arduino ICSP接头,引脚4
RFM9W CS - 》 Arduino数字I/O引脚8
RFM9W RST - 》 Arduino数字I/O引脚9
以下连接在原型板的底部:
RFM9W VIN - 》原型板5V总线
RFM9W GND - 》原型板接地(GND)总线
RF Link Rx引脚1(GND) - 》原型板接地(GND)总线
RF Link Rx引脚2(数据输出) - 》 Arduino数字I/O引脚6
RF Link Rx引脚2(Vcc) - 》原型开发板5V总线
原型板绿色LED - 》 Arduino数字I/O引脚7
引脚信息RF链路接收器可在www.sparkfun.com上获得。
从6.75“长度的18AWG电线的1/4‘剥去珐琅质,并将其插入紧邻RF Link Rx Pin的原型板孔中8(天线)。一旦插入孔中,将剥离的末端弯曲,使其与RF Link Rx引脚8接触并将其焊接到位。
使用下一个提供的草图编程Arduino Uno重置或上电后,绿色LED将闪烁两次0.5秒。从434-MHz传感器层接收到无线数据包后,绿色LED闪烁约0.5秒。
-
传感器
+关注
关注
2548文章
50724浏览量
752114 -
监测系统
+关注
关注
8文章
2679浏览量
81259
发布评论请先 登录
相关推荐
评论