Как стать автором
Обновить

Практический опыт использования Blynk для датчика СО2. Часть 1

Умный дом DIY или Сделай сам
Всем привет. Это еще одна статья из разряда ESP8266 + Blynk = . Прошу не воспринимать как рекламу, а только как дань уважения разработчикам платформы Blynk и личный опыт, который может быть полезен кому то еще, кроме меня.

Начало


Идея проекта родилась несколько лет назад, когда в порыве DYI-энтузиазма на Ali был куплен датчик качества воздуха MQ-135. По спецификации этот датчик реагирует на наличие в воздухе таких веществ как: NH3, NOx, спирт, бензин, дым и CO2 и выдает свою абстрактную оценку качества воздуха на аналоговом выходе [да я знаю, что существуют подстроечные резисторы и способы калибровки, но как то это слишком сложно].

Испытания показали, что на всякие вредные и «вонючие» соединения датчик реагирует отлично, показывая достаточно резкое изменение выходного уровня. Хуже дело обстояло с определением невидимого врага, а именно углекислого газа СО2. Про вред и очевидную повсеместность этого диоксида сказано немало, повторяться не будем.

Читать дальше →
Всего голосов 25: ↑23 и ↓2 +21
Просмотры 55K
Комментарии 22

Год измеряем влажность почвы на ESP8266 и двух батарейках. Часть 2

Умный дом DIY или Сделай сам
Всем привет! В этой статье хочется рассказать, как заставить датчик влажности почвы проработать год на двух батарейках (ААА) и при этом сделать все более менее правильно. Первая статья — про выбор среды разработки (Arduino IDE) и платформу Blynk.


Картинка домашнего дуба для привлечения внимания

Садовод любитель


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

Спойлер
Светодиоды греются, земля сохнет, поливаю я кое как.
Читать дальше →
Всего голосов 51: ↑49 и ↓2 +47
Просмотры 39K
Комментарии 174

IoT cloud на Netty или 10к рек-сек на ядро

Java *Анализ и проектирование систем *
Всем привет. Этот пост о серверном решении для интернета вещей, который я написал на асинхронных сокетах с использованием всем известной Netty. Я расскажу о задаче, которую мы ставили перед собой, о том почему я выбрал Netty, почему у нее нету альтернатив, какие у нетти недостатки и преимущества и как можно выжать максимум. Сейчас наш сервер в среднем обрабатывает 1.5 млрд сообщений в месяц и нагрузка с каждым месяцем растет на 20%. Для привлечения внимания — нагрузка на один продакшн сервер с 4-мя ядрами Xeon® CPU E5-2630L v2 @ 2.40GHz при лоаде в 500 рек-сек.

Blynk load - для привлечения внимания

Итак, поехали.

Все началось около 2-х лет назад, когда мне подарили arduino. Я всегда мечтал сделать какое-то интересное устройство своими руками. Но все эти паяльники, резисторы, вольты-амперы меня постоянно отпугивали. Так было, пока не появились arduino. С ардуиной я смог наконец-то управлять электроникой. Сказать, что это было очень круто — не сказать ничего. Я был счастлив. Но, как это часто бывает, после освоения базовых навыков в микроконтроллерах, захотелось большего — управлять устройствами через интернет с телефона. Быстрый гуглинг показал (дело было 2 года назад), что на текущий момент нет ни одного решения, которое бы решало эту задачу. Не считая IoT облака с HTTP API, которые было не очень удобно использовать.

К счастью, я не был один. Совершенно случайно, на своей работе, я познакомился с людьми, которых волновали те же проблемы. Так появился наш проект.
Читать дальше →
Всего голосов 22: ↑19 и ↓3 +16
Просмотры 27K
Комментарии 36

Топ 6 оптимизаций для netty

Java *
Всем привет. Эта статья продолжение 10к на ядро с конкретными примерами оптимизаций, которые были проделаны для повышения производительности сервера. С написания первой части прошло уже 5 мес и за это время нагрузка на наш продакшн сервер выросла с 500 рек-сек до 2000 с пиками до 5000 рек-сек. Благодаря netty, мы даже не заметили это повышение (разве что место на диске уходит быстрее).

Blynk load
(Не обращайте внимание на пики, это баги при деплое)

Эта статья будет полезна всем тем кто работает с netty или только начинает. Итак, поехали.

Нативный Epoll транспорт для Linux


Одна из ключевых оптимизаций, которую стоит использовать всем — это подключение нативного Epoll транспорта вместо реализации на java. Тем более, что с netty это означает добавить лишь 1 зависимость:

<dependency>
   <groupId>io.netty</groupId>
   <artifactId>netty-transport-native-epoll</artifactId>
   <version>${netty.version}</version>
   <classifier>linux-x86_64</classifier>
</dependency>

и автозаменой по коду осуществить замену следующих классов:

  • NioEventLoopGroup → EpollEventLoopGroup
  • NioEventLoop → EpollEventLoop
  • NioServerSocketChannel → EpollServerSocketChannel
  • NioSocketChannel → EpollSocketChannel

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

  • Метод selectedKeys() на каждый вызов создает новый HashSet
  • Итерация по этому множеству создает iterator
  • И ко всему прочему внутри метода selectedKeys() огромное количество блоков синхронизации

В моем конкретном случае я получил прирост производительности около 30%. Конечно же, эта оптимизация возможна только для Linux серверов.
Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 24K
Комментарии 6

Компактный монитор домашнего воздуха (CO2, температура, влажность, давление) с Wi-Fi и мобильным интерфейсом

Интернет вещей DIY или Сделай сам

image


Про измерение CO2 и его важность на Geektimes было уже немало публикаций (ссылки в конце статьи). Здесь же хочу описать проект компактного монитора уровня CO2, а также температуры, влажности и давления с Wi-Fi, обновлением прошивки по воздуху и интерфейсом в мобильном приложении. Сердца системы модуль на базе esp8266, сенсор CO2 MH-Z19 и фреймворк esp8266-arduino. И так, включим устройство в USB-розетку:

Читать дальше →
Всего голосов 78: ↑78 и ↓0 +78
Просмотры 76K
Комментарии 144

Вотериус: Передача показаний воды на телефон по Wi-Fi (4 года от батареек)

Умный дом DIY или Сделай сам
Из песочницы


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

Мой путь оказался непростым и витиеватым. Но в результате получилось устройство, передающее показания воды по Wi-Fi на телефон. Простое и понятное в использовании и настройке хоть школьнику, хоть гуманитарию пенсионеру. А знакомым со словом «Ардуино» — ещё и несложное для изготовления. Девайс способен работать от батареек четыре года (дольше, чем длились отношения с вашей бывшей). Это ещё и первый открытый проект с такими характеристиками. Заводские аналоги я выписал, их мало, да и ладно с ними.

Итак, у нас есть немного денег и большое, но честное желание упростить себе жизнь, не нарушая Уголовный Кодекс. И чтобы никаких этих ваших 220В, серверов и кучи кнопок! Показания смотрим на смартфоне в приложении Blynk или аналогичном сервисе.

Теперь устройтесь в кресле поудобнее, съешьте ещё этих мягких французских булочек да выпейте чаю. Смотрите красивые фотографии и слушайте мой рассказ о том, что надо учитывать при создании автономных устройств. Но сначала краткое описание Вотериуса.
Читать дальше →
Всего голосов 127: ↑126 и ↓1 +125
Просмотры 84K
Комментарии 205

Беспроводной программируемый по Wi-Fi комнатный термостат с монитором качества воздуха и другими полезными функциями

Умный дом DIY или Сделай сам
Из песочницы

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


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


Что в результате получилось – читайте дальше. Надеюсь, кроме меня проект будет интересен другим.

Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 26K
Комментарии 35

Два в одном: программируемый по Wi-Fi монитор качества воздуха и стрелочные часы

Беспроводные технологии *Интернет вещей DIY или Сделай сам

В свое время мне понравился монитор качества воздуха из публикации Сергея Сильнова «Компактный монитор домашнего воздуха (CO2, температура, влажность, давление) с Wi-Fi и мобильным интерфейсом».


В мониторе качества воздуха (далее – монитор) из проекта Сергея информация с датчиков температуры, влажности, давления, содержания СО2 в воздухе обрабатывается контроллером ESP8266 и отображается на монохромном экране несколькими кадрами. Кроме того, в мониторе через форму в браузере сохраняется в памяти ESP8266 ключ идентификации сервиса Blynk и автоматически отправляются данные на Blynk.


Монитор имел одну серьезную проблему: он зависал при выключении-включении или даже «промигивании» напряжения питания монитора.


Я повторил проект с несущественными изменениями, а для устранения зависаний монитора добавил в схему альтернативное питание. Простое, как грабли: обмотка реле находилась под напряжением адаптера AC/DC, а контакты реле переключали питание с адаптера на батарейки, когда исчезало напряжение в сети 220В.


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


После того, как наступил на свои же грабли, решил не искать простых решений.

Читать дальше →
Всего голосов 35: ↑33 и ↓2 +31
Просмотры 17K
Комментарии 50

ESP32 + Arduino Core + FreeRTOS + Blynk = дом с зачатками разума

Разработка под Arduino *Умный дом
Из песочницы

Цели проекта


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


Прислушавшись к себе, я понял, что это жаба, которой не нравится, что пока меня нет дома (12-16 часов в сутки), отопление работает. А могло бы и не работатать, включаться только перед приходом, благо каркасник обладает небольшой инерционностью и позволяет быстро поднять температуру. Та же ситуация когда куда то надолго уехать из дома. Ну и вообще, бегать, крутить ручку котла при изменениях температуры на улице — как то не кошерно.

Читать дальше →
Всего голосов 39: ↑37 и ↓2 +35
Просмотры 47K
Комментарии 65

Погода в доме или бюджетный мониторинг CO2, PM2.5, температуры и влажности на ESP32 и Blynk

Облачные сервисы *Разработка под Arduino *DIY или Сделай сам
По просьбах трудящихся в этой теме, решил сделать обзор-инструкцию, как можно сделать бюджетный измеритель CO2.

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

Также для максимальной простоты повторения, в обзоре выложу прошивку для ESP32 и проект Blynk.
Читать дальше →
Всего голосов 39: ↑39 и ↓0 +39
Просмотры 29K
Комментарии 28

Домашняя масляная майнинг-ферма

Программирование микроконтроллеров *Разработка под Arduino *Умный дом DIY или Сделай сам Криптовалюты
✏️ Технотекст 2021

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

Читать далее
Всего голосов 195: ↑191 и ↓4 +187
Просмотры 49K
Комментарии 118