Но теперь мне понадобилась мобильная метеостанция на балкон беспроводная и на батарейках.
В качестве радио модуля я использовал Z-Wave плату Z-Uno, в качестве датчика температуры и влажности решил попробовать Sensirion SHT20 работающий по I2C.
Материалы и цены:
№ | Материал | Магазин | Цена |
1 | Z-Wave плата Z-Uno | 5smart.ru | 3500 р |
2 | Датчик Sensirion SHT20 | voltmaster.ru | 72 р |
3 | Корпус Gainta G517B | voltmaster.ru | 160 р |
4 | Батарейный отсек BH421 2xAAA | voltmaster.ru | 14 р |
Z-Uno постоянно обновляется, добавляется поддержка новой периферии и библиотеки. На данный момент актуальная версия прошивки 2.0.9 и в ней появилась поддержка следующих устройств:
- 1-Wire DS18B20 temperature sensor
- DHT22 && DHT11 temperature and humidity sensor
- 125Khz RFID card reader
- I2C BMP180 pressure and temperature sensor
- и другие устройства, примеры здесь z-uno.z-wave.me/examples
Датчика Sensirion SHT20, работающего по I2C шине в списке поддерживаемых не оказалось, поэтому пришлось написать свою реализацию для Z-Uno. Синтаксис скетча под Z-Uno максимально похож на Arduino, весь скетч уместился в 35 строк:
#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 - 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 - 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 проводками. По умолчанию в библиотеке Wire.h для I2C определены пины 9 и 10.
Информацию с датчика можно посмотреть на телефоне и она используется в автоматизации, для управления увлажнителем и кондиционером.
Данные обновляются каждые 12 минут, в таком режиме датчик должен проработать более 2-х лет от одного комплекта батареек.
Гаинтовский корпус G517B 90 х 60 х 20 см специально выбирался с местом под батареечный отсек, все отлично влезло.
На разработку Z-Wave датчика температуры и влажности ушло примерно 2 часа и 3746 р. Можно еще добавить E-Ink экран и повесить на стену!
Комментарии (79)
Akon32
07.06.2017 17:33+1Дорого-то как…
Контроллер & радио на базе ESP8266 выйдет раз в 25 (!) дешевле.aivs
07.06.2017 17:39-3Спорим вы не сделаете датчик влажности на батарейках на ESP8266!!!
потребление ESP8266 — 300 (при передачи 700 мА)
потребление Z-Uno — 7 мкА (30 мА)Akon32
07.06.2017 17:51+4Спящий режим — наше всё. Единицы микроампер.
И где вы такие цифры взяли? По даташиту: "в среднем" — 80мА, при поддержке соединения ~ 1мА.
По-вашему, оно 2 ватта рассеивает? Это была бы печка.aivs
07.06.2017 17:57-2Немного перегнул, по даташиту у ESP8266 все очень хорошо, но на GT много статей есть, при различных условиях потребление в режиме передачи от 80 до 400 мА.
В режиме сна < 1мА.
Нужно будет на ESP8266 собрать такой же датчик для сравнения.
dmitryrf
07.06.2017 22:56Личный опыт: 2 датчика на ESP8266. Один измеряет температуру полотенцесушителя с помощью DS18B20, другой — давление воды с помощью АЦП. Оба передают данные раз в 5 минут и засыпают. Оба работают от китайских повербанков на элементе 18650 емкостью около 2000 mAh. Обоих хватает примерно на 2 недели.
Потихоньку делаю замену на STM8L+NRF24. Предварительный подсчет показал несколько лет от одной CR2032.e_butcher
08.06.2017 09:21А температура и давление перманентно измеряются или тоже раз в 5 минут?
И чем обусловлено такое отличие в сроке работы ESP и STM, объясните несведущим…dmitryrf
08.06.2017 10:47Измерение тоже раз в 5 минут, остальное время контроллер спит.
Есть два существенных отличия — потребление в активном режиме и время активной работы. ESP находится в активном режиме 10 секунд. Больше половины из них уходит на регистрацию в сети. Потребление в активном режиме — 80 мА.
STM8 будет находиться в активном режиме менее секунды. Уже снизили потребление в 10 раз. Потребление в активном режиме будет менее 15 мА (примерно 10-12 на NRF24 и 2-4 на STM8). Снизили потребление еще в 5 раз. Таким образом в худшем случае STM8+NRF24 потребляет в 50 раз меньше, чем ESP8266. Если вдаваться в детали, можно еще много где наэкономить.
Добавлю, что в случае ESP идет передача данных через MQTT — это дополнительное время на обработку уровеня абстракции. STM8+NRF просто пуляет данные в эфир без регистрации в сети и установки соединения. Перекладывание из эфира в MQTT будет делать базовая станция, запитанная от сети.Akon32
08.06.2017 12:16+1Естественно, "что-нибудь"+NRF24 будет правильней — я предложил ESP8266 только из-за простоты использования совмещённого CPU и радио.
А пробовали задействовать в ESP8266 режим сна, в котором удерживается соединение с AP ("light-sleep") ?
dmitryrf
08.06.2017 12:21Нет, даже не слышал. Нашёл в интернете цифру 10-15 мА в данном режиме. Совсем не подарок :)
Akon32
08.06.2017 13:2715mA — это при активном CPU. В light-sleep, якобы, порядка 0.9mA.
dernuss
08.06.2017 13:45всё равно очень и очень много
для продолжительной работы от батареек нужно порядка ~1 µA в режиме сна.
dmitryrf
08.06.2017 13:49Допустим, мы экономим 5 секунд на подключении к сети. При среднем токе активного режима около 80 мА, это 400 мАс (миллиампер*секунд). Пять минут сна в таком режиме стоят 0.9 мА * 300 с = 270 мАс. Т.е. выгода у нас 130 мАс на каждом цикле. За две недели происходит примерно 4000 пятиминутных циклом. Суммарная экономия составит 520 000 мАс. Каждый цикл стоит 270 + 400 = 670 мАс. Т.е. получим на 520 000 / 670 = 776 циклов или почти 65 часов работы. Неплохо. Если немного подкорректировать мой код, то, думаю, можно дотянуть время работы до 3 недель. Есть над чем подумать :)
Alexeyslav
09.06.2017 08:183 недели работы для внешнего датчика это не срок, там должен быть минимум год. Поэтому даже думать не стоит — зря драгоценный ресурс потратите когда есть очевидно более выгодная схема.
dmitryrf
09.06.2017 09:21Тут вопрос трудозатрат. Работающие две недели датчики уже есть. Если парой строк кода за 5 минут я смогу увеличить время работы на 50%, то почему нет?
aivs
09.06.2017 10:33+1Датчик который работает 2 недели…
Получается вы работаете на датчик (постоянное обслуживание), а не датчик на васdmitryrf
09.06.2017 10:36Изначально я ожидал, что он протянет пару дней и на этом эксперимент закончится. Потом решил, что менять аккум два раза в месяц — совсем не трудно. А теперь пилю замену, т.к. за годик подзадолбался :)
dernuss
09.06.2017 11:35Дальнобойности NRF24 вам хватит?
dmitryrf
09.06.2017 11:40Опыт показал, что через две бетонных стены (угол) она уже не пробивает, так что БС придется поставить примерно в центре квартиры, а там прямая видимость во все стороны. Так что, да, хватит.
Собственно, по той же причине в центре пришлось вешать точку доступа 5 ГГц, иначе сигнал не проходил.dernuss
09.06.2017 11:42Вооот. Но если у вас всё уже предусмотрено, то норм.
Я если буду делать, то на чём нить по мощнее, например si4010, si4432, si4463…
Kisa_ua
07.06.2017 18:14+3Соглашусь, что такое решение очень и очень дорогим получается. При наличии raspberry в системе управлением, можно было бы и на rf433 + attiny + датчик температуры/влажности. Это на тот случай когда хочется МК освоить.
Можно прикупить Oregon Scientific THGN132N(15-20у.е.), работает по rf433, описание протокола описано на просторах интернета. На raspberry приемник и управляем чем угодно и как угодно. Аналогичный датчик стоит на улице и уже больше трех лет на 2х батарейках АА работает.dernuss
07.06.2017 18:43Я бы сделал на stm8l + si4432 + BME280 либо si4010 + BME280
Да и наверное сделаю как нибудь ;)Kisa_ua
07.06.2017 19:55C stm8l + si4432 + BME280 не сталкивался, поэтому плюсов и минусов не могу сказать, думаю такое решение тоже имеет место быть. А вот Аtiny85 и прикручивать к нему датчик температуры/влажности и передачи показаний по RF433 пробовал.
Забыл добавить, что минусом работы с rf433 на дешевых приемниках/передатчиках является дальность передачи данных.
Соглашусь с комментарием ниже от Nizametdinov, если уже есть система работающая на Z-Wave, то добавлять в нее различные RF протоколы, которые работают на различном железе, приведет к танцам с бубном.dernuss
07.06.2017 20:34Да, ваш минус про дальность я подтверждаю, так как владею метеостанцией oregon. Фактически у меня дальность 1 комната, что несколько удручает. Про Аtiny85 при беглом изучении параметров я не нашёл ток в режиме спячки. У Stm8l ток в спячке ~1.3 µA.
Ну а я в свою очередь не соглашусь с вами ;) и Nizametdinov, я за разумное расходование средств ;)
3500 р ну явно перебор как по моему.aivs
07.06.2017 20:56-1Иногда разумнее переплатить, чем взять подешевле и тратить время на настройку и постоянную поддержку (если конечно это не сама цель — потратить время на развлечение).
dernuss
07.06.2017 21:01+1Да, но переплатить за датчик температуры??? Тем более тут всё равно тратится время на развлечение)
Впрочем я и сам часто нерационально деньги расходую;)
Kisa_ua
08.06.2017 10:29В моем случае получается, если датчик орегоновский на улице, то пробивает одну стену несущую дома и 1-2 перегородки из гипса. Дальше уже не получается ловить сигнал. Приемник из дешевых китайских рф433. Аналогичный опыт в квартире, пробивает две кирпичных комнатных перегородки (приемник и передатчик из дешевых). Третью стену уже не пробивает. Но решение получается копеечным (raspberry не в счет).
Аtiny85 в режиме с watchdog таймером ~5 µA. Информация с просторов интернета, сам не проверял. Моя поделка на attiny85+rf433+ds18b20 на 3-х батарейках проработало более 2-х лет, что ИМХО приемлемо.
ESP8266 очень интересная вещь, но применяю такие решения только там где есть возможность постоянного питания и не требует применения акку/батареек.
Bonio
07.06.2017 20:55rf433 + attiny
Тут с питанием городить что-то нужно будет, потому, эти передатчики зачастую требуют 12 вольт.
Есть 5-вольтовые или даже 3-вольтовые, но и им нужно по мере разряда батарей поддерживать это напряжение, иначе он перестанет работать, когда в батарейке еще будет оставаться половина заряда.Kisa_ua
08.06.2017 10:36rf433- 5v — http://www.electrodragon.com/product/433m-rf-wireless-module-a-pair-of-receiver-and-transmitter/
Operating Voltage
– 1.8 — 5.5V for ATtiny25V/45V/85V
– 2.7 — 5.5V for ATtiny25/45/85
для передатчиков требуется напряжение, от этого зависит дальность передачи сигнала, но все равно это не 12в.Bonio
08.06.2017 10:46Вот про эти я и говорил, они требовательны к напряжению. А т.к. для датчиков разумнее всего применять питание 3в (таблеттка или две AA или AAA), получается, что при емкости батареек в 90% передатчик уже ничего передавать не будет. А зимой, например, и вовсе работать перестанет.
С такими передатчиками нужно городить повышающие step-up преобразователи, которые сами по себе достаточно сложны, чтобы уже они высаживали батарейку до нуля.
dernuss
08.06.2017 10:53для передатчиков требуется напряжение, от этого зависит дальность передачи сигнала, но все равно это не 12в.
По вашей же ссылке
Transmitter Module Specification:
Operating voltage :3-12VKisa_ua
08.06.2017 11:07Ок, согласен, что требуется большее напряжения для правильной и стабильной работы и для этого простое решение с питанием от 3х или 4,5в годится для поиграться, а для более серьезных проектов/вещей не годиться. Поэтому лучше поискать готовое решение на рынке. Как я писал ранее, готовый датчик орегоновский стоит в пределах 15-20 у.е., вероятно можно найти и другие датчики.
Решение с китайскими xiaomi gateway + датчики температуры+ управляемые розетки будет сравнимо по цене одной только платы Z-Wave плата Z-Uno. Из недостатков, что такое решение работает только через некий китайский сервер.kovalyuk
08.06.2017 13:19"xiaomi gateway… работает только через некий китайский сервер"
Работает (может) через ваш персональный сервер — MajorDoMo, Domoticz, OpenHABKisa_ua
08.06.2017 13:53Немного, не верно написал, конечно можно работать через персональную систему управления, но при этом все равно данные о включении и выключении розеток/выключателей будут отправляться на сторонний сервер. Такое поведение добавляет уязвимости в систему. Для меня это недостаток, что нельзя изолировать систему. Хорошо, если это просто датчики температуры, открытия дверей, дыма, которые просто сигнализируют о неком событии.
Как раз сейчас тестирую xiaomi gateway + domotociz + homekitkovalyuk
08.06.2017 14:02"данные будут отправляться на сторонний сервер"
Нет, это не так. Ваша и "вражеская" системы могут мирно сосуществовать, но если, скажем, на роутере перекрыть врагам воздух, всё будет подконтрольно только вам. Версию про аппаратные и программные закладки исключаем.Kisa_ua
08.06.2017 18:34В родном приложении (Mi Home), есть функция постановки на сигнализацию. При этом getaway моргает глазом и пикает как автомобильная сигнализация. Перенести данную функцию на domoticz без дополнительных сценариев не получается или я пока не разобрался, как это правильно сделать. Поэтому полностью закрывать на роутере «врагам» воздух не хотелось, а хотелось оставить только функцию постановки и снятия с «сингализации». Если перекрывать воздух «врагам», то необходимо придумать как ставить на сигнализацию систему из вне.
Правда я еще не весь 4pda перечитал.
Alexeyslav
09.06.2017 11:58Это рабочие напряжения для контроллеров а не передатчиков/приёмников. Китайцы… как напишут так сразу ховайся. Ну да, он по факту работает в этих диапазонах но только цифровая часть. У передатчика может сильно упасть выходная мощность а у приемника чувствительность(а то и вовсе пропасть у сверхрегенеративных) при приближении к нижней границе питания. В итоге пара будет работать да, только на 30 сантиметров. А выходная мощность и максимальное расстояние указаны для максимального напряжения в идеальных условиях(может даже не с комплектными антеннами).
Nikolay_Ch
08.06.2017 16:30Эм… А Вам удалось принять пакеты от датчика Орегона? Я что-то их получить не могу. Какой-то шум в эфире идет, который активизируется при передаче, но ничего похожего на байты, описанные в протоколе, я не наблюдаю. Использовал малину и приемник RX-4M50RR30SF.
Kisa_ua
08.06.2017 18:24Да, все работает и принимает показания. Приемник на rasbperry pi из самых дешевых, что вроде:
https://microcontrollerelectronics.com/fs1000a-wireless-rf433-transmit-and-receive-module-pair/
Кстати, ньюанс всех таких приемников и raspberry pi, приемник работает на 5в логике, а малина 3,3в. Поэтому необходимо понижать напряжение, например вот такой схемой
https://www.sparkfun.com/products/12009
Может работать и без понижение напряжения, но есть вероятность получить кирпич или просто не работающие пины(GPIO) на плате raspberry pi.Nikolay_Ch
08.06.2017 18:26Вот просто соединили и все? Помех лишних не было? А пин оставляли в аналоге или в цифровой режим переводили? И… Как переводили в биты полученные данные?
dernuss
08.06.2017 20:54Кстати, ньюанс всех таких приемников и raspberry pi, приемник работает на 5в логике, а малина 3,3в. Поэтому необходимо понижать напряжение, например вот такой схемой
https://www.sparkfun.com/products/12009
Ужасно расточительно) достаточно двух, или даже одного резистора)Kisa_ua
08.06.2017 21:53Данная статья тоже не призывает к экономии). Тут было главное предупредить, что необходимо понизить напряжение, а уже как это сделать, личное дело каждого, потратить последнее, отказаться на месяц от курения и купить конвертер или порыться в ящике и найти пару резисторов необходимого наминала.
Nizametdinov
07.06.2017 18:32+1Очень годный проект и не дорого.
Коментаторы забывают про гомогенность твой системы. Воротить систему на стыке 3-4 систем на физическом уровне и потом поддерживать(а это главное) — то еще шапито.Akon32
07.06.2017 18:43Недавно смотрел в "оффлайн" магазинах — за 3-4к можно купить симпатичные часы с погодной станцией и беспроводным наружным датчиком. Датчик из тех часов меньше и вероятно рассчитан на уличные условия.
А тут только компоненты датчика в эту цену.
aivs
07.06.2017 19:29+1А как информацию с этих часов в домашнюю автоматизацию передавать?
Не алике есть датчики с экраном за 99?Akon32
08.06.2017 12:09Боюсь, никак (если только не упарываться с веб-камерой, RPi и OpenCV).
Но в одном случае получаем готовый продукт с примерно теми же функциями(*), а в другом за те же деньги — датчик в разобранном виде. Это и удивляет, тем более, что есть альтернативы.
* на самом деле функции другие, и подойдут только части пользователей.
aivs
08.06.2017 13:17Можно же ртутный термометр использовать и датчик влажности с биметаллической пружиной и стрелочкой.
Смысл же основной, завести эти данные в домашнюю автоматизацию, повышаем уровень комфорта жизни, все ради этого!
Estranged01
07.06.2017 20:49Чего-то датчик стоит не 72 рубля, а аж 482.
aivs
07.06.2017 20:53В апреле еще 72 стоил. Вообще с ценами на эти датчики странности, т.к. два датчика отличаются одной буковкой в обозначении, а цена отличается в 100!!! раз. Возможно у Voltmaster рандомайзер выставляет цены на эти датчики. Сейчас по поиску "Sensirion", самый дешевый SHT-30 за 210р http://voltmaster.ru/cgi-bin/qwery.pl/id=747833230
Bonio
07.06.2017 21:08+1Sensirion SHT20
Я где то читал, что эти датчики лучше не применять на улице. На данный момент BME280 выглядит наиболее привлекательно, он и температуру и влажность и давление может мерить.
Отправку данных на narodmon.ru не думаете прикрутить?dernuss
07.06.2017 21:20Зато SHT20 точнее чем BME280
aivs
07.06.2017 21:22Еще у SHT20 можно выбрать версию с питанием от 1.8В, 3.3В, 5.0В.
Про BME280 не знаю какие варианты питания предусмотрены.dernuss
07.06.2017 21:30В плане питания лучше BME280, у него от 1,71 до 3,6 В питание. И ещё BME280 давление измеряет.
Но вот в температуре BME280 сливает SHT20. А ведь есть ещё SHT30 и SHT35…
Я заинтригован…Bonio
07.06.2017 21:35Но вот в температуре BME280 сливает SHT20
Ну там не велика разница, на самом деле, у одного ±0,5%, у другого ±0,3%.Alexeyslav
09.06.2017 14:37Это ещё белыми нитками шито. Масса ньюансов, надо уточнять характеристики по конкретному месту и цели использования датчика. Но что-то мне подсказывает что в итоге платиновый ТС всёравно победит по характеристикам.
Alexeyslav
08.06.2017 10:21Однако, датчик температуры там не измеряет температуру воздуха, а служит лишь для компенсации температурной зависимости остальных двух датчиков. Причем компенсацию надо выполнять внешнюю, сам датчик её не производит.
Вообще, подобные датчики на самом деле игрушки по своим метрологическим характеристикам и отдавать такие данные «наружу» это верх самонадеянности.Bonio
08.06.2017 10:40Данный датчик (BME280) позиционируется, как датчик температуры давления и влажности, даже в даташите написано «digital humidity, pressure and temperature sensor».
BMP180, например, это датчик давления, только давления. Но в нем есть также датчик температуры, но он не предназначен для снятия с него данных о температуре, а только лишь для компенсации показаний давления.Alexeyslav
11.06.2017 00:52Ну, температуру он какую-то измеряет, но скорей всего температуру подложки датчика. Часто это вообще не вариант — толку измерять температуру подоконника, да еще слегка подогретого электричеством датчика?
Лучше всего измерять температуру платиновым ТС в металлической капсуле с низким КЧТ, который вынесен за пределы комнаты сантиметров на 50 минимум.Bonio
11.06.2017 01:07+1Датчик запитывается на считанные доли секунды раз в несколько минут, как раз, чтобы исключить даже самое минимальное влияние нагрева в процессе измерения. Сам датчик выносится от основной схемы подальше, а вокруг него в плате делаются технологические зазоры, как в импульсных блоках питания, чтобы минимизировать передачу тепла к нему по плате, видел такие рекомендации в каком то даташите. Или вообще выносится на проводах в виде отдельной платы. Тогда температура его подложки и всего датчика целиком будет равна температуре окружающего воздуха.
dernuss
11.06.2017 12:11Не думаю что такая точность нужна для бытовых нужд.
Alexeyslav
12.06.2017 09:02Да там +- лапоть получается если не изолировать термометр от внешних излучений и восходящего потока воздуха в многоэтажке, например. Не термометр получится а черти что.
dernuss
12.06.2017 10:44Понятно, но это же не Гидрометцентр ;)
Вон всякие Орегон продают. Народ покупает.Alexeyslav
12.06.2017 11:42Однако, на своём термометре я уже научился автоматом вычитать 2 градуса. Показывает стабильно на 2 градуса больше чем есть реально. А на солнце может до 40 показать, хотя сам датчик находится в тени козырька, однако… внизу 4 этажа хорошо прогреваемые солнцем…
Пробовал вынести датчик на пол метра от стены, показывает гораздо лучше но… нужно оборудовать вынос, на временных палках это не дело.
Одно дело погодная станция, а совершенно другое дело ПРАВИЛЬНО разместить датчик от неё. В инструкции, кстати, должны быть требования к размещению датчика, но кто же их читает? Вешают куда получится.dernuss
12.06.2017 16:04В городе особо не куда вынести датчик, это да.
Я бы и сам его вынес при наличии возможности.
Вот в частном доме лучше. Можно вынести датчик на участок в тень.
П.С. У меня тоже есть в планах (правда не на первом месте) сделать свою погодную станцию ;)
xtala
08.06.2017 11:48-13746 рубля за термометр? Автор признайся ты зачет по экономике в ВУЗе (или техникуме) за ящик пива получил? Это просто вопиющая цифирь за сраный термометр. Хотя подозреваю твои преподаватели с гордостью рассказывали как они учили самого Путина и Набиуллину экономике. Ну эти все — олимпиады за цену полета к Марсу, «рубль упал доходы увеличились (с) », Зенит арена по цене полноценной базы на Титане. Ну и все прочие высокие экономические достижения достойные Шнобелевской премии и воспевания в Камеди клабе.
Ruckus
За 700р есть датчик xiaomi, правда для его работы необходим Gateway их же (цена около 3000, в сумме какраз как сабж выйдет). Зато размеры в диаметре менее четырёх сантиметров и есть возможность мониторинга при наличии интернета из любой точки земного шара. А сейчас предзаказ на аналогичный датчик ещё и с давлением. Это если о цене и функционале =)
А если говорить об изучении МК, то проектик вполне подходит, выглядит довольно простым даже для новичков.
Ruckus
Расскажите лучше как вы управляете кондиционером и увлажнителем, пролистал ваши статьи в надежде, что уже писали, но не увидел.
aivs
Там ничего сложного, поэтому и не стал специально писать. Для кондея я использую тот же модуль ИК, что и для телевизора:
https://habrahabr.ru/post/193572/
А увлажнитель включен через Z-Wave розеточный модуль Everspring, благо у меня не сбрасывается режим после отключения питания.
aivs
В моем случае, Z-Wave контроллер у меня уже есть, поэтому и была выбрана Z-Uno. Этот проект, как учебный, в перспективе можно более крутые вещи сделать на Z-Uno.