рдПрдХ рдФрд░ рд╡рд╛рдпрд░рд▓реЗрд╕ рддрд╛рдкрдорд╛рди рдФрд░ рдЖрд░реНрджреНрд░рддрд╛ рд╕реЗрдВрд╕рд░ред рдЬреЗрдб-рд╡реЗрд╡ рдмреЛрд░реНрдб Z-Uno + Sensirion SHT20

рдПрдХ рд╕рднреНрдп рдЯрдордЯрдо befits рдХреЗ рд░реВрдк рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдореМрд╕рдо рд╕реНрдЯреЗрд╢рди рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ DHT22, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдФрд░ рдиреЛрдХрд┐рдпрд╛ рд╕реНрдХреНрд░реАрди рд╕реЗ рдЦреБрдж рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛, рдпрд╣ рдПрдХ рдирд┐рд░рдВрддрд░ рд╢рдХреНрддрд┐ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдИрдерд░рдиреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдм рдореБрдЭреЗ рдмрд╛рд▓рдХрдиреА, рд╡рд╛рдпрд░рд▓реЗрд╕ рдФрд░ рдмреИрдЯрд░реА рд╕реЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдореЛрдмрд╛рдЗрд▓ рд╡реЗрджрд░ рд╕реНрдЯреЗрд╢рди рдХреА рдЬрд░реВрд░рдд рдереАред
рдПрдХ рд░реЗрдбрд┐рдпреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ Z-Wave Z-Uno рдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдПрдХ рддрд╛рдкрдорд╛рди рдФрд░ рдЖрд░реНрджреНрд░рддрд╛ рд╕реЗрдВрд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВрдиреЗ I2C рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ Sensirion SHT20 рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред



рд╕рд╛рдордЧреНрд░реА рдФрд░ рдореВрд▓реНрдп:
рд╕рдВрдЦреНрдпрд╛рд╕рд╛рдордЧреНрд░реАрджреБрдХрд╛рдирдХреАрдордд
1Z- рд╡реЗрд╡ Z-Uno рдмреЛрд░реНрдб5smart.ru3500 рдЖрд░
2рд╕рдВрд╡реЗрджреА SHT20 рд╕реЗрдВрд╕рд░voltmaster.ru72 рдЖрд░
3рдХреЗрд╕ Gainta G517Bvoltmaster.ru160 рдЖрд░
4рдмреИрдЯрд░реА рдХрдореНрдкрд╛рд░реНрдЯрдореЗрдВрдЯ BH421 2xAAAvoltmaster.ru14 рдЖрд░


Z-Uno рд▓рдЧрд╛рддрд╛рд░ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдирдИ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓, рд╡рд░реНрддрдорд╛рди рдлрд░реНрдорд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг 2.0.9 рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ:

  • 1-рд╡рд╛рдпрд░ DS18B20 рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░
  • DHT22 && DHT11 рддрд╛рдкрдорд╛рди рдФрд░ рдЖрд░реНрджреНрд░рддрд╛ рд╕реЗрдВрд╕рд░
  • 125Khz рдЖрд░рдПрдлрдЖрдИрдбреА рдХрд╛рд░реНрдб рд░реАрдбрд░
  • I2C BMP180 рджрдмрд╛рд╡ рдФрд░ рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░
  • рдФрд░ рдЕрдиреНрдп рдЙрдкрдХрд░рдг, рдпрд╣рд╛рдБ рдЙрджрд╛рд╣рд░рдг z-uno.z-wave.me/examples рд╣реИрдВ


I2C рдмрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕реЗрдВрд╕рд┐рд░рд┐рдпрди SHT20 рд╕реЗрдВрд╕рд░ рд╕рдорд░реНрдерд┐рдд рд▓реЛрдЧреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ Z-Uno рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦрдирд╛ рдкрдбрд╝рд╛ред Z-Uno рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрдЪ рд╕рд┐рдВрдЯреИрдХреНрд╕ Arduino рдХреЗ рд╕рдорд╛рди рд╣реИ, рдкреВрд░рд╛ рд╕реНрдХреЗрдЪ 35 рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ:



рдПрдХ рддрд╛рдкрдорд╛рди рдФрд░ рдЖрд░реНрджреНрд░рддрд╛ рд╕реЗрдВрд╕рд░ Sensirion SHT20 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ Z-Uno рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрдЪ
#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.cpp Z-Uno рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд
 /* SHT2x - A Humidity Library for Arduino. Supported Sensor modules: SHT21-Breakout Module - http://www.moderndevice.com/products/sht21-humidity-sensor SHT2x-Breakout Module - http://www.misenso.com/products/001 Created by Christopher Ladden at Modern Device on December 2009. Modified by Paul Badger March 2010 Modified by www.misenso.com on October 2011: - code optimisation - compatibility with Arduino 1.0 This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ //#include <inttypes.h> #include <Wire.h> #include "Arduino.h" #include "SHT2x.h" /****************************************************************************** * Global Functions ******************************************************************************/ /********************************************************** * GetHumidity * Gets the current humidity from the sensor. * * @return float - The relative humidity in %RH **********************************************************/ float SHT2xClass::GetHumidity(void) { return (-6.0 + 125.0 / 65536.0 * (float)(readSensor(eRHumidityNoHoldCmd))); } /********************************************************** * GetTemperature * Gets the current temperature from the sensor. * * @return float - The temperature in Deg C **********************************************************/ float SHT2xClass::GetTemperature(void) { return (-46.85 + 175.72 / 65536.0 * (float)(readSensor(eTempNoHoldCmd))); } /****************************************************************************** * Private Functions ******************************************************************************/ uint16_t SHT2xClass::readSensor(uint8_t command) { uint16_t result = 0 ; uint8_t data[2]; // Sending request to sensor Wire.beginTransmission(eSHT2xAddress); // We have to read some registers from sensor Wire.write(command); // Command Wire.endTransmission(); delay(100); Wire.requestFrom(eSHT2xAddress, 3); //Get 3 bytes byte i = 0; while(Wire.available()) { data[i++] = Wire.read(); } result = data[0] << 8; result += data[1]; result &= ~0x0003; // clear two low bits (status bits) return result; } SHT2xClass SHT2x; 


SHT2x.h
 /* SHT2x - A Humidity Library for Arduino. Supported Sensor modules: SHT21-Breakout Module - http://www.moderndevice.com/products/sht21-humidity-sensor SHT2x-Breakout Module - http://www.misenso.com/products/001 Created by Christopher Ladden at Modern Device on December 2009. Modified by www.misenso.com on October 2011: - code optimisation - compatibility with Arduino 1.0 This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef SHT2X_H #define SHT2X_H //#include <inttypes.h> typedef enum { eSHT2xAddress = 0x40, } HUM_SENSOR_T; typedef enum { eTempHoldCmd = 0xE3, eRHumidityHoldCmd = 0xE5, eTempNoHoldCmd = 0xF3, eRHumidityNoHoldCmd = 0xF5, } HUM_MEASUREMENT_CMD_T; class SHT2xClass { private: uint16_t readSensor(uint8_t command); uint8_t _data; public: SHT2xClass(){}; float GetHumidity(void); float GetTemperature(void); }; extern SHT2xClass SHT2x; #endif 


рд╡рд┐рд╢реЗрд╖ рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ, рд╕реНрдХреЗрдЪ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИ рдЬреЛ 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 рдХреЗ рд▓рд┐рдП рд╡рд╛рдпрд░.рдПрдЪ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ, рдкрд┐рди 9 рдФрд░ 10 рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЫрд╡рд┐

рд╕реЗрдВрд╕рд░ рд╕реЗ рд╕реВрдЪрдирд╛ рдлреЛрди рдкрд░ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдЯреЛрдореЗрд╢рди рдореЗрдВ рд╣реНрдпреВрдорд┐рдбрд┐рдлрд╛рдпрд░ рдФрд░ рдПрдпрд░ рдХрдВрдбреАрд╢рдирд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдбреЗрдЯрд╛ рд╣рд░ 12 рдорд┐рдирдЯ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдореЛрдб рдореЗрдВ, рд╕реЗрдВрд╕рд░ рдХреЛ рдмреИрдЯрд░реА рдХреЗ рдПрдХ рд╕реЗрдЯ рд╕реЗ 2 рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред



Gint рдмрд┐рд▓реНрдбрд┐рдВрдЧ G517B 90 x 60 x 20 рд╕реЗрдореА рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмреИрдЯрд░реА рдбрд┐рдмреНрдмреЗ рдХреЗ рдиреАрдЪреЗ рдПрдХ рдЬрдЧрд╣ рдХреЗ рд╕рд╛рде рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рд╣реИред

рдЬреЗрдб-рд╡реЗрд╡ рддрд╛рдкрдорд╛рди рдФрд░ рдЖрд░реНрджреНрд░рддрд╛ рд╕реЗрдВрд╕рд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд▓рдЧрднрдЧ 2 рдШрдВрдЯреЗ рдФрд░ 3746 рдкреА рд▓рдЧреЗред рдЖрдк рдИ-рдЗрдВрдХ рд╕реНрдХреНрд░реАрди рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рджреАрд╡рд╛рд░ рдкрд░ рд▓рдЯрдХрд╛ рд╕рдХрддреЗ рд╣реИрдВ!

Source: https://habr.com/ru/post/hi404417/


All Articles