Перейти к публикации
iT4iT.CLUB

Таблица лидеров


Популярные публикации

Отображаются публикации с наибольшей репутацией на 24.06.2019 во всех областях

  1. 1 балл
    Доброе время суток. Заранее спасибо, что помогаете друг другу! Да, все это возможно. Например, для расчета точки росы Вам понадобятся показания температуры и влажности, а также функция которая и будет производить расчет. Вот её упрощенный вариант. /* Функция расчета точки росы */ float dewPoint(float t, float h) { float a = 17.271; float b = 237.7; float temp = (a * t) / (b + t) + log(h * 0.01); return (b * temp) / (a - temp); } Теперь можно объявить новый сенсор, но для начала опишем настройки для визуализации. knob_t *DP = new knob_t(-40, 125, ".1", "Точка росы", "°C"); Ну и сам сенсор, но помните, что он берет данные от других датчиков, которые должны быть объявлены. У меня они имеют идентификаторы out_temperature и out_humidity для температуры и влажности соответственно. sensors.add(DP, device::out, "out_dewPoint", [&](){ return dewPoint( sensors.get("out_temperature"), sensors.get("out_humidity") ); }); Вот в принципе и все не сложные операции. Для индикации изменения давления "к дождю" необходимо придумать какую-нибудь формулу, скорее всего уже есть наработки в интернете. Вопрос в том, какие параметры потребуются для этого. Лично мне в голову приходит мысль смотреть в логи с датчика давления и влажности, а также рассчитывать абсолютную влажность по ним и смотреть на тенденцию изменения абсолютной и относительной влажности. Для индикации можно использовать значение в процентах или придумать свою условную шкалу, но в любом случае придется рассчитать её приделы. В общем, нужна формула. Для LCD дисплея 20х4 Вам понадобится i2c конвертер, возможно он уже распаян на нем, в противном случае у Вас не хватит свободных портов для подключения. Далее все еще проще, скорее всего у Вас уже имеется библиотека для работы с ним, и наверное это она https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library Подключаем библиотеку и объявляем дисплей (например в основном .ino файле), убедитесь, что i2c адрес для дисплея никем не занят. #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 20, 4); Производим инициализацию дисплея, например, в конце функции setup. lcd.begin(); lcd.backlight(); Теперь создадим в планировщике задачу которая будет обновлять данные на дисплее каждые 30 секунд, опишем её сразу после инициализации дисплея. cron.add(cron::time_30s, [&](){ lcd.clear(); lcd.printf("Temperature %.1f C", sensors.get("out_temperature")); }); Первой строкой мы очищаем дисплей, а второй выводим данные. Естественно, что Вы можете изменять позицию курсора. Сразу отмечу, что я не проверял этот код, я просто опираюсь на описания библиотеки (LiquidCrystal_I2C.h) и её "родителя" (print.h) которые посмотрел на GitHub https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library/blob/master/LiquidCrystal_I2C.h https://github.com/esp8266/Arduino/blob/master/cores/esp8266/Print.h Но общий смысл должен быть понятен. Что касаемо Blink, то мне с ним не приходилось сталкиваться, дать какие-то рекомендации со своей стороны затрудняюсь, нужно изучать API сервиса. Но я рад, что есть люди @Вадим Гречухин которые это уже реализовали. Перед установкой датчиков стоит обработать все открытые и подвергающиеся воздействия окружающей среды элементы диэлектрическим лаком. Сами сенсоры на время обработки лаком стоит закрыть чем ни будь чтобы не вывести их из строя. Обязательно убедитесь в их работоспособности после этих операций. Я старался размещать датчики сенсорами вниз, особенно фото датчики чтобы уменьшить количество оседаемой на них пыли, у меня её много т.к. проживаю чуть ли не в интимной близости от дороги. Ну а в будке, как мне кажется, лучше размещать их в средней части, на небольшом удалении друг от друга чтобы они не могли влиять на показания соседей. Все это мое субъективное мнение, основанное только на личном опыте. Далеко не факт, что он верный. Из достоверных источников известно точно, что сама будка должна быть расположена в теневой зоне на высоте пары метров от земли и не иметь вблизи других строений. В моем случае нарушены все эти правила т.к будка закреплена на мачте параболической антенны далеко даже не на первом этаже многоэтажного дома на расстояние 20 сантиметров от стены этого дома да еще и на солнечной стороне. В общем все это влияет на показания, но самое критичное это солнечная сторона, старайтесь найти место в тени на весь световой день. Скорее всего сенсоры вышли из строя. У меня аналогичная ситуация произошла с датчиком влажности и датчиком загрязнения воздуха после того как весной (в очередной раз) будка была повреждена и перестала выполнять свои прямые обязанности по защите датчиков. Судя по повреждениям, во время оттепели что-то прилетает с верхних этажей и уничтожает крайний конусный элемент будки. Следом после этого датчики заливает водой... Имейте это в виду при выборе места установки.
  2. 1 балл
    Они там есть, только скрыты. Для того чтобы они были доступны через web-интерфейс необходимо раскомментировать в файле users_auto.h несколько строк. На рисунке показано какие. После это в на странице появится Жмём "полудомик" и получаем По поводу Blynk... Прикручивал сам, автор и так много сделал.. Каждый уже как бы пляшет от того что предоставлено в массы.
  3. 1 балл
    Всем добрый вечер. @Kitsum спасибо большое за подробную инструкцию и скетч для метеостанции. Собрал 2. Одна на чипе CH340, другую на CP2102. Все работает прекрасно. Только для второй использовал настройку: "плата - Node MCU 0.9 ESP-12". Датчика BME280 у меня пока еще нет, но есть BMP280. От него работает только температура и давление. Хочу спросить, можно ли добавить расчет точки росы, индикацию изменения давления (типа " к дождю" и т.п.), добавить поддержу сервиса Blynk, добавить дисплей 2004. Вопрос не по программной части: как правильно расположить датчики в корпусе на улице? Сейчас ко мне едет из Китая такой корпус: планирую поставить BME280, BH1750 и CCS811. Как было бы правильно их с вашей точки зрения расположить. У меня сейчас уже год работают 2 метеостанции, одна в России, другая в Болгарии. Обе были куплены через сайт народного мониторинга. Но работают они плохо. Обе с датчиками AM2302, BMP085 (по моему такой...). Одна станция через пару месяцев работы стала показывать 99% влажность. Другая 99% влажность показывает только ночью. Датчики стоят на северных сторонах домов в распредкоробках, с отверстиями для вентиляции. Есть интересный момент, они предают на сайт еще и напряжение на ESP и уровень сигнала Wi-Fi. Можно ли и в вашу метеостанцию добавить отображение этих данных. Спасибо.
×
×
  • Создать...