作为一个体面的演出,我有一个气象站,由DHT22,Raspberry Pi和诺基亚屏幕组装而成,这是一个恒功率解决方案,可通过以太网传输数据。
但是现在我需要在阳台上安装一个移动气象站,并通过无线和电池供电。
作为无线电模块,我使用了Z-Wave Z-Uno板,作为温度和湿度传感器,我决定尝试在I2C上运行的Sensirion SHT20。

材料和价格:
Z-Uno不断更新,增加了对新外围设备和库的支持。 目前,当前的固件版本是2.0.9,并且其中包含对以下设备的支持:
在I2C总线上工作的Sensirion SHT20传感器不在支持的列表中,因此我不得不为Z-Uno编写自己的实现。 Z-Uno的草图语法尽可能类似于Arduino,整个草图适合35行:

Z-Uno使用温度和湿度传感器Sensirion SHT20的草图#include <Wire.h> #include "SHT2x.h" int16_t temperature; uint8_t humidity; ZUNO_SETUP_SLEEPING_MODE(ZUNO_SLEEPING_MODE_SLEEPING); #define ZUNO_CHANNEL_TEMPERATURE 1 #define ZUNO_CHANNEL_HUMIDITY 2 ZUNO_SETUP_CHANNELS( ZUNO_SENSOR_MULTILEVEL_TEMPERATURE(getterTemp), ZUNO_SENSOR_MULTILEVEL_HUMIDITY(getterHumid) ); void setup() { Wire.begin(); } void loop() { temperature = SHT2x.GetTemperature(); zunoSendReport(ZUNO_CHANNEL_TEMPERATURE); humidity = SHT2x.GetHumidity(); zunoSendReport(ZUNO_CHANNEL_HUMIDITY); zunoSendDeviceToSleep(); } byte getterTemp(void) { return temperature; } byte getterHumid(void) { return humidity; }
SHT2x.h #ifndef SHT2X_H #define SHT2X_H
在特殊的事情中,草图中只有一条线使Z-Uno进入睡眠模式:
ZUNO_SETUP_SLEEPING_MODE(ZUNO_SLEEPING_MODE_SLEEPING)
并设置向哪个温度和向哪个湿度发送温度的通道:
ZUNO_SETUP_CHANNELS( ZUNO_SENSOR_MULTILEVEL_TEMPERATURE(getterTemp), ZUNO_SENSOR_MULTILEVEL_HUMIDITY(getterHumid) )
其余的是常规的Arduino代码。
Sensirion SHT20可在I2C上运行,并通过2根线连接。 默认情况下,在I2C的Wire.h库中,定义了引脚9和10。
可以在电话上查看来自传感器的信息,并将其用于自动化控制加湿器和空调。
数据每12分钟更新一次,在这种模式下,传感器必须用一组电池工作2年以上。

特别选择Gint建筑G517B 90 x 60 x 20 cm,并在电池盒下方放置一个地方,一切都非常合适。
Z-Wave温湿度传感器的开发花费了大约2个小时和3746 p。 您还可以添加电子墨水屏幕并将其挂在墙上!