Прибор измерительный температуры и влажности ПИ-ТВ-2

  • Tutorial
Собственно, метеодатчик — это, наверное, второе что все делают после того, как помигают светодиодом на Arduino. А раз уж этой участи не избежать, то надо разобраться с ней как можно быстрее, чтобы уже двигаться дальше.

Я изначально не планировал смотреть температуру и влажность локально, поскольку большую часть времени в течение недели провожу, во-первых, вне дома, а, во-вторых — со смартфоном. Поэтому вариантов было два: получать погоду по почте или же выгружать в какой-нибудь подходящий онлайновый сервис.

Честно скажу: сначала я хотел делать добро и бросать его в воду отправлять погоду на Openweathermap.org и даже какое-то время делал это. Но потом началось — то сервис внезапно откажет, а я сижу и гадаю, что случилось, то его IP поменяется, и мне надо снова лезть в код центрального контроллера.

В общем, от OWM я отказался, а полученный опыт использовал для адаптации датчика к другому онлайновому сервису. Он, хотя и не использует данные для прогноза, для меня оказался очень удобным, чтобы смотреть и текущую погоду, и статистику.





Назначение

ПИ-ТВ-2 предназначен для измерения текущих значений влажности и температуры, и передачи их центральному домашнему контроллеру КЦДВ-2-12 по радиоканалу.

Других назначений пока не имеет, хотя сетевое питание и контроллер Arduino Pro Mini на борту как бы намекают, что можно еще чего-нибудь добавить. Чем я, вероятно, когда-нибудь и займусь.

. вот так он выглядит в интерьере. Ну а расчет на то, что несовершенство дизайна постоянно прикрывает штора
image

Принцип работы

ПИ-ТВ-2 предназначен для совместной работы с центральным домашним контроллером КЦДВ-2-12 или аналогичным устройством, способным принимать и интерпретировать принятые данные. Формат данных — ниже по тексту и также виден в скетче.

ПИ-ТВ-2 не отображает текущие показания и не имеет проводного подключения к каким-либо внешним устройствам, кроме датчика температуры/влажности и передатчика.

Показания температуры и влажности, измеренные датчиком DHT21, передаются центральному контроллеру по радиоканалу с интервалом в полчаса. Центральный контроллер выгружает показания по протоколу HTTP POST на сервис "Народный мониторинг" с интервалом в один час. Оба интервала никак не привязаны друг другу и не синхронизируются.

ДЕМО показаний датчика

При нормальной работе встроенный светодиод Arduino мигает с интервалом около 8 секунд.

Коррекция ошибок и контроль приема и целостности передаваемых данных не предусмотрены.

Железо

По конструкции ПИ-ТВ-2 очень прост и состоит всего из четырех основных компонентов (ссылки, как обычно — просто для примера):

1. Arduino Pro Mini 5В, 16 МГц с чипом ATmega328.
2. Комбинированный датчик температуры и влажности DHT21.
3. Передатчик 433 МГц с амплитудной модуляцией (из такого комплекта, например).
4. Резистор 4.7кОм, 0.125Вт
5. Источник питания 5В — 9В (опционально, можете поэкспериментировать с батарейками или аккумуляторами).
6. Для заливки кода в Arduino Pro Mini потребуется и вот такой (или аналогичный) конвертер COM-USB (опционально — возможно, он у вас уже есть).

Именно этот контроллер — потому что он компактный и уже лежал у меня в ящике для всяких самоделок. А купил я пачку этих контроллеров, потому что они были недорогие и встречались чаще, чем версия 3В. Да и не думал я, что буду питать это хозяйство от 3В, поэтому 5В было более актуально.

. примерно так вы будете все соединять для заливки скетча
image

Приобретение датчика температуры и влажности DHT21 определено тем, что я как-то на DX заказал очень простые, но симпатичные часы жене. Только после оплаты магазин отписался, что часов уже на складе нет, а деньги они могут вернуть на счет в магазине, то есть под будущие покупки. Короче, взял почти не глядя.

image

Параметры подбирал с учетом того, что датчик, скорее всего, будет уличным, поэтому не DHT11, а DHT21 у которого минимальная температура измерения составляет -40С. Сразу скажу: это для Москвы, а если у вас другие минимумы, то датчик тоже будет совсем другой. Например, сверхпопулярный DS18B20, который измеряет до -55C и что-то еще для влажности.

. подходит
image

Аналоговый передатчик необходим для связи с аналоговым же приемником центрального контроллера с помощью протокола, реализованного в библиотеке RC-Switch. Повторюсь, в центральном контроллере библиотеку я использую по двум назначениям: управление беспроводными розетками и периферией, а также обмен данными с сервисными контроллерами. Это позволяет обойтись минимумом оборудования и заодно экономит память, так как не нужны специализированные библиотеки для беспроводных коммуникаций.

Еще один выбор — автономное или сетевое питание. Опять же, я честно пытался использовать автономное питание: мне нравилась идея, что датчик будет просто где-то висеть без проводов. Но не получилось. По факту даже у Arduino Pro Mini довольно высокое потребление энергии, если не уметь отключать все и вся. А я не научился.

Максимум, что мне удалось выжать с различными библиотеками «сна» — около недели работы на аккумуляторах типа 14500. Два аккумулятора при этом умерли в течение пары недель по непонятной причине. По идее ведь защита должна была предотвращать чрезмерный разряд, но по факту — просто блокировала аккумулятора. Снятие защиты продлило срок работы аккумулятора еще на неделю, после чего она умерла окончательно.

Итог — сетевой бок питания и никаких волнений.

Логически сборка выглядит следующим образом:

1. Датчик DHT21

GND — к минусу питания;

VCC — к пину VCC Arduino или к любому цифровому пину Arduino в режиме OUTPUT/HIGH для возможности экономии энергии при батарейном питании (по коду это пин 7) или к выходу 5В блока питания (если у вас блок 5В). К 9В датчик подключать нельзя;

OUT — напрямую к пину 5 Arduino и через резистор 4.7 кОм — к плюсу питания (подтягиваем к плюсу).

. в принципе, и по проводам видно, но чтобы быть уверенным на 100% нужно его открыть
image

2. Передатчик

GND — к минусу питания;

VCC — к плюсу питания (от 3В до 12В), также можно к пину VCC Arduino или к любому цифровому пину Arduino в режиме OUTPUT/HIGH для возможности экономии энергии при батарейном питании (по коду это пин 8);

DATA — к пину 6 Arduino.

. примерно так это выглядит в процессе
image

. в расчете на батарейки (аккумуляторы)
image

3. Arduino

Если у вас источник 5В, тогда его плюс можно подключить к пину VCC.

Если источник питания выдает заметно больше 5В (но не больше 12В), тогда — к пину RAW. При этом на пинах VCC будет 5В, что можно использовать для датчика DHT21 и другой периферии.

Минус источника питания, соответственно, к GND Arduino.

Немного «возможности экономии энергии при батарейном питании». Дело в том, что Arduino-то мы отправим спать, а что делать с периферией, которая постоянно подключена к питанию? Городить ключи на питающие цепи? Совсем необязательно. Ведь цифровые пины Arduino можно использовать для питания маломощных устройств — передатчиков, приемников, некоторых сенсоров.

А это, в свою очередь, позволяет легко включать и выключать периферию по мере необходимости. Для включения просто переводим пин в режим OUTPUT, пишем в него HIGH и получаем +5В питания. А для выключения пишем в тот же пин LOW.

Вот и все с логикой.

Физически сборка усложнена тем, что я, во-первых, разместил все в корпусе от беспроводного звонка, поскольку надеялся воспользоваться его батарейным отсеком. Кстати, так получилось, что индикаторный светодиод Arduino оказался рядом с окошечком «светомузыки» бывшего звонка, так что через него можно было наблюдать за активностью контроллера, поскольку код предполагает периодическое мигание (да-да, и здесь оно!).

. пока я не выпаял светодиод питания — было видно и его
image

Во-вторых, подключил датчик DHT21 через штекерный разъем для простоты обслуживания метеодатчика. Провод датчика я удлиннил так, чтобы его можно было без проблем вытянуть за окно.

А в третьих — выпаял светодиод питания, когда еще был одержим идеей питания от аккумуляторов. Ведь при включенном питании светодиод горит постоянно, а зачем это нужно метеодатчику?

Для крепления датчика за окном приклеил на него небольшой магнит. В таком виде датчик «прилипает» козырьку или «подоконнику». Креплю я его снизу, чтобы не заливало водой и не перегревало солнцем.

Для питания всего ПИ-ТВ-2 в финальной версии использовал кусочек провода с разъемом под имеющийся сетевой адаптер.

Ну и сам метеодатчик висит на окне на тех же магнитах: один магнит на датчике, другой — на окне. Они, кстати, очень удачно стыкуются гранями (толщина магнита порядка миллиметра), что заметно уменьшает громоздкость: датчик как будто бы просто приклеен к раме.

. тоже не очень эстетично, но зато — спина
image

Софт

Особенность текущей версии кода в том, что она осталась в наследство от попыток сделать автономный метеодатчик. Поэтому здесь вы можете во всей красе наблюдать энергосберегающую библиотеку, а при желании — попробовать запитать от датчик от аккумуляторов. Нужно ему не менее 5В, при этом аккумуляторов типа 14500 емкостью 900 или 1000 китайских мАч хватает примерно на неделю непрерывной работы.

Обратите внимание: одного аккумулятора 14500 мало, поэтому нужно два. А два — это суммарно 7.4В по характеристикам на борту аккумуляторов (и около 8.4В сразу после полной зарядки), поэтому нужно подключать к пину RAW Arduino, чтобы ее не убить. И датчик DHT21, соответственно только к пину VCC Arduino или к питающему цифровому пину.

Так как используемая энергосберегающая библиотека усыпляет контроллер не более чем на 8 секунд, то ее вызов живет в цикле, который обеспечивает около получаса не совсем здорового, но все же сна.

В том же цикле мигает встроенный светодиод-индикатор Arduino. При работе от аккумуляторов это позволяло быстро и просто понять жив контроллер, или уже пора перезаряжаться. Сейчас это просто индикатор активности.

В результате показания датчика передаются в центральный контроллер с интервалом в полчаса. Такой интервал выбран сразу по нескольким причинам: максимальная экономия батареек (когда это было актуально) при более-менее достоверных данных и экономия ресурсов центрального контроллера, у которого и другие дела есть, кроме как постить погоду в интернет.

Для передачи показаний я использую, так сказать, проприетарный протокол, работающий поверх RC-Switch. Выглядит он следующим образом: датчик передает числа вида 161HSXXX, где H — признак влажности, S — знак температуры, XXX — значение климатического параметра с точностью до десятых, умноженное на 10.

Если H = 1, контроллер считает, что переданы показания влажности. Если H = 0, контроллер думает, что получил температуру. Если S = 0 температура считается положительной, если S = 1, то — отрицательной.

Оба параметра передаются метеодатчиком с небольшим интервалом, чтобы гарантированно обеспечить время на обработку на стороне центрального контроллера, который затем оформляет все виде HTTP POST-запроса для передачи в интернет. Хранение и визуализация параметров осуществляется с помощью "Народного мониторинга". Вы, разумеется, можете выбрать любой другой подходящий ресурс или собственный сервис, но тогда не забудьте исправить код центрального контроллера или же свой сервис для получения данных в существующем формате.

Не забудьте, что для компилляции этого кода вам потребуются три нестандартные библиотеки:

1. DHT22 для датчика.
2. LowPower для энергосберегающего режима.
3. RC-Switch для передачи показаний.

Скетч беспроводного метеодатчика
// 23.11.2013 - питание передатчика и датчика от цифровых пинов, библиотека сна Low Power

#include <LowPower.h> // https://github.com/rocketscream/Low-Power
#include <DHT22.h> // для датчика https://github.com/nethoncho/Arduino-DHT22
#include <RCSwitch.h> //   http://code.google.com/p/rc-switch/



// Необходимо подключить резистор 4.7К между VCC и пином Out DHT22

#define DHT22_PIN 5 // DHT21 подключается к цифровому пину 5 Arduino

// Создаем объект DHT22
DHT22 myDHT22(DHT22_PIN);

#define txPIN 6 // пин передатчика
#define sensorPower 7 // питание датчика
#define txPower 8 // питание передатчика

// Создаем объект RCSwitch
RCSwitch meteoSwitch = RCSwitch();

byte param = 0; // тип данных (температура/влажность)
unsigned long myData; // данные к отправке


void setup()
{
pinMode(sensorPower, OUTPUT); // инициализация пина питания датчика 
pinMode(txPower, OUTPUT); // инициализация пина питания передатчика
meteoSwitch.enableTransmit(txPIN); // инициализация передатчика
meteoSwitch.disableReceive();
getWeather(); // отправка погоды на старте, чтобы сразу понять работает датчик, или нет
pinMode(13, OUTPUT); // инициализация пина со встроенным светодиодом Arduino
}

// ПОЛУЧЕНИЕ И ОТПРАВКА ПОГОДЫ
void getWeather()

{
digitalWrite(sensorPower, HIGH); // включаем датчик
digitalWrite(txPower, HIGH); // включаем передатчик

delay(3000); // пауза для инициализации датчика
  
  DHT22_ERROR_t errorCode; // читаем данные и получаем код ошибки
  errorCode = myDHT22.readData();

  if (errorCode == 0) { // если ошибок нет

// сначала отправляем температуру

      	if (myDHT22.getTemperatureCInt()>30000) {
	    myData = 16101000 + abs((myDHT22.getTemperatureCInt()-32768));} // температура = код датчика + признак температуры + знак температуры + температура
        else {
            myData = 16100000 + myDHT22.getTemperatureCInt();} // температура = код датчика + признак температуры + знак температуры + температура 

	    meteoSwitch.send(myData, 24); // отправляем температуру
	    meteoSwitch.send(myData, 24); // отправляем температуру (дубль)
            
            delay(1000);

// теперь отправляем влажность

            myData = 16110000 + myDHT22.getHumidityInt(); // влажность = код датчика + признак влажности + влажность
            meteoSwitch.send(myData, 24); // отправляем влажность
            meteoSwitch.send(myData, 24); // отправляем влажность
            lightsOn();
  }
digitalWrite(sensorPower, LOW); // выключаем датчик
digitalWrite(txPower, LOW); // выключаем передатчик
}
  
void loop ()
{ 

for (byte i=0;i<=225;i++){
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); // уходим спать
lightsOn(); // мигаем при каждом пробуждении
}
getWeather(); // отправляем погоду после сна

}

void lightsOn() {
  
    digitalWrite(13, HIGH); // мигаем светодиодом
    delay(500);
    digitalWrite(13, LOW);
}




Заключительное слово

Самая большая проблема после энергоэффективности — надежность радиоканала. То ли я что-то не так делаю, то ли просто дома какая-то удивительно плохая обстановка с помехами, но датчик более-менее заработал на расстоянии в 5-6 метров от контроллера только если к обычному передатчику была прикручена немаленькая телескопическая антенна, или если я использовал более дорогой передатчик.

Еще одна особенность в том, что мой экземпляр DHT21 фактически перестает измерять влажность при ее высоких значениях. В какой-то момент его просто клинит на 99.9%, и пока влажность не уменьшится до некоторого порога, значение не меняется.

И раз уж это ко мне привязалось, то по поводу потребяемого Arduino тока есть масса текстов в интернете. Отдельным личностям удавалось снижать потребление до единиц микроампер, но это, в основном, на «чистых» контроллерах безо всяких там встроенных регуляторов напряжений, светодиодов и проч., и проч. Вот, например.

И, снова, если я где-то ошибся — говорите, буду исправлять.
Поделиться публикацией

Комментарии 33

    0
    С этой тенденцией «умный дом» мне скоро будет стыдно за свой IQ перед ним :)
    Автору спасибо!
      0
      Интересно все-же сколько реальное потребление в миллимперах.

      Сам тоже собрал для интереса bmp085 (температура и давление) + Arduino Micro + nrf24 пердающее данные на PI, при этом решил сэкономить на спичках — не греть линейный регулятор (он вроде почти делитель на резисторе), а вставил UBEC от модели, но в итоге запитал временно от USB встроенного в кабель-модем на окне :)
        0
        я попробую собраться с силами, чтобы снять все это хозяйство целиком и сделать замер. Если соберусь — до конца недели сообщу, а если не соберусь — значит, не сообщу.
          +1
          пердающее данные на PI,

          Блин, у меня слишком хорошее воображение.
          +2
          Сколько раз хотел повесить термометр за окно, столько раз и бил себя по рукам.
          Этот термометр будет показывать правильно температуру только летом под утро. Ну или в очень ветренную, пасмурную погоду, иначе тепло от дома, тепло от солнца… Температура не на уровне земли, а сильно выше, дом может закрывать ветер…

          При «неудачном» расположении дома получить зимой на окне -5, а на выходе из подъезда -25 вполне реально.
            0
            Совершенно верно. Уже больше года работает электронный термометр за окном. Показывает как на душу положит.
            Опытным путем вывел дизайн более-менее идеального варианта: датчики должны быть в неком ветро-солнце-осадко-защищенном колоколе (пластиковая бутылка со срезанным дном?) и подвешены над землей на расстоянии метров 3-5 от отапливаемых построек (на ближестоящем дереве?).
              +1
              (на ближестоящем дереве?)
              Или на внешней стороне неутеплённого балкона.
                0
                Недостаточная удаленность: все равно поднимаются тепловые потоки от нижних этажей/подвалов и т.д. Они идут вверх вдоль стен и балконов.
                Хотя, конечно, это еще зависит от архитектуры самого дома.
              0
              Справедливое замечание, но я уже говорил, что мной больше движет любопытство, чем стремление сделать идеальную систему. Да и дом расположен более-менее удачно. Восточная сторона, солнце в полдень уже скрывается (если вообще есть).

              В целом с учетом времени, когда я смотрю на датчик, его мнение вполне совпадает с ощущениями при выходе из дома (или с тем, что уже творится на улице, если смотрю не из дома). А часто он даже более адекватен, чем погода по Яндексу, что меня также вполне устраивает.

              Так что в данном случае все же сработал принцип «лучше сделать и пожалеть, чем не сделать и пожалеть». Только жалеть ни о чем не пришлось: и развлечение и какие-никакие, а навыки. И плюс еще масса полезной информации и советов в комментариях.
                +1
                Наверное все видели в солнечную погоду тонкую прослойку воздуха, окружающую корпус автомобиля, стоящего под лучами Солнца.
                У здания примерно также. Поэтому, желательно отвести датчик за пределы этого восходящего потока.

                Если необходимо измерить температуру более-менее точно в черте города, и есть доступ ко всем сторонам здания (например, частный дом), то можно поступить так:
                На четыре стороны здания вешаются по датчику температуры. Контроллер выбирает наименьшее из этих показаний и показывает его на индикаторе. При этом голова уже не болит, как закрыть датчик от солнечных лучей.
                Сейчас в продаже уже есть индикаторы, показывающие температуру от четырех радиодатчиков температуры, но в этом случае необходимо самому определять показания с наименьшим значением.
                Недостатком решения является цена 4-х датчиков и их монтаж, но зато показывается практически правильная температура.

                В идеале можно скооперироваться и сделать четыре датчика на каждый большой дом, а в квартире установить только приемники сигнала.
                Вариантов много. Это как в анекдоте: одни люди, определяют температуру через интернет, другие по радио/телевизору, третьи по термометру на окне, а четвертые при выходе на улицу.
                  0
                  Я вот сейчас придумал хорошее оправдание. Что важно знать человеку о температуре на улице? Именно идеальную сферическую температуру в вакууме, или как она будет ощущаться в целом?

                  Для меня актуальнее второе. При таком раскладе датчик, закрепленный совершенно безграмотным способом, может оказаться актуальнее. А может, конечно, и не оказаться. Минус оправдания, конечно, и в том, что это не отменяет необходимости других датчиков — в тени, например.
                    +1
                    В данный момент у меня так (ну, практически так) и сделано. Два датчика на улице. С северной и восточной стороны здания. Один — вынесен на метр от балкона (тонкая пластиковая трубка), сам датчик «замурован» в кусок пенопласта, сверху обёрнут фольгой. Второй, соответственно, тоже. «В зачёт» идёт минимальная температура от датчиков.
                    Но даже летом, когда вечером солнце попадает прямо на датчик, находящийся на северной стороне, разница показаний составляет около 2-3°С. Вполне приемлимо, на мой взгляд.
                  0
                  А каково распределение потребления между сном и активной работой?
                  Скажем, сколько он расходует за 5 минут сна по сравнению с секундами измерения и передачи?
                  (просто если эта доля существенна — может, имеет смысл посмотреть на MSP430?)
                    0
                    С учетом того, что даже в лучшем случае время автономной работы оказалось слишком мало, изучение долей особой роли для меня не играет. Быстрее и проще оказалось использовать внешнее питание.

                    Что касается MSP430, то здесь меня останавливает пара моментов. Судя по виду (размеров почему-то не нашел ни на сайте TI, ни в руководстве пользователя платы) она заметно больше, чем Arduino Pro Mini, что не очень хорошо для относительно компактных датчиков. Второе — совершенно другой контроллер, который, опять же, нужно изучать при не слишком большом смысле этого процесса. Я же хочу все и сразу, и чем быстрее — тем лучше. Третье — в итоге получится система из разнородных компонентов, а это обычно выливается в большие усилия по поддержке и модернизации (не сказать, что критично, но все-таки). Ну и цена платы (без учета доставки) в 3 раза выше, чем у Arduino Pro Mini.
                      0
                      MSP430 имеет помимо прочих среду программирования Energia. При этом все основные библиотеки портированы, так что переход с ардуинки на MSP430 не будет сильно сложным.

                    0
                    режимы сна по версии easyelectroniks
                    А вот здесь АВР изучают, пока не реанимировал свой usbasp.
                    Там ещё была статья про энерго сбережение метеодатчика, о том как его на автономное питание от фотоэлемента + ионистор переводили, но я не могу сходу найти.
                      0
                      Купил в икее ребенку детскую кухню, там была игрушечная варочная панель, так вот в нее нужно было запихнуть 6 батареек АА, и их хватало буквально на 1-2 месяца, при условии, что включали ее всего несколько раз.
                      Я подумал, что так дело не пойдет, и я впервые познакомился с AVR. Большое спасибо DIHALT, за его труд. И конкретно за эту статью, я использовал или atiny13 или atmega8, точно не помню, но в режиме Power-down она действительно потребляет мкА. Так что ребенку 3 батареек хватает почти на год.
                      Про термометр еще тут.
                      +2
                      Как правило, датчики измеряют один, максимум два параметра: давление/температура или влажность/температура.
                      Недавно появился интересный вариант BME280 с тремя параметрами — температура/влажность/давление. Когда станет доступен, надо будет попробовать в домашней метеостанции.
                        0
                        У меня проблема решилась немного другим образом — сенсор BMP085 в комнатном контроллере, который измеряет давление и заодно — температуру в помещении.

                        Т.е. в итоге у меня на руках четыре параметра: температура снаружи, температура внутри, влажность снаружи и давление. Хотя, конечно, датчики типа все-в-одном интересны.
                        +1
                        В принципе — каждый термометр показывает температуру места, в котором он установлен, поэтому крепить термодатчик под козырьком подоконника — плохая идея. Козырёк нагревается, из квартиры через неплотности тепло вытягивает. Поэтому я для своих контроллеров, показания с которых также выводятся на narodmon.ru, использую маленькую пластиковую распредкоробку и «выкидываю» подальше от стен, например на металлическом штыре сантиметров 50 длиной.
                          0
                          Можно подложить под коробку теплоизоляции кусок. А мне нравится вот эта схема, потребление намного ниже. Придет ардуина да датчик, попробую собрать. homes-smart.ru/index.php/oborudovanie/bez-provodov-433-315mgts/besprovodnoj-datchik-temperatury-i-vlazhnosti-na-baze-radiomodulej-433-315
                            0
                            А как убрать потоки утечек тепла с этажей под вами? Датчик дополнительно надо завернуть в фольгу, чтобы исключить нагрев за счет излучения. А фольгу прийдется покрыть прозрачным и термостойким лаком, чтобы фольга на «природных условиях» не попортилась. Либо изначально использовать гильзу из нержавейки которую периодически полировать.
                              0
                              Датчик в фольгу, все вместе в коробку, коробку на теплоизоляцию и все на стенку)
                                0
                                Внутри в коробке передача тепла излучением неактуальна, там тепло передается преимущественно теплопроводностью, если в фольгу — так всю коробочку снаружи…
                              0
                              Являюсь автором данной статьи на варианте Attiny13 / 85. Так уж получилось, что эту статью я упустил и пропустил активное обсуждение.
                              Удивило, что данный вариант долго не живет на батарейках, возможно необходимо как-то оптимизировать схему, например отказаться от светодиода, подавать питание на DHT на время измерения, проверить все используя мультиметр, промониторив ток…
                              В данный момент мой вариант на Attiny работает на батарейке CR2032 (3 вольта) уже месяц. Не хватает питания для пробивания большого расстояния и необходимо подбирать резистор у ds18b20, но все же работает. В теории на 3 батарейках ААА передатчик проработает очень долго и будет пробивать нормально бОльшее растояние.
                                0
                                Честно говоря, там много чего можно оптимизировать. Но так получилось, что для меня важнее было получить готовое устройство. Возможно, не слишком совершенное, зато рабочее и достаточно быстро.

                                В оптимизации я вообще не слишком хорош.
                              0
                              «батарейки» хаха… так это же аккумуляторы, литиевые. Когда заряжены полностью у них не 3.7В а 4.2В, у парочки уже будет 8.4В
                                0
                                Меня это вполне устраивало — передатчик работает в диапазоне от 3В до 12В, контроллер — от 5В до 12В, а датчик температуры/влажности питается от контроллера. Ну и для передатчика чем больше напряжение — тем лушче: увеличивается дальность действия.
                                  0
                                  Да просто в статье называть это «батарейкой»… в крайнем случае «элементом питания».
                                  Ну и сам расчет напряжения вводит в заблуждение людей, ладно те кто знают особенности литиевых аккумуляторов, а если нет? Так и будут считать по 3.7В… а в итоге их ждет сюрприз.
                                    0
                                    Насколько мне известно, других «элементов питания» типоразмером 14500 не существует. А что касается 3.7В и сюрпризов, так на моей же фотографии видно, что на элементе черным по желтому написано 3.7В.

                                    Напишу 4.2 — тут же появятся те, кто спросит, а почему вот так, а не как на этикетке. Везде, к сожалению, свои плюсы и минусы.

                                    ps. я сейчас поменяю батарейку на аккумулятор.
                                      0
                                      А вот чем лучше питать такой датчик, в голову не идет( NiMh запихать и за окно все разом вывесить или как у автора датчик отдельно выносить и питать изнутри?
                                      0
                                      14500 — это размер батарейки AA.

                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                            Самое читаемое