Метеостанция на arduino с беспроводным датчиком температуры

Погода в доме: беспроводной метеодатчик из Arduino Pro Mini

Метеостанция на arduino с беспроводным датчиком температуры

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

Так что я решил попробовать, и закрыть этот вопрос раз и навсегда. Тем более, что тот самый рассказ стал призовым, и позволил мне купить практические все необходимое, чтобы решить задачу. В некотором смысле это спасибо MySKU и всем, кому понравились игрушки из Arduino.

ЖЕЛЕЗКИ

Arduino Pro Mini

Плата совершенно крошечная. Я даже не ожидал, что настолько. Но при этом на ней — взрослый чип ATmega328, так что по производительности она не уступает той же Uno. Это версия 5В, питается или от 5В стабилизированного по любому пину VCC или же от 5 — 12В по пину RAW (если верить Arduino.cc). По-моему, очень удобно.

Комплект передатчик-приемник ASK/OOK 433 МГц

Это уже проверенные (не в этом магазине, а вообще) простейшие приемники и передатчики с амплитудной модуляцией. У них нет никаких средств коррекции ошибок и контроля передачи, зато они крайне дешевы и без проблем работают с нужными мне устройствами (розетками, выключателями и с самими собой).

Живые фото можно посмотреть в предыдущем тексте про Arduino.

Преобразователь Serial — USB

Очень простой, недорогой и универсальный — есть питание 5В и 3.3В на выбор. Нужен, чтобы загружать код в Arduino Pro Mini, так как у платы нет своего USB. Шлейф, который вы видите на фото, входит в комплект. И хотя ничего необычного в нем нет — обычные четыре провода, все равно приятно.

Датчик влажности и температуры DHT21

Заказывал часы для жены, но DX ошибся с заказом, ошибку признал и вернул стоимость на счет в магазине. Так что вместо часов жене получился датчик температуры мне любимому.

Этот датчик выбран за разумную цену (вообще, а не в DX), широкий диапазон измерений и точность до десятых.

Кроме того, в отзывах на DX писали, что он полностью совместим с DHT22, для которого есть готовые библиотеки для Arduino.

Пара слов о продавце на eBay

С одной стороны, в магазине приятные цены, все выслали достаточно быстро, и почти все пришло в рабочем состоянии. Исключение — один приемник, который не включился. Возможно, он настроен на другую частоту и поэтому я не увидел сигнала на выходе.

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

При этом продавец предлагает оплатить трек-номер на отдельный эккаунт PayPal. Итог: сначала мне больше недели номер вообще не давали. Потом, когда я пообещал диспут, выдали с интервалом в день сразу два трек-номера. Один был явно левым, поскольку дата приема посылки по нему была раньше даты заказа.

Другой казался нормальным ровно до импорта в России. Как только появился индекс места назначения стало понятно, что это посылка не моя, а какого-то счастливчика из Обнинска. Ну а потом уже пришла моя посылка — без каких-либо трек-номеров.

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

ФИЗИЧЕСКИЙ УРОВЕНЬ

За громким заголовком суровая правда: дома на боевом дежурстве живет небольшая коробочка с Arduino Uno, подключенная к сети через Ethernet-шилд. В этой коробочке также есть копия упомянутого выше ASK/OOK приемника для получения сигналов с домашних датчиков (протечки, открытия дверей и т.п.). Это определило некое подобие клиент-серверной модели для подключения метеодатчика. То есть, метеодатчик на базе Arduino Pro Mini отправляет данные температуры и влажности коробке, а она, в свою очередь, отправляет их в интернет. Отвечаю на очевидные вопросы ) Q: Почему примитивные приемники, а не, скажем, рекомендованные ранее чудесные nRF24L01, которым не страшны помехи, которые легко объединяются в сеть и вообще идеальны для такого применения? A: Во-первых, кажется, я просто боюсь, что потрачу слишком много времени на усвоение методики работы с nRF24L01. Во-вторых, у меня (то есть, у Arduino Uno в коробке) заканчивается все — пины, память. А нужно подключить еще несколько устройств: пищалку, датчик движения. Между тем, в коробке уже есть все, что нужно для получения метеоданных — и приемник, и библиотека RC-Switch, которая вполне подходит не только для управления розетками, но для передачи нескольких символов. Почему бы не воспользоваться уже имеющимися ресурсами? Q: Почему тогда не Virtual Wire? A: Ответ, в общем, выше — еще одна библиотека, еще меньше памяти. С практической точки зрения такой радиоканал можно назвать слабым местом системы. Но, если задуматься, вся моя система — сплошное слабое место, так сказать, by design. Q: почему бы не подключить Arduino Pro Mini к сети напрямую? A: Дело в том, что для минимального количества проводов я планирую поставить датчик на окно, а рядом нет ни сетевых, ни электрических розеток. Это раз. И два: Wi-Fi-шилд для Arduino или комбинация из электрической розетки с Ethernet и обычного Ethernet-шилда Arduino стоят совершенно неразумных для решения этой задачи денег. Q: Почему не меряем атмосферное давление? A: Потому что датчик сразу не заказал, и в итоге он еще не приехал. А попробовать очень хотелось. Q: У тебя же есть метеостанция с беспроводным датчиком. Почему не используешь его, а городишь огород на пустом месте? A: Честно говоря, огород для меня проще, чем писать код для обработки сигнала. Потом, может быть, попробую. А сейчас так гораздо быстрее.

ЛОГИЧЕСКИЙ УРОВЕНЬ

Для логической основы радиоканала я решил воспользоваться возможностями библиотеки RC-Switch. Она предназначена для управления беспроводными розетками, но методика управления позволяет использовать ее и для передачи данных. Медленно, не очень надежно, но — позволяет. Суть в том, что команда розетки — всего лишь цифровой код.

При этом RC-Switch совершенно безразлично, какой именно код передавать. Главное — не больше 24 бит, то есть не больше 16777216.

В итоге мой протокол передачи метеоданных выглядит следующим образом: Первые три цифры — идентификатор датчика Четвертая цифра — тип данных (1 — влажность, 0 — температура) Пятая цифра — знак температуры (1 — отрицательная, 0 — положительная) Остальные цифры — величина Например, чтобы передать температуру 23.

5С нужно отправить через RC-Switch код 16100235. Плюсы примитивного «кодирования»: достаточно всего одного действия арифметики, чтобы выделить передаваемую величину. Минусы — один «пакет» для одного значения.

ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ

Arduino Pro Mini поставляется в комплекте с контактными планками. При желании их можно напаять на плату. А при необходимости сделать максимально компактную конструкцию провода можно паять прямо к контактным площадкам платы. Я выбрал первый вариант — мне так проще, да и плату, если что, легче использовать повторно. После беглого ознакомления с датчиком температуры и влажности DHT21 выяснилось, что напрямую подключать его к Arduino не очень правильно. Оказывается, правильная схема включает «подтягивающий» резистор 4.7 кОм между плюсом и линией данных. Мне повезло — нужный резистор выкусил из ненужного беспроводного звонка. Для питания прототипа я воспользовался ненужной «аварийной» зарядкой для мобильного телефона. Это такой цилиндрик: с одной стороны вставляем батарейку AA 1.5В, а с другой получаем 5.9В (без нагрузки). Для страховки я подключил выход зарядки к входу RAW Arduino Pro Mini, чтобы все компоненты (плата и датчик) получали стабилизированные 5В. По крайней мере, из описания платы можно заключить, что RAW принимает от 5В до 12В, при этом на контактах VCC — стабилизированные 5В. Дальше все просто. Подключаем передатчик, датчик и пишем простой код. В моем случае для кода потребовались три библиотеки: RC-Switch (передача данных), SimpleTimer (отсчет интервалов для передачи) и DHT22 (получение данных с датчика температуры и влажности). А вот и прототип:Схема работы: раз в пять минут опрашиваем датчик и попеременно отправляем температуру и влажность. За одну сессию можно передать только один параметр, поэтому «большая сестра» получает их по очереди, а потом скопом отправляет в Open Weather Map. В результате данные в интернете обновляются раз в десять минут. Почему такой интервал? Потому что, во-первых, каждая сессия — это занятый радиоканал (а у меня есть и другие радиодатчики, требующие внимания) и отнятое процессорное время. Так что это попытка минимизировать издержки. Во-вторых, я не такой уж и погодный маньяк, чтобы обновлять погоду каждую секунду. И третье. Интервал в пять минут, по-моему, более-менее рационален с точки зрения энергетики, так как я планирую питать метеодатчик от батареек. Для записи кода в плату соединяем Arduino Pro Mini с компьютером через преобразователь Serial — USB и не забываем «перекрестить» линии TX/RX, то есть: RX подключаем к TX, и наоборот — TX к RX. Для питания берем пин 5В, потому что эта версия Arduino — 5В.Секрет: если заливка программы не удается (ошибка типа avrdude: stk500_getsync(): not in sync: resp=0x00), помогает такая процедура: 1) Нажимаем кнопку загрузки программы в среде разработки Arduino 2) Ждем пока загорится красный светодиод на преобразователе Serial — USB 3) Нажимаем кнопку сброса на Arduino Pro Mini Если не получилось — ждем, пока погаснет красный светодиод на преобразователе и повторяем процедуру. Со стороны «большой сестры» нужно только добавить несколько фрагментов кода для получения метеоданных из радиоканала и отправки их в интернет. Для примера — готовый код по ссылке в конце текста, который подходит для использования с Arduino Uno как в монопольном режиме, так и в составе вашего кода (если, разумеется, разобрать исходник на нужные части). Если будете использовать — не забудьте подставить свои IP/MAC, ключ авторизации OpenWeatherMap и координаты метеодатчика. А вот так метеодатчик выглядит почти в финальной (ну или вообще финальной, если нет ничего более постоянного, чем временное) версии:

НА ДЕРЕВНЮ, ДЕДУШКЕ

Итак, метеоданные получили, передали и приняли. Ок. И что делать с этим счастьем? Мне советовали отправлять его в Openweathermap.org, поскольку дело хорошее и вообще. Я проникся и немного изучил вопрос, хотя такое ощущение, что Openweathermap это совершенно не нужно. Так что получилось, скорее, не благодаря, а вопреки.

Спасибо нашему чуваку, который сделал интернет-метеостанцию и рассказал о ней, Wiki за описание базовой аутентификации HTTP и чудесному сервису hurl.it, который имитирует HTTP-запросы и показывает их тело, что важно для кода. Ах да, еще большое спасибо онлайновым сервисам кодирования Base64.

Иными словами, документация на Openweathemap upload API говорит, что нужна аутентификация HTTP Basic и описывает имена и форматы полей данных, но не дает практических примеров, что нужно таким безмозглым, как я. Как все получилось. Сначала я зарегистрировался на Openweathermap.org.

Потом выяснил, что для HTTP Basic нужна строка авторизации, состоящая из имени и пароля, разделенных двоеточием и кодированных Base64. Так что взял логин и пароль, пошел в онлайновый кодер и на выходе получил нужную строчку.

Например, для имени test и пароля test она выглядит так: dGVzdDp0ZXN0Как результат, строка авторизации Openweathermap выглядит так: Authorization: Basic dGVzdDp0ZXN0 Берем ее и составляем тестовый запрос в Openweathermap и смотрим тело запроса:Обратите внимание, что если все правильно, то «тест» отправляет данные в Openweathermap.

Я эту проблему решил просто: подставлял актуальную информацию о погоде из своего региона. Полученный таким образом текст запроса можно запросто использовать в коде Arduino: строчки печатаются в HTTP-клиент. Плюсы: в целом все довольно просто. Минусы: у Openweathermap отсутствуют адекватные (с моей точки зрения, разумеется) методы визуализации данных. Доступны только запросы к БД с выдачей результатов для визуализации «на стороне».

КАК ЭТО РАБОТАЕТ

Все просто. Метеодатчик получает температуру и влажность от DHT21, и отправляет их Arduino Uno, подключенной к интернету. Оттуда данные уходят на Openweathermap (чего добру пропадать?), где их можно посмотреть в онлайне и где они, вероятно, используются для прогноза погоды.

Желающим понаблюдать за местной (Россия, Москва, СВАО, Лианозово) погодой: мой метеодатчик на Openweathermap.org.

А ТЕПЕРЬ О ПРОБЛЕМАХ

Так как руки у меня растут все-таки не совсем из правильного места, то я закономерно наступил на несколько художественным образом разложенных грабель. Во-первых, несмотря на то, что авторы библиотеки DHT22 заверяли, что они решили проблему с отрицательными температурами, мне это не помогло.

При минусе библиотека начала выдавать совершенно нереальные показания, что в обсуждениях обосновывали ошибкой переполнения. Т.е. вместо -4.5С мне показывали 32763,5. Я не стал переписывать библиотеку (см. выше про руки), а просто стал вычитать полученное значение из 32768 (максимальное значение для заданного типа переменной).

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

Чтение этих ваших интернетов догадки подтвердило: диапазон 433 МГц — довольно коварная в плане распространения волн штука. Поэтому антенну лучше делать хотя бы минимально похожей на антенну, а не изгибать проводочки под причудливыми углами, лишь бы в корпус поместилось. В итоге я заменил все проводки на штыри из одножильного медного провода (просто купил пару метров (с запасом, да) 2х1.

5 электрического кабеля, и распотрошил его на жилы. Длина штырей как и раньше — около 17.3 см, т.е. четверть волны. Все ориентированы вертикально. Результат — теперь не только метеодатчик работает на балконе, но и другие беспроводные датчики в квартире работают гораздо более уверенно. Третья очевидная проблема — совершенно зверское потребление энергии.

Двух батареек 14500 по 1000 мАч хватает где-то на пару суток. Т.е., по грубым прикидкам метеодатчик кушает около 20 мА. Говорят, что одна из наиболее прожорливых частей — встроенный стабилизатор напряжения, но от него я избавиться как раз и не могу, потому что пока не вижу, как в батарейный отсек на две АА можно разместить автономный источник 5В. Поэтому рассматриваю две альтернативы.

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

ССЫЛКИ

Библиотека RC-Switch
Библиотека DHT22
Библиотека SimpleTimer
Сервис для тест HTTP-запросов hurl.it
Сервис кодирования Base64
Код метеодатчика
Код принимающей стороны Планирую купить +103 Добавить в избранное Обзор понравился +113 +198

Создаем беспроводной термометр на Arduino

Метеостанция на arduino с беспроводным датчиком температуры

Узнайте, как использовать RF модуль 433 МГц совместно с ATMega328P-PU. В данной статье мы соберем схему из датчика DHT11 и радиочастотного передатчика. А также соберем приемное устройство с радиоприемником 433 МГц и LCD дисплеем.

Что нам потребуется

Введение

В данной статье я покажу вам, как собрать устройство, которое измеряет температуру и относительную влажность воздуха и посылает измеренные значения с помощью стандартного радиочастотного модуля 433 МГц. Датчик температуры и влажности, используемый в устройстве, – это DHT11.

Существует множество способов передачи небольшого объема данных с помощью Arduino или контроллеров ATMega. Один из них использует уже готовую библиотеку, подобную RCSwitch, Radiohead или VirtualWire.

Кроме того, можно отправить необработанные данные с помощью встроенного в микроконтроллер модуля UART. Но использовать встроенный модуль UART не рекомендуется, так как приемник будет собирать и все помехи, и микроконтроллер будет работать не так, как предполагалось.

В данной статье для передачи и приема данных я использую библиотеку VirtualWire. Эта библиотека работает с Arduino IDE 1.6.2 и 1.6.5.

Модуль передатчика 433 МГц, когда не передает данные, всё равно излучает радиочастотные колебания и передает шум. Он также может создавать помехи другим радиочастотным устройствам. Чтобы не допустить этого, я включаю его, когда необходимо передать данные, и выключаю его, когда передача закончена.

Аппаратная часть

Нам необходимы две структурные схемы. Одна для передающего устройства, вторая для приемного.

Передатчик

Нам необходимы:

  • способ прошивки микроконтроллера → ISP;
  • датчик для измерения температуры и влажности → DHT11;
  • микроконтроллер для обработки данных → ATMega32p;
  • способ беспроводной передачи данных → радиочастотный модуль 433 МГц.

Приемник

Нам необходимы:

  • способ приема радиосигнала → радиочастотный модуль 433 МГц;
  • способ обработки принятых данных → Arduino Mega;
  • способ отображения температуры и влажности → 16×2 LCD.

Принципиальные схемы

Передатчик

Передающая часть беспроводного термометра на ATMega328p (для увеличения масштаба можно кликнуть по картинке правой кнопкой мыши и выбрать «Открыть ссылку/изображение в новой вкладке/новом окне»)

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

Приемник

Приемная часть беспроводного термометра на Arduino Mega (для увеличения масштаба можно кликнуть по картинке правой кнопкой мыши и выбрать «Открыть ссылку/изображение в новой вкладке/новом окне»)

Пожалуйста, обратите внимание, что приемник построен на базе платы Arduino Mega, которая не изображена на схеме. Для подключения платы Arduino Mega соедините с ней радиочастотный модуль и LCD дисплей согласно метка на схеме.

Перечень элементов

Передатчик

Перечень элементов передающей части беспроводного термометра на ATMega328p (для увеличения масштаба можно кликнуть по картинке правой кнопкой мыши и выбрать «Открыть ссылку/изображение в новой вкладке/новом окне»)

Приемник

Перечень элементов приемной части беспроводного термометра на Arduino Mega (для увеличения масштаба можно кликнуть по картинке правой кнопкой мыши и выбрать «Открыть ссылку/изображение в новой вкладке/новом окне»)

Программа

Программа передатчика

Сперва рассмотрим программу передающей части:

// Подключаем необходимые библиотеки #include #include // Определение #define dhtPin 4 #define dhtType DHT11 #define txPowerPin 8 // Использование библиотеки DHT DHT dht(dhtPin, dhtType); // Переменные char msg0[3]; char msg1[3]; int tem = 0; int hum = 0; // Функция первоначальной настройки – выполняется только один раз при включении void setup() { pinMode(txPowerPin, OUTPUT); pinMode(txPowerPin, LOW); vw_setup(4800); // Скорость соединения VirtualWire vw_set_tx_pin(9); // Вывод передачи VirtualWire } // Функция цикла – выполняется всегда void loop() { digitalWrite(txPowerPin, HIGH); hum = dht.readHumidity(); // Переменная хранит влажность tem = dht.readTemperature(); // Переменная хранит температуру itoa(hum, msg1, 10); // Преобразование влажности в массив char itoa(tem, msg0, 10); // Преобразование температуры в массив char strcat(msg0, msg1); // Сложение/объединение двух массивов vw_send((uint8_t *)msg0, strlen(msg0)); // Передача сообщения vw_wait_tx(); // Ждем завершения передачи digitalWrite(txPowerPin, LOW); delay(5000); // Ждем 5 секунд и повторяем всё снова }

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

На приемной стороне данные будут разделены на отдельные символы. Делая это, я ограничиваю себя двумя цифрами градусов. Если датчик находится в среде с температурой менее 10°C, я буду получать на дисплее символы мусора.

Например, если температура составляет 20°C, а влажность – 45%, то будет передаваться сообщение 2045, и всё хорошо. Если температура равна 9°C, а влажность – 78%, то передастся сообщение 978x, где «x» – случайный символ.

Поэтому, если вы будете собирать данный беспроводной термометр, я советую вам изменить программу для передачи правильных данных, когда температура будет меньше 10°C.

Программа приемника

// Подключаем необходимые библиотеки #include #include // Определение подключение LCD #define RS 9 #define E 10 #define D4 5 #define D5 6 #define D6 7 #define D7 8 LiquidCrystal lcd(RS, E, D4, D5, D6, D7); // Отрисовка символа градусов byte degreesymbol[8] = { B01100, B10010, B10010, B01100, B00000, B00000, B00000, B00000 }; // Переменные int tem = 0; int i; // Функция первоначальной настройки – выполняется только один раз при включении void setup() { lcd.begin(16,2); // Инициализация LCD lcd.createChar(1, degreesymbol); // Создание символа градусов в месте 1 Serial.begin(9600); // Для отладки vw_setup(4800); // Скорость соединения VirtualWire vw_rx_start(); // Готовность для приема vw_set_rx_pin(2); // Вывод приема VirtualWiore lcd.clear(); // Очистить LCD } // Функция цикла – выполняется всегда void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; // Переменная для хранения принятых данных uint8_t buflen = VW_MAX_MESSAGE_LEN; // Переменная для хранения длины принятых данных lcd.setCursor(0,0); lcd.print(“Temp: “); if (vw_get_message(buf, &buflen)) // Если данные приняты { for (i=0;i

Погодная станция на Arduino

Метеостанция на arduino с беспроводным датчиком температуры

2018-06-18 в 15:08

Данная погодная станция обеспечивает постоянное получение сведений о состоянии погодных условий. Проект основан на плате микроконтроллеров Arduino, а данные выводятся на LCD экран.

Ранее был проект вывода данных с датчиков на веб-страницу с помощью W5100.

Небольшой размер “железа” позволяет поместить устройство  в маленьком пластиковом коробе, части которого изготовлены при помощи лазерной резки.

Датчик уровня воды и снега.
Индикатор уровня воды используется для вывода уровня воды в баке во избежании его переполнения.

DHT11 представляет собой комбинированный цифровой датчик температуры и влажности. Датчик обладает отличным качеством, высокой скоростью работы, противоинтерференционной способностью и самое главное – низкой стоимостью.

Фоторезисторы, также известные как светозависимые резисторы (LDR), являются светочувствительными устройствами, наиболее часто используемыми для определения наличия или отсутствия света, или для измерения интенсивности света. В темноте их сопротивление очень велико, но когда датчик LDR подвергается воздействию света, сопротивление резко падает, вплоть до нескольких Ом.

LCD1602 с шиной I2C. Синий потенциометр на ЖК-дисплее I2C 1602 используется только для подсветки.

I2C использует только две линии, Serial DataLine (SDA) и Serial Clock Line (SCL), которые подключаются к резисторам. Типичные напряжения – +5 В или +3,3 В, хотя допускаются системы с другими напряжениями.

DS1302 – часики реального времени.
Часы основаны на интегрированной микросхеме DS1302, внутри которой есть часы / календарь в реальном времени и 31 байт статической ОЗУ. Формат времени можно увидеть как hh/mm/ss, а формат даты – yyyy/mm/dd. Так же можно высчитать день недели.

LM35 – датчик температуры.
LM35 это прецизионный интегральный датчик температуры с широким диапазоном температур, высокой точностью измерения, калиброванным выходом  по напряжению. Именно эти качества определяют популярность датчика.

Инфракрасный приемник и пульт дистанционного управления

Эти два компонента работают вместе: ИК-приемник позволяет получать данные с пульта дистанционного управления. Уже рассказывал как собрать контроллер вытяжки с управлением от пульта телевизора. Данные зависят от того, какую кнопку вы хотите нажать. Были выбраны следующие кнопки для назначения их определенным функциям:

Клавиша 0 – позволяет увидеть время и дату

Клавиша 1- позволяет увидеть данные с датчиков DHT11 и LM35

Клавиша 2- позволяет увидеть в процентах уровень освещенности

Клавиша 3- позволяет увидеть в миллиметрах уровень жидкости

Клавиша “Повтор”- прокручивает все окна с интервалом в 4 секунды Сборка корпуса. Рассмотрев размер устройства, мы продолжили строительство корпуса из плексигласа.

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

Файл исходник – Скачать.

Схема устройства была сделана в программной среде fritzing (скачать здесь).

Разрабатывали код в среде Arduino IDE, использовали все необходимые библиотеки. И вот что у нас получилось:

Это главный экран, который пользователь может видеть, когда мы включаем плату. При включении появляется надпись «Arduino Weather Station». Вы также можете увидеть эту надпись после каждого обращения к AWS.

Экран даты и времени, к которому пользователь может получить доступ, просто нажав кнопку 0 на пульте дистанционного управления. При нажатии экран имеет задержку в 10 секунд, а затем возвращается на главный экран.

Экран, который показывает данные, полученные датчиками DHT11 и LM35 относительно влажности и температуры соответственно. Он “привязан” к кнопке 1 на пульте дистанционного управления, и когда она нажимается, экран имеет задержку в 10 секунд, а затем возвращается на главный экран.

Экран уровень освещенности. Привязан к кнопке 2 на пульте ДУ.

Этот экран показывает уровень жидкости в баке. Он подключен к кнопке 3 на пульте дистанционного управления.

Сама программа станции

Код

LiquidCrystal_I2C lcd(0x27, 16, 2); dht DHT; const int DHT11_PIN = 4; const int waterSensor = 0; int waterValue = 0; int mmwaterValue = 0;
int sensorPin = A3; int luce = 0; int pluce = 0; float tem = 0; long lmVal = 0;
const int irReceiverPin = 3;
IRrecv irrecv(irReceiverPin); decode_results results;

uint8_t RST_PIN = 5; uint8_t SDA_PIN = 6; uint8_t SCL_PIN = 7;
char buf[50];
char day[10];

DS1302 rtc(RST_PIN, SDA_PIN, SCL_PIN);
void print_time()
{
Time t = rtc.time();
memset(day, 0, sizeof(day));
switch (t.day)
{
case 1:
strcpy(day, “Sun”);
break;
case 2:
strcpy(day, “Mon”);
break;
case 3:
strcpy(day, “Tue”);
break;
case 4:
strcpy(day, “Wed”);
break;
case 5:
strcpy(day, “Thu”);
break;
case 6:
strcpy(day, “Fri”);
break;
case 7:
strcpy(day, “Sat”);
break;
}
snprintf(buf, sizeof(buf), “%s %04d-%02d-%02d %02d:%02d:%02d”, day, t.yr, t.mon, t.date, t.hr, t.min, t.sec);
Serial.println(buf);
lcd.setCursor(2, 0);
lcd.print(t.yr);
lcd.print(“-“);
lcd.print(t.mon / 10);
lcd.print(t.mon % 10);
lcd.print(“-“);
lcd.print(t.date / 10);
lcd.print(t.date % 10);
lcd.print(” “);
lcd.print(day);
lcd.setCursor(4, 1);
lcd.print(t.hr);
lcd.print(“:”);
lcd.print(t.min / 10);
lcd.print(t.min % 10);
lcd.print(“:”);
lcd.print(t.sec / 10);
lcd.print(t.sec % 10);
}
void setup() {
Serial.begin(9600);
rtc.write_protect(false);
rtc.halt(false);
irrecv.enableIRIn(); lcd.init(); lcd.backlight(); pinMode(sensorPin, INPUT);
Time t(2017, 12, 03, 10, 15, 00, 1);
rtc.time(t);
}
void loop() {
lcd.setCursor(0, 0);
lcd.print(“A”);
delay(50);
lcd.setCursor(1, 0);
lcd.print(“r”);
delay(50);
lcd.setCursor(2, 0);
lcd.print(“d”);
delay(50);
lcd.setCursor(3, 0);
lcd.print(“u”);
delay(50);
lcd.setCursor(4, 0);
lcd.print(“i”);
delay(50);
lcd.setCursor(5, 0);
lcd.print(“n”);
delay(50);
lcd.setCursor(6, 0);
lcd.print(“o”);
delay(50);
lcd.setCursor(8, 0);
lcd.print(“W”);
delay(50);
lcd.setCursor(9, 0);
lcd.print(“e”);
delay(50);
lcd.setCursor(10, 0);
lcd.print(“a”);
delay(50);
lcd.setCursor(11, 0);
lcd.print(“t”);
delay(50);
lcd.setCursor(12, 0);
lcd.print(“h”);
delay(50);
lcd.setCursor(13, 0);
lcd.print(“e”);
delay(50);
lcd.setCursor(14, 0);
lcd.print(“r”);
delay(50);
lcd.setCursor(4, 1);
lcd.print(“S”);
delay(50);
lcd.setCursor(5, 1);
lcd.print(“t”);
delay(50);
lcd.setCursor(6, 1);
lcd.print(“a”);
delay(50);
lcd.setCursor(7, 1);
lcd.print(“t”);
delay(50);
lcd.setCursor(8, 1);
lcd.print(“i”);
delay(50);
lcd.setCursor(9, 1);
lcd.print(“o”);
delay(50);
lcd.setCursor(10, 1);
lcd.print(“n”);
delay(50);
if (irrecv.decode(&results)) { if (results.value == 0xFF6897) {
lcd.clear(); print_time();
delay(10000); lcd.clear(); delay (200); irrecv.resume(); }
if (results.value == 0xFF30CF) {
lcd.clear(); int chk = DHT.read11(DHT11_PIN);
lcd.setCursor(0, 0);
lcd.print(“Tem:”);
lmVal = analogRead(lmPin);
tem = (lmVal * 0.0048828125 * 100);
lcd.print(tem);
lcd.print(char(223));
lcd.print(“C “);
lcd.setCursor(0, 1);
lcd.print(“Hum:”);
lcd.print(DHT.humidity, 1); lcd.print(” % “);
delay(10000); lcd.clear(); delay(200); irrecv.resume(); }
if (results.value == 0xFF18E7) {
lcd.clear(); lcd.setCursor(4, 0); lcd.print(“Darkness:”);
luce = analogRead(sensorPin); pluce = map(luce, 0, 1023, 0, 100); lcd.setCursor(6, 1); lcd.print(pluce); lcd.print(“%”); delay(10000); lcd.clear(); delay(200); irrecv.resume(); }
if (results.value == 0xFF7A85) {
lcd.clear(); lcd.setCursor(0, 0); lcd.print(“Fluid level(mm):”); int waterValue = analogRead(waterSensor); lcd.setCursor(6, 1); mmwaterValue = map(waterValue, 0, 1023, 0, 40);
lcd.print(mmwaterValue); delay(10000); lcd.clear(); delay(200);
irrecv.resume(); }
if (results.value == 0xFF9867) {
lcd.clear(); print_time();
delay(4000); lcd.clear(); delay (200); int chk = DHT.read11(DHT11_PIN);
lcd.setCursor(0, 0);
lcd.print(“Tem:”);
lmVal = analogRead(lmPin);
tem = (lmVal * 0.0048828125 * 100);
lcd.print(tem);
lcd.print(char(223));
lcd.print(“C “);
lcd.setCursor(0, 1);
lcd.print(“Hum:”);
lcd.print(DHT.humidity, 1); lcd.print(” % “);
delay(4000); lcd.clear(); delay(200); lcd.setCursor(4, 0); lcd.print(“Darkness:”);
luce = analogRead(sensorPin); pluce = map(luce, 0, 1023, 0, 100); lcd.setCursor(6, 1); lcd.print(pluce); lcd.print(“%”); delay(4000); lcd.clear(); delay(200); lcd.setCursor(0, 0); lcd.print(“Fluid level(mm):”); int waterValue = analogRead(waterSensor); lcd.setCursor(6, 1); mmwaterValue = map(waterValue, 0, 1023, 0, 40);
lcd.print(mmwaterValue); delay(4000); lcd.clear(); delay(200);
irrecv.resume(); }
}
}

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

Метеостанция из ARDUINO | Мастер Винтик. Всё своими руками!

Метеостанция на arduino с беспроводным датчиком температуры

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

Предлагаемая схема метеостанции строится на Arduino, который является мозгом метеорологической станции. Она собирает данные от различных датчиков, обрабатывает их и отображает на ЖК-дисплее 16 х 2.

Вы можете выбрать любой ардуино для этого проекта.

Цепь состоит из трех датчиков типа MQ-135, BMP180 и в dht11.

Давайте посмотрим работу каждого датчика подробнее.

Датчик MQ-135

Датчик MQ-135 показывает качество воздуха. Измерительный датчик может обнаружить углекислый газ, спирт, бензин, дым, бутан, пропан и т. д. Если химическая концентрация этих газов присутствует в воздухе, то можно сказать, что воздух загрязнен.

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

Изменения напряжения от датчика поступает к Arduino. Мы устанавливаем пороговые уровни в программе. Когда напряжение превышает порог уровня, микроконтроллер сообщает загрязнён ли воздух или нет.

На рисунке выше показана схема подключения. Этому датчику необходимо внешнее 5V питание, поскольку он имеет нагревательный элемент внутри датчика, который потребляет около 1 ватта.

Питание от Arduino не может обеспечить больший ток.

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

Датчик dht11

Датчик dht11 является известный как датчик температуры и влажности.

Это 4-контактный устройство, но используется только 3 из них. Он может показаться очень простой, но внутри он имеет микроконтроллер, который передает данные в цифровом виде для Arduino.

Схема подключения датчика к Arduino очень проста. Выход датчика подключается к контакту А1 ардуино. На vcc питания и GND подключены к выводам питания поставка ардуино.

Примечание: пожалуйста, убедитесь, что ваш датчик имеет встроенный резистор. Если его нет, подключите 4,7 ком резистор с выхода датчика dht11.

Датчик BMP180

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

Датчик измеряет высоту установки над уровнем моря. Он использует протокол связи I2C, SDA pin идет на А4 ардуино и SCL идет на А5 ардуино. Vcc и GND подключены к выводам питания питания ардуино.

LCD дисплей

ЖК-дисплей показывает все данные от датчиков. Связь между ЖК-дисплеем и ардуино является стандартным. Отрегулируйте потенциометром 10К для оптимальной яркости ЖК-дисплея.

Внешний вид подключений

Вот схема подключения всех датчиков станции к плате Arduino.

Программа:

#include #include #include #include #define DHTxxPIN A1 LiquidCrystal lcd(12,11,5,4,3,2); dht DHT; Adafruit_BMP085 bmp; int ack; int input = A0; unsigned long A = 1000L; unsigned long B = A * 60; unsigned long C = B * 2; int low = 300; int med = 500; int high = 700; int x = 4000; void setup() { Serial.begin(9600); lcd.

begin(16,2); lcd.setCursor(0,0); lcd.print(“Sensors are”); lcd.setCursor(0,1); lcd.print(“getting ready”); delay(C); } void loop() { ack=0; int chk = DHT.read11(DHTxxPIN); switch (chk) { case DHTLIB_ERROR_CONNECT: ack=1; break; } if(ack==0) { lcd.clear(); lcd.setCursor(0,0); lcd.print(“Temp(*C)= “); lcd.print(DHT.temperature); lcd.

setCursor(0,1); lcd.print(“Humidity(%) = “); lcd.print(DHT.humidity); delay(x); } if(ack==1) { lcd.clear(); lcd.setCursor(0,0); lcd.print(“NO DATA”); lcd.setCursor(0,1); lcd.print(“Check Sensor”); delay(x); } if (!bmp.begin()) { lcd.clear(); lcd.setCursor(0,0); lcd.print(“BMP180 sensor”); lcd.setCursor(0,1); lcd.

print(“not found”); while (1) {} } lcd.clear(); lcd.setCursor(0,0); lcd.print(“—-Pressure—-  “); lcd.setCursor(0,1); lcd.print(bmp.readPressure()); lcd.print(”  Pascal”); delay(x); lcd.clear(); lcd.setCursor(0,0); lcd.print(“—-Altitude—-“); lcd.setCursor(0,1); lcd.print(bmp.readAltitude(101500)); lcd.

print(”  meter”); delay(x); lcd.clear(); lcd.setCursor(0,0); lcd.print(”  Air Quality:”); if(analogRead(input)==0) { lcd.setCursor(0,1); lcd.print(”  Sensor Error”); delay(x); } if(analogRead(input)0) { lcd.setCursor(0,1); lcd.

print(”      GOOD”); delay(x); } if(analogRead(input)>low && analogRead(input)=med && analogRead(input)=high) { lcd.setCursor(0,1); lcd.print(”     WORST”); delay(x); }

}

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

By Girish Radhakrishnan

  • Как самому сделать светофор?
  • Для игры с машинками очень оказалось бы полезным такое устройство как — СВЕТОФОР! Со светофором игра будет увлекательнее и интересней.Давайте рассмотрим два варианта, как можно сделать простой электронный светофор из подручных материалов своими руками.Подробнее…

  • Ардуино — набор для творчества!
  • Всё большую популярность набирают программируемые схемы. Одна программируемая микросхема заменяет кучу микросхем простой логики и операционных усилителей. Одним из таких наборов является набор ARDUINO.На плате ARDUINO можно сделать множество различных схем: от простых мигалок и пищалок до часов и металлоискателей!Подробнее…

  • Самодельный термометр-гигрометр на SHT21
  • Можно, конечно купить термометр-гигрометр, но интересно и дешевле его сделать своими руками. В виду избытка халявных термодатчиков и ещё некоторых валяющихся без дела деталек, решил собрать себе этот нужный в быту девайс на ATmega168V и SHT21. Подробнее читайте дальше…Подробнее…

Метеостанция для экспериментов с контроллером Arduino

Метеостанция на arduino с беспроводным датчиком температуры

Издательство «БХВ-Петербург»  в содружестве с компанией «Фотомеханика» выпустило набор «Метеостанция» для экспериментов с контроллером Arduino, который благодаря своей универсальности, доступности для непрофессиональных пользователей и наличию бесплатной среды программирования завоевал огромную популярность среди любителей электроники во всем мире. Набор разработан по материалам  книги «Проекты с использованием контроллера Arduino» и поставляется в двух комплектациях

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

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

Прочитав книгу, вы увидите, как довольно просто на Arduino создаются достаточно сложные проекты в различных областях.

Робототехника, домашние погодные станции, системы «умного дома», вендинговые системы, радиоуправление, телевидение, Интернет — вот неполный перечень рассмотренных в книге проектов. Отдельная глава в этой книге посвящена набору «Метеостанция».

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

Давайте посмотрим, из каких деталей состоит набор.

Помимо книги, брошюры и органайзера в него входят контроллер ArduinoNano, который является  основой набора, макетная плата и 25 электронных компонентов.
С контроллером ArduinoNano достаточно просто работать.

Для его программирования разработан специальный язык, относящийся к стандартам C++, но с некоторыми особенностями, облегчающими новичкам написание программ.

В комплекте с контроллером поставляется USB-кабель, для подключения к компьютеру.

Для удобства использования контроллера с другими компонентами в наборе предусмотрена макетная плата (или плата прототипирования) и набор проводов, благодаря чему вам не придется возиться с канифолью, припоем и паяльником.

Контроллер аккуратно вставляется в плату прототипирования, и с помощью проводов осуществляются необходимые соединения с другими модулями. Кроме контроллера в комплект входят следующие модули: датчик температуры и влажности DHT11, модуль часов реального времени DS1302, экран LCDI2С 1602.

Также внутри лежат пакетики с разноцветными светодиодами и необходимыми резисторами.

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

Проделав предложенные уроки, вы научитесь работать с монитором порта, управлять монохромными и RGB-светодиодами, подключать датчики и модули (температуры, влажности, часов, фоторезистор и др.), работать с LCD-экраном и др.Уроки предлагается выполнять в порядке увеличения сложности.

Так, сперва вы научитесь моргать одним светодиодом, затем — использовать кнопку, а потом научитесь применять кнопку и светодиод вместе. Точно так же с часами и экраном.  Сначала подключаете часы, потом экран, а затем все вместе и т.д.

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

Для вас наверняка окажется неожиданностью наличие в наборе шарика для пинг-понга и пакета с пластиковыми детальками.

Не удивляйтесь! Шарик предназначен для рассеивания света от RGB-светодиода, а пластиковые детали — это корпус для финального проекта этого набора, метеостанции. В шарике делается аккуратное отверстие для светодиода, и он вставляется в корпус. Это выглядит очень красиво, так как светодиод светит всеми цветами радуги! Одновременно такая конструкция может послужить интересным ночником.

На странице информационной поддержки книги вы можете скачать краткое руководство в формате PDF, исходные коды уроков и проектов, а также дополнительные статьи по теме.

Дерзайте! Набор «Метеостанция» сделает уверенными ваши первые шаги в мир электроники и программирования.

Метеостанция с барометром и беспроводным датчиком

Метеостанция на arduino с беспроводным датчиком температуры

  • AliExpress
  • Часы и таймеры

Как показывает практика, найти в Китае неплохую метеостанцию — не проблема.

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

Листание каталога привело к тому, что вы здесь видите, хотя, если признаться, за время, прошедшее с заказа, на Aliexpress появились еще более симпатичные варианты.

Сразу краткое резюме. Все, как обычно для Китая: цена/функции — на отлично, реализация — средняя. То есть, вещь не для всех.

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

МЕТЕОФУНКЦИИ

1) Измерение температуры и влажности (20-95%%) в помещении (-10С — +60С) и за бортом (-20С — +60С) в градусах Цельсия и Фаренгейтах) 2) Измерение атмосферного давления (в миллибарах и дюймах ртутного столба) 3) Трехступенчатое отображение текущих тенденций температуры, влажности и давления (растет, падает, неизменно) 4) 12-часовая история изменений атмосферного давления 5) Графический индикатор прогноза погоды (5 вариантов) 6) Индикация субъективного восприятия уровня влажности в помещении (сухо/комфортно/влажно) 7) Индикация точки росы и индекса высокой температуры (четыре ступени предупреждения о высокой температуре)

АСТРОФУНКЦИИ

1) Время восхода и заката Солнца 2) Фаза (возраст) Луны 3) Фаза прилива

ФУНКЦИИ ВРЕМЕНИ

1) Часы 2) Будильник 3) Календарь Понятно, что за измерения «за бортом» отвечает внешний беспроводной датчик. Это, как обычно, компактная коробочка, в данном случае — черного цвета. Спереди — ЖК-индикатор с температурой и влажностью, то есть это фактически наружный термометр, который можно повесить за окном на кухне, в то время как метеостанция стоит в спальне или гостиной. О том, что датчик живет сообщает красный светодиод, который мигает примерно раз в минуту.Питается от двух батареек ААА, расположенных в отсеке на спине. На мой взгляд, там все правильно: крышка с герметизирующей резиновой прокладкой прикручивается четырьмя винтами. Причем именно что винтами, которые, к тому же, заходят в латунные втулки. И, не поймите меня неправильно. Мне все нравится, но только не очень ясен смысл герметизации батарейного отсека в свете того, что корпус датчика содержит прорези для измерения влажности и температуры. И, хотя я эту штуку не раскручивал до конца, есть подозрение, что вряд ли сенсоры там изолированы. Впрочем, ладно. Главное, что китайцы пытались все правильно сделать. У датчика еще есть съемная клипса, которую позволяет повесить его на стену или поставить на стол. Крепление клипсы особого доверия не внушает, поэтому я бы не стал доверять ей вне помещения. Основной блок метеостанции, как я и говорил — из глянцевого черного пластика. Можно повесить на стену (есть отверстие), а можно поставить на стол под эффектным углом благодаря откидной подставке. Подставка, правда, выглядит несколько хлипко. Еще минус моего экземпляра — явный дефект литья корпуса сверху. Но это практически незаметно. Кстати, судя по отзывам, это не единичный дефект: другой товарищ спросил у китайца, что за фигня, а китаец ответил, что все окей, это типа такая технология, и там место инжекции пластика. Питается станция от пары батареек АА. Здесь заметен этот дефект, как раз по центру верхней грани.Вот еще что. На этом пластике великолепно виден белый налет от ультразвукового увлажнителя. Имейте в виду, если что. Очень спорные моменты конструкции — эргономика управления и дисплей. Все кнопки располагаются на задней панели, собраны довольно тесны и одинаковые по форме и размеру, то есть — вслепую практически не идентифицируются. Нет, я в состоянии запомнить, что там и где, но только если пользоваться постоянно. А если время от времени — тогда, как и все, буду постоянно крутить станцию.Например, первоначальные настройки я сделал практически не глядя на кнопки, но вот сейчас, спустя несколько дней, уже не особо помню, что там и где. Теперь дисплей. Он, похоже, точно такой же, как и у подавляющего большинства подобной китайской техники. То есть, несмотря на элементарную технологию, углы обзора крайне малы и неоптимальны. Изображение лучше всего видно под небольшим углом сверху, а если смотреть под 90 градусов к плоскости — почти ничего не видно. Как они умудрились испортить обычный ЖК — уму непостижимо. «В лоб»По горизонтали сбокуПод оптимальным углом спередиТо же, с подсветкой на светуТо же, с подсветкой в темнотеПод оптимальным углом сбокуВторой недостаток — прямое продолжение достоинств станции. Объективно экран слишком мал для отображения такого массива данных. Поэтому китайцы нашли выход: все очень, даже не так, ОЧЕНЬ мелко. Если сложить первое и второе, то даже с небольшого расстояния более-менее читается только время (часы и минуты). Подсветка традиционно китайско-синяя, но вполне терпимая. Фишка в том, что она включается по звуку. Я боялся, что включаться будет по любому поводу, но она хитрее. На хлопок в полутора метрах не реагирует, зато легкое прикосновение к станции или похлопывание по плоскости, на которой она стоит, включает подсветку. Длительность — несколько секунд и не регулируется, чего достаточно, чтобы успеть разглядеть время и еще один какой-либо параметр. Больше ничего. При необходимости подсветку можно вообще отключить — на спине станции есть специальный переключатель. Станция умеет работать с тремя беспроводными датчиками — у нее есть кнопка переключения каналов, а у датчика — трехпозиционный переключатель выбора рабочего канала. На остальные функции вроде часов и будильника я особо не закладывался, поскольку все это и так есть. Но справедливости ради — будильников два, сигнал — тонкий писк. Судя по всему, там пьезокерамика. Отключить будильник можно нажатием на любую кнопку, что очень приятно с учетом специфической эргономики. Теперь особенности.

БАРОМЕТР

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

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

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

Что касается самих измерений, то по сравнению с местным прогнозом барометр станции заметно занижает результаты. Примерно на 10-20 мм. ртутного столба.

РАССВЕТ, ЗАКАТ И ФАЗЫ ЛУНЫ

Для расчета времени рассвета и заката необходимо указать город. Всего городов 150, но Москвы среди них нет. Пришлось сделать вид, что живу в Санкт-Петербурге. В итоге значения несколько не совпадают с теми, что можно увидеть на всяких погодных сайтах (Гисметео, например), но в целом дает понятие о ситуации.

Фазы или, если точнее, возраст Луны, станция определяет по какому-то своему алгоритму. Я так понимаю, что для него достаточно, чтобы был правильно установлен календарь. Работает довольно точно: по крайней мере то, что у нее на экране вполне совпадало с тем, что я видел на небе. Что касается точности метеоизмерений, то сравнивать особо не с чем.

К тому же, все мы знаем, что Гидрометцентр выдает погоду на уровне «средняя температура по больнице», и как следствие в разных районах города могут наблюдаться отклонения. Поэтому для наглядности вот табличка недельных наблюдений. Легенда: 1) Яндекс — Яндекс.

Погода 2) RST — оконный термогигрометр RST01278 3) Метеостанция — вы поняли, да?Если подводить итог, то мне все нравится. На мой взгляд, прогноз довольно точен, если не обращать внимания на то, что давление отстает. Причину я не знаю: то ли различие в высоте района измерения, то ли станция не учитывает заданную ей высоту местности, то ли еще что-то.

С другой стороны, тенденция давления верна, и прогноз обычно тоже в целом верен, а этого вполне достаточно. Хотя, конечно, измерение в миллибарах вместо миллиметров ртутного столба огорчает. Еще один минус, повторюсь, дисплей. Мелкие символы и ограниченный угол обзора — это явно не для всех

Но есть и неожиданный бонус.

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

Планирую купить +30 Добавить в избранное Обзор понравился +30 +53

Оцените статью
Просто о технологиях
Добавить комментарии

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: