Тип bt blink

Добавил пользователь Дмитрий К.
Обновлено: 19.09.2024

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

Начало

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


Для задачи измерения уровня углекислого газа в жилом помещении датчик оказался идеальным и оптимальным по цене (1200 рублей на Ali с доставкой) решением.

Blynk — помогает соединить железо, облако и телефон

Про платформу Blynk уже много хорошего сказано, например тут. Возможности платформы просто удивляют своей продуманностью и удобством использования. Поэтому когда пришло время выбирать среду разработки для ESP8266 и писать программу, выбор сразу пал на Arduino IDE и библиотеку Blynk.

Запуск тестового скетча BlynkSimpleEsp8266, не вызвал никаких проблем. Однако по мере усложнения и наращивания функционала — пришлось столкнуться с некоторыми трудностями, о которых и хочется рассказать подробнее.


Архитектура ПО

Главный плюс разработки ПО под ESP8266 в среде Arduino IDE – что можно совместить в одном скетче совершенно разные библиотеки и вам за это почти ничего не будет.

Перед началом разработки ТЗ было сформулировано тезисно и включало следующие пункты:

3. Пользователь должен иметь возможность настроить устройство (подключиться к WiFi, указать auth token и тд) без дополнительного софта или перепрошивки. Наиболее оптимальным решением стало использование библиотеки WiFiManager, которая переводит ESP в режим точки доступа и позволяет через Captive портал сохранить во флешку настройки WiFi сети и другие параметры.


В дальнейшем при старте библиотека пытается подключится к сохраненной WiFi точке и в случае неудачи снова переходит в режим точки доступа и Captive портала. А если пользователь вдруг не захочет использовать Blynk или у него не окажется WiFi-роутера, то в этом случае OpenWindAir никогда на загрузится и будет только стартовать в AP-режиме и перезагружаться по таймауту.

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


5. В качестве альтернативы использования Blynk пользователь может выбрать отправку показаний по протоколу MQTT на сервер Народного мониторинга или любого другого подобного сервиса. Для этих целей была выбрана библиотека PubSubClient, которая написана на наиболее понятном мне языке Си и единственная (из представленных в каталоге Arduino IDE), которая имела понятные примеры.

6. Перепрошивка устройства дело хоть и не частое и не очень сложное (особенно при наличии встроенного CP2102), но все равно захотелось максимально упростить этот процесс. Библиотека ArduinoOTA позволяет легко загрузить новый бинарник и прошить его. Активировать ОТА можно как кнопкой на устройстве, так и удаленно через телефон. Однако без сюрпризов не обошлось, оказывается мной были куплены модули ESP8266-12E с разным размером файловой системы (SPIFFS).


Примерное распределение Flash


Внешне не отличимые модули ESP8266-12E могут иметь файловую систему размером 1 или 3 Мб и требовать разные прошивки (опции сборки в Arduino IDE). Поэтому, чтобы избежать возможных проблем, при загрузке надо проверять фактический размер памяти и при ОТА апгрейде запрашивать на сервере соответствующий бинарник (пока не сделано). Или можно пойти чуть более простым путем и собирать все прошивки под SPIFFS c меньшим номиналом 1 Мб, т. к. они вполне работают на ESP8266-12E c большим объемом памяти.

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


7. Чтобы самому не путаться в разных версиях ПО и отличать их друг от друга, был немного переписан файл arduino-1.8.5\hardware\platform.txt от Arduino IDE так, чтобы во время компиляции запускался bat файл, который делает копию текущего скетча и полученного бинарника, а также автоматически инкрементирует номер версии.


Таким образом, после каждой сборки\прошивки имеем зашитый в бинарнике номер версии и копию скетча с таким же номером. А если папку со скетчем положить в Dropbox — то получится самодельная система контроля версий.

Инструкция по настройке автоинкремента версии для Arduino IDE и bat-файл выложены на гитхабе.

Самая неприятная проблема

Заключение

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

Ознакомиться с проектом целиком можно в репозитории на гитхабе.

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

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

Вспомнив про завалявшуюся в комоде парочку Arduino, а также давнее желание осуществить нечто большее, чем просто моргание светодиодами, я сразу решил взяться за эту задачу и сделать в этот раз, по возможности, всё до конца.

Общая схема системы:


Несмотря на то, что ESP8266 появился на горизонте DIY-сообщества совсем недавно, в рунете уже активно развивается ресурс разработчиков на этом чипе, где Вы всегда можете поискать ответ на интересующий Вас вопрос, найти пример подключения конкретной ESP платы или попросить помочь с возникшей проблемой.

Смета проекта

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

Для отображения и ввода информации было решено использовать LCD Keypad shield, представляющий собой электронный модуль с LCD экраном и 6-ю кнопками, подключаемыми к одному аналоговому входу.

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

В качестве ESP8266 на Ebay была заказана простейшая его версию – ESP-01. Главное – помнить, что ESP8266 питается исключительно от 3,3 В, о чём нужно позаботиться заранее.

Список необходимого оборудования:

  • Механизированный кран
  • Arduino Mega
  • WiFi модуль (ESP8266)
  • 4-х канальное реле
  • Датчики влажности почвы
  • LCD дисплей с кнопками

Функционал системы

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

Blynk

Размышляя над реализацией удаленного управления поливом, я наткнулся на интересный проект Blynk, сбор средств на реализацию которого был запущен на Kickstarter 16 января 2015 г.

За месяц проект собрал $49,235 вместо $10,000, что, по всей видимости, отражает огромный интерес к такого рода проектам со стороны мирового гик-сообщества.

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

Полный список поддерживаемых платформ (среди которых, безусловно, есть Arduino, Raspberry PI и Intel Edison), на которые планируется портировать Blynk, находится тут.

Схематично принцип работы Blynk представлен на следующем рисунке:

image

  • Кнопки;
  • Слайдеры;
  • Одноосные и двухосные джойстики;
  • Управление с помощью гироскопа и акселерометров телефона;
  • Различного рода ручки управления;
  • Графики;
  • Стрелочные индикаторы;
  • Всплывающие уведомления.

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

Техническая реализация

Принципиальная схема устройства:


Как видно из представленной схемы, обмен информацией между Arduino и ESP8266 будет осуществляться посредством UART. Чтобы не испытывать проблем при перепрошивке контроллера, Wi-Fi модуль подключим к контактам D2, D3, организовав на этих ножках аппаратный UART (Serial3) и установив скорость в 11520 бод.

У внимательного читателя должен возникнуть логичный вопрос – каким образом будут общаться работающий на 5-вольтовой логике Arduino и 3,3-вольтовый ESP8266? Изучив этот вопрос в Интернете, я пришел к выводу, что большинство не придаёт этой проблеме абсолютно никакого значения (как выяснилось позже – не зря), напрямую соединяя соответствующие ножки этих двух плат. Лишь в нескольких статьях было предложено использовать простейший делитель напряжения, либо специально разработанные преобразователи. Преобразователя у меня естественно не было, поэтому сначала была предпринята попытка реализовать общение с помощью делителя, однако она не привела к каким-либо результатам, и я присоединился к упомянутому выше множеству закрывающих глаза на описанную проблему (благо все заработало и без согласования логических уровней).

Несколько слов о питании ESP8266

Как уже упоминалось во многих туториалах, для нормальной работы ESP необходимо стабильное питание в диапазоне 3,0-3,6 Вольт. Для этого можно использовать различные линейные преобразователи, например, популярный сегодня AMS1117 3.3. В даташите на AMS1117 указано, что входящее напряжение может достигать 15 В. Однако для стабильной работы в режиме выходного тока порядка 1 А рекомендуется понижать входное напряжение (на практике достаточно 5-6 В). По своему опыту скажу, что при подключении преобразователя к источнику 12 В начинается активный нагрев AMS, что быстро приводит к уменьшению выдаваемого напряжения и, как следствие, перезагрузке ESP8266.

Настройка ESP8266

Взаимодействие Arduino и ESP8266 при использовании Blynk можно реализовать двумя различными способами:

Для осуществления управления с помощью Blynk необходимо умение залить нужную прошивку на ESP8266. В нашем случае будет использована версия AT-прошивки v0.22 SDK v1.0.0.

Для прошивки плат ESP8266 необходим USB-TTL преобразователь (например, такой), однако, можно использовать и Arduino, замкнув на нем ноги RST и GND между собой, и подключив RX Wi-Fi модуля к RX ноге Arduino, аналогично ТX к TX. Далее переводим ESP8266 в режим перепрошивки (для этого замыкаем выход GPIO0 на землю), и с помощью утилиты XTCom Util заливаем прошивку, как описано здесь. Остаётся только увеличить скорость UART до 115200 бод с помощью AT-команды AT+UART_DEF=115200,8,1,0,0, после чего настройка Wi-Fi модуля будет завершена.

Скетч для Arduino

Основной библиотекой для работы с Blynk под Arduino IDE является библиотека BlynkSimpleEsp8266.h. Рассмотрим основные ее функции.

Для отключения/подключения к Blynk server используются функции Blynk.disconnect() и Blynk.connect(), возвращающие результат в булевом типе. Для установления подключения (таймаута в секундах) используется Blynk.connect(s) (по умолчанию таймаут установлен в 30 с).

В коде скетча обработка обращения к виртуальному контакту с номером n происходит с помощью блоков BLYNK_READ(Vn) и BLYNK_WRITE(Vn). Внутри фигурных скобок указывается код обработки обращения к виртуальному контакту. Например, если виджет приложения запросит по виртуальному контакту №2 значение влажности почвы для отображения в виде графика, то нам потребуется в скетче прописать что-то наподобие:


Аналогично можно считать параметр, отправляемый, например, через виртуальный контакт №9 от пользователя приложения Blynk:


Здесь используется преобразование входной переменной в целочисленное значение с помощью param.asInt(). Также допустимы преобразования param.asStr() и param.asDouble().

Важно! Процедуры BLYNK_READ/BLYNK_WRITE должны исполняться как можно быстрее, дабы устройство успевало обрабатывать все входящие от приложения запросы. Поэтому настоятельно не рекомендуется использовать функции sllep/delay внутри таких подпрограмм.

Более подробную информацию по функционалу Blynk можно найти на странице github разработчика в папке examples или на странице docs.

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

Настройка мобильного приложения Blynk

Остался последний шаг – настройка мобильного приложения. В моем случае будут использоваться следующие элементы:



В открывшемся окне созданного проекта в правом верхнем углу 3 кнопки: глобальные настройки проекта, добавление элементов (виджетов) на форму и запуск:



Осталось на форму приложения добавить элементы управления и произвести их настройку. Некоторые из имеющихся на момент написания статьи виджетов представлены ниже:



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

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







Осталось разместить на форме все описанные выше виджеты и мы получим что-то наподобие этого:


Результат

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



Вместо заключения

Подводя итоги создания системы автополива с использованием Blynk можно сказать следующее:

1. Сам по себе сервис Blynk является очень удобным и простым для освоения инструментом, который, благодаря обилию поддерживаемых плат и устройств, легко интегрируется практически в любое устройство. Вкупе с низкой ценой Wi-Fi модуля ESP8266 указанные преимущества позволяют осуществить добавление удаленного управления в конкретный проект с наименьшими усилиями.
Минусами использования такого решения, безусловно, является меньшая гибкость в настройки системы под себя и зависимость от разработчиков приложения, что, однако, нисколько не снижает его заслуг при использовании в небольших DIY-проектах.

2. Двумя основными недостатками описанной выше реализации системы автоматического полива являются её стоимость и низкое качество используемого датчика влажности почвы.

Первый недостаток обусловлен, как уже упоминалось выше, высокой стоимостью электромагнитного крана и официальной платы Arduino Mega. Однако её можно существенно снизить, используя, например, Arduino-аналоги или реализуя всю электронную часть на другом подходящем МК. Кран, к сожалению, существенно дешевле найти не удалось, да и цели такой передо мной не стояло.
Что касается датчика влажности, то для увеличения его срока службы и уменьшения продуктов электролиза между его контактами, во-первых, необходимо подавать на него напряжение только непосредственно перед измерением влажности (что и реализовано в моей системе), а, во-вторых, лучше заменить его либо на графитовые стержни, либо использовать контакты из нержавеющей стали.

В ближайшем будущем планируется собрать электронную часть воедино и поместить ее в какой-нибудь достойный корпус и, надеюсь, наконец установить всё на даче.

Blynk для Arduino, ESP8266,RPi
версия: 2.27.24

Последнее обновление программы в шапке: 31.01.2021

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Краткое описание:
Мобильное приложение для IOT.

Blynk это украинский стартап успешно запущен на Kickstarter.

Blynk - это платформа с приложениями для iOS и Android для управления Arduino, Raspberry Pi ESP8266 и другими через Интернет. Это цифровая панель, где вы можете создать графический интерфейс для своего проекта, просто перетаскивая виджеты.

Создавайте классные интерфейсы для своих проектов добавляя различные виджеты, такие как: кнопки: ползунки, графики, терминал и многие многие другие!

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

Все очень просто! Как 1-2-3:
1. Добавьте и настройте виджеты за несколько прикосновений
2. Загрузите программу с библиотекой Blynk на свое железо
3. Готово!

Blynk подходит для любых проектов: мигание LED-ами, отображение температуры по собственной метеостанции, управления игрушками и работами и даже домашняя автоматизация!

Взгляните на список аппаратуры, поддерживается:
• Arduino: Uno, Nano, Mini, Pro Mini, Pro Micro, Mega, YÚN (Bridge), Due .
• Raspberry Pi
• Particle (ex Spark Core)
• ESP8266
• TinyDuino ( CC3000)
• Wicked WildFire (CC3000)

Платы расширения и способы соединения:
• USB, подключенный к ноутбуку или ПК
• Ethernet shield (W5100)
• Adafruit CC3000 WiFi
• Official Arduino WiFi shield
• ENC28J60
• RN-XV WiFly

В библиотеке много примеров, которые помогут начать строить Ваш Интернет Вещей (IoT), без разницы профессионал вы или любитель.

Вы можете использовать бесплатный Blynk Cloud, или запустить собственный сервер Blynk в минуту и получить полный контроль над своими данными (детали на сайте). Сервер можно запустить даже на Raspberry Pi!

Успехов с Blynk-ом!

Требуется Android: 4.2 и выше
Русский интерфейс: Нет

- Исправлено отключенное состояние динамических ярлыков
- Исправлено изменение размера рамки виджета в некоторых случаях
- Виджет-слайдер: исправлено значение при переподключении / перезагрузке приложения
- Поддержка Blynk.Faces в исправлениях предварительного просмотра приложения
- Улучшения стабильности

Поддерживаемое оборудование
Исправление проблем
Безопасность
Blynk сервер
Blynk Firmware
Вопросы-Ответы
Лицензия
Этот проект выпущен под лицензией MIT (MIT)

Полноценная документация на украинском языке ТУТ (в процессе перевода . )

Начало работы с Blynk: простые устройства IoT для самостоятельной работы

Blynk — это сервис Интернета вещей (IoT), разработанный для того, чтобы сделать дистанционное управление и считывание данных датчиков с ваших устройств максимально быстрым и простым. В этой статье мы расскажем, что такое Blynk, как он работает, и представим два коротких примера проектов по различным видам использования сервиса с платами разработки NodeMCU и Raspberry Pi.


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

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

Blynk использует свой собственный сервер и библиотеку, чтобы заставить сервис работать, но это приложение Blynk, которое, кажется, является его главной силой.

Войдите в приложение Blynk

Приложение Blynk доступно бесплатно на Android и iOS. Это отправная точка для ваших проектов с простой в использовании системой перетаскивания для создания пользовательских элементов управления для вашей установки IoT. Рабочий процесс быстрый: при запуске нового проекта вам предлагается выбрать свою доску для разработки из обширного списка, а также способ подключения. Затем приложение отправляет токен авторизации по электронной почте для подключения к вашему устройству через сервер Blynk.

Элементы управления называются виджетами : различные типы методов ввода и вывода информации, включая кнопки, ползунки, джойстик, графики и текстовую обратную связь. Существуют также виджеты, специфичные для компонентов, со стилизованными элементами управления для светодиодов, ЖК-дисплеев и даже потокового видео. Также примечательны виджеты, которые добавляют функции, такие как автоматическая публикация в Twitter и пользовательские уведомления.

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

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

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

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

Сервер Блынк

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

Облачный сервер Blynk быстрый, отзывчивый и бесплатный в использовании. Подключиться к устройству Wi-Fi так же просто, как скопировать сгенерированный код авторизации в эскиз Arduino и предоставить свои данные Wi-Fi. Для Raspberry Pi Blynk предоставляет тестовый скрипт, который вы можете запустить с вашим кодом авторизации для того же эффекта. Позже в этой статье мы создадим наш собственный скрипт, использующий библиотеку Blynk для подключения к сервису.

Второй вариант — разместить свой собственный сервер Blynk. Blynk предоставляет Java-сервер с открытым исходным кодом на базе Netty, который можно запустить с вашего компьютера или даже Raspberry Pi. Это имеет различные преимущества для некоторых пользователей с точки зрения функциональности и безопасности, хотя для наших примеров здесь мы сосредоточимся на использовании предоставленного облачного сервера Blynk.

веб-сайт blynk

Блинкская библиотека

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

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

Блынк: Начальная настройка

Установите приложение Blynk на свой смартфон и создайте учетную запись. Убедитесь, что вы используете адрес электронной почты, к которому вы можете получить доступ, поскольку именно туда будут отправляться ваши токены авторизации. Теперь создайте проект, выбрав, какую доску вы будете использовать и как вы будете к ней подключаться. Оба примера здесь подключаются через Wi-Fi, хотя также возможны подключения через Bluetooth, Ethernet и даже GSM.

Затем установите библиотеки Blynk с веб-сайта Blynk. Для Arduino установите библиотеку, скопировав файлы в папку Arduino> библиотеки . Если вы новичок в Arduino, вот руководство по

Для Raspberry Pi вы должны убедиться, что у вас установлен Node.js. В этой статье приведено руководство по установке Node.js. если вам это нужно.

Во-первых, убедитесь, что ваш Pi обновлен и на нем установлен пакет build-essential.

Затем установите диспетчер пакетов Node , библиотеку OnOff и библиотеку Blynk , введя это в окне терминала.

Вы можете проверить, все ли работает, запустив тестовый скрипт Blynk:

Если все работает, это должно выглядеть так:

blynk pi blynk тестовый скрипт

Если вы получаете какие-либо ошибки, убедитесь, что ваш Pi обновлен, и у вас установлена ​​самая последняя версия Node.js, прежде чем переустанавливать библиотеки NPM, OnOff и Blynk.

Быстрая настройка с NodeMCU

Этот первый пример показывает, как быстро настроить простые системы с помощью Blynk. Не требует кодирования, и после установки он полностью автономен. Пока у платы есть доступ к вашему Wi-Fi-соединению, вы можете получить к нему доступ из любого места, используя свой смартфон.

Для начала настройте простую схему на макете. Подсоедините контакт D0 к положительной ветви светодиода и обратно к контакту GND через резистор 220 Ом.

нодмку фритзинг

Затем откройте Arduino IDE и выберите вашу плату NodeMCU и порт из меню инструментов. Если вы не видите свою плату в этом меню, вам может потребоваться установить библиотеки ESP8266 ( это руководство должно помочь ).

Теперь откройте автономный скрипт ESP8266 Blynk, предоставленный в их библиотеке, перейдя в File> examples> Blynk> Boards_WiFi> ESP8266_Standalone . Замените заполнитель токена авторизации на тот, который вы получили по электронной почте, и введите свои данные Wi-Fi.

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

В простых случаях, подобных этим, Blynk невероятно быстр в настройке.

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

Блинк на малиновом пи

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

Blynk работает с использованием Node.js, поэтому код, который мы напишем сегодня, будет в Javascript. Если вы новичок в этом языке, это должно стать отличным учебником для начинающих. великолепных великолепных

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

  • Дверной магнитный выключатель (также известный как геркон)
  • 1х 1к? резистор
  • 1х 10к? резистор
  • 1x 220? резистор
  • 1x светодиод
  • Макетные и соединительные провода

Настройте ваш макет так:

пи фритзинг

Обратите внимание, что библиотека Блинка использует номера GPIO выводов Пи, поэтому мы будем использовать их в этом проекте. Подсоедините контакты 5 В и GND к силовым шинам на макете. Подключите контакт 22 GPIO на Raspberry Pi к светодиодному аноду и подключите катод к шине заземления через 220? резистор. Подключите контакт 17 GPIO к одной стороне 1k? резистор, а подключить 10? резистор с другой стороны, и 5V сторона шины питания. Наконец, подключите ваш геркон к стороне заземления шины питания с одной стороны, и на линии, где 1k? а 10к? резисторы встречаются с другой. Эта установка подтягивающего резистора приведет к тому, что напряжение на выводе 17 будет высоким, когда переключатель размыкается.

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

стоимость проекта

Теперь создайте новый скрипт с именем blynkdoor.js . Полный код доступен с полной аннотацией здесь .

Нам нужно начать с импорта библиотеки Blynk, добавления ключа авторизации и создания экземпляра Blynk для использования в нашем сценарии.

Нам также нужно импортировать библиотеку OnOff и объявить переменные, которые настраивают наш геркон и светодиод. Мы также создадим переменную для виртуального вывода, который мы настроили в приложении Blynk.

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

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

Наконец, нам нужно сбросить пин-код, когда программа заканчивается. Это то же самое, что GPIO.cleanup (), с которым вы, вероятно, уже знакомы.

Теперь сохраните ваш код и выйдите. Запустите ваш скрипт, используя узел.

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

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

За короткое время, проведенное с Blynk, этот сервис кажется очень простым в использовании. Это позволяет людям, не обладающим знаниями в области программирования, легко создавать системы домашней автоматизации DIY. С небольшим дополнительным знанием кодирования он становится еще более мощным, позволяя создавать гораздо более сложные системы и множественные триггеры событий от нажатия одной кнопки в приложении.

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

Вы использовали Blynk? У вас есть сумасшедшая сложная система, использующая сервис, которым вы хотели бы поделиться с нами? Дайте нам знать в комментариях ниже!

lluceu аватар

Требуется помощь советом, как лучше сделать передачу данных (3 int-а) с arduino (esp8266 ?) через домашний Wi-Fi на MQTT-сервер, а оттуда через интернет на простенькое приложение на смартфоне. Да, есть Blynk, но функционал у него весьма ограничен, мало кастомизации. Возможно посоветуете какой-нибудь конструктор приложений на IOS, где можно было бы реализовать такие функции

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

lluceu аватар

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

andycat аватар

а страничка на ESP ? проброс портов через роутер работает через внешний интернет?

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

ЕвгенийП аватар

Когда звучат заявления типа

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

С учётом "3 int" напрашивается modbus/tcp.
Только не нужно путать функционал с кастомизацией.

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

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

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

Заваривать modbus/tcp по интернету для трех чисел? Вот это жахнул.

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

Заваривать modbus/tcp по интернету для трех чисел? Вот это жахнул.

Я и ради одного заваривал.
Правда там по другому никак было

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

Andrey12 аватар

Блинк не ставил не скажу за его функционал.
Нужен конструктор на esp поставь tasmota.
Если есть возможность поставить node red + mosquitto, то они мало чью фантазию реализации проектов могут ограничить не то что вывести 3 числа.

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

lluceu аватар

Нужно сделать коробку в которой будет ESP8266 и пара датчиков, подключиться к ней через смартфон, зайти в веб-морду ESP, там её подключить к домашнему Wi-Fi вбив идентификатор сети и пароль. Есть ли возможность предварительно настроить ESP таким образом, что бы в дальнейшем оставалось только вбить имя сети и пароль от домашнего wi-fi, что бы можно было удалённо (вне сети домашнего wi-fi) через интернет получать значения с датчиков в той коробке?
Я имею в виду, есть ли способ избавить конечного пользователя этой коробки от переадресации портов? Ведь как-то ставятся всякие хабы и умные дома и они ведь как-то отсылают информацию на свои сервера через домашний wi-fi, и покупатель этого хаба на лазиет по веб-морде своего роутера что бы настроить переадресацию портов, он просто находит свою сеть wi-fi вводит от неё пароль и данные с заба или датчика уже пересылаются на сервер производителя, а оттуда на смартфон пользователя

Читайте также: