Оглавление:
- Шаг 1: Подключите цепь
- Шаг 2. Подготовьте веб-приложения
- Шаг 3: запрограммируйте плату NodeMCU
- Шаг 4: Наслаждайтесь своим устройством
Видео: Уведомления о событиях в реальном времени с использованием NodeMCU (Arduino), Google Firebase и Laravel: 4 шага (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Вы когда-нибудь хотели получать уведомления о каких-либо действиях на вашем веб-сайте, но электронная почта вам не подходит? Вы хотите слышать звук или колокольчик каждый раз, когда совершаете продажу? Или есть необходимость в вашем немедленном внимании из-за чрезвычайной ситуации дома?
Это устройство может предупреждать вас в режиме реального времени обо всем, что вам нравится.
Шаг 1: Подключите цепь
Созданное мной устройство состоит из платы NodeMCU с зуммером, который предупреждает меня о продажах, совершаемых на веб-сайте. Микроконтроллер программируется с помощью программного обеспечения Arduino, и запускающей частью может быть любое веб-приложение, приложение для iOS или Android. Я создал два простых веб-приложения, например, одно на Laravel, а другое на простом HTML и JavaScript.
Поскольку плата NodeMCU может безопасно работать при токе на выводах около 12 мА, зуммер подключается через транзистор NPN. Я использовал 2N2222, потому что у меня их много, но я уверен, что принцип будет таким же, как и с любым другим NPN-транзистором.
Чтобы подключить схему, подключите коллектор транзистора к выводу Vin на плате. Зуммер работает при 5 В, и, поскольку мы будем питать устройство от USB, этот вывод будет давать нам напряжение перед регулятором 3,3 В на плате.
Затем подключите положительный вывод зуммера к эмиттеру транзистора, а отрицательный вывод зуммера к любому из выводов заземления на плате. Я использовал контакт 2, но вы также можете подключить его к контактам 9, 25 или 29.
База транзистора подключена к выводу D2, который соответствует GPIO 4 в программном обеспечении Arduino. При такой настройке транзистор будет эффективно работать как переключатель, включающий зуммер при каждом событии. Вместо зуммера вы можете подключить реле таким же образом, чтобы иметь возможность управлять любым электроприбором, например лампочками, машинами или сиреной, если вы делаете какое-то устройство сигнализации.
Шаг 2. Подготовьте веб-приложения
Для триггера и части устройства в реальном времени мы будем использовать базу данных Firebase Realtime от Google. Это замечательная облачная база данных NoSQL, созданная Google, которая обеспечивает синхронизацию данных в реальном времени между каждой из используемых платформ.
Сначала создайте проект с именем по вашему выбору. После создания создайте единственный узел с именем «count» и инициируйте его значением if 0. Это будет наш начальный счетчик, которому мы хотим следовать в будущем.
Приложение Laravel использует пакет firebase-php от Kreait, ссылка на который приведена ниже. Установите пакет, запустив «composer require kreait / firebase-php». После завершения установки нам нужно создать контроллер, в котором будет происходить действие. Я назвал метод update и подключил его к маршрутам в действии POST.
Чтобы получить экземпляр Firebase, вам понадобится файл json, который необходимо загрузить с консоли Firebase. Поместите этот файл в корень вашего проекта Laravel и назовите его firebase.json. При получении экземпляра firebase нам необходимо указать путь к этому файлу с помощью метода withCredentials.
После того, как мы получили экземпляр firebase, нам нужно получить ссылку на базу данных и на узел, который мы создали ранее. При каждом действии мы будем получать текущее значение узла, увеличивать его на единицу и сохранять его обратно в базу данных. Это будет отслеживать наши события, о которых нам нужно уведомлять.
То же самое можно сделать с помощью обычного HTML и JavaScript, используя предоставленную библиотеку firebase. С его помощью нам сначала нужно предоставить массив конфигурации с соответствующими настройками из консоли Firebase и инициализировать приложение. После инициализации мы получаем ссылку на узел, где храним счетчики событий, и присоединяем слушателя для получения любого изменения значения.
Кроме того, вместо отправки формы, как в примере Laravel, теперь у нас есть функция JavaScript, которая вызывается при нажатии кнопки, обновляет счетчик и записывает обновленное значение обратно в базу данных.
Шаг 3: запрограммируйте плату NodeMCU
Чтобы запрограммировать NodeMCU, я использовал программное обеспечение Arduino, и после того, как я установил на него плату, я выбрал правильную версию и порт, чтобы я мог загрузить программное обеспечение. У меня версия 1.0, так что дважды проверьте свою доску, прежде чем продолжить.
Первая часть кода Arduino устанавливает все необходимые определения, которые вам нужно будет настроить на вашем устройстве. Первым таким параметром является ssid WiFi и его пароль, затем нам нужно настроить URL-адрес firebase и секрет базы данных firebase. К сожалению, это не рекомендуемый способ подключения к базе данных, но на данный момент это единственный способ, которым его поддерживает библиотека. Вы можете найти этот секрет в настройках проекта, меню служебных учетных записей в консоли firebase.
Следующее определение - это путь, который мы будем проверять на наличие обновлений, и идентификатор устройства. Идентификатор устройства необходим, поэтому, если у нас есть несколько устройств для уведомления об одних и тех же событиях, нам нужно знать, какое устройство уведомило нас о событии, и вести запись об этом. Последним нам нужно настроить контакт, к которому мы подключили зуммер, и в нашем случае это D2.
Функция настройки определяет встроенный вывод светодиода и выводы D2 в качестве выходов, запускает последовательную связь, чтобы узнать, что происходит, и подключается к указанной сети Wi-Fi. Как только соединение установлено, оно начинает связь с Firebase и получает последнее значение, о котором мы сообщили. Затем он начинает отслеживать изменения по указанному пути.
В основном цикле есть вызов функции мигания, которая мигает встроенным светодиодом в течение 500 миллисекунд, чтобы мы могли определить, что устройство активно. Когда обнаружено изменение и есть доступные данные, которые мы можем прочитать с помощью доступной функции, считывается новое значение узла, вычисляется разница, поскольку за это время могло произойти несколько событий, и каждый раз раздается звуковой сигнал. разницы.
Например, если разница между последним сообщенным значением и новым значением составляет 4, прозвучат 4 звуковых сигнала, чтобы вы знали, что были сделаны 4 новые покупки. Функция звукового сигнала использует встроенную функцию тонального сигнала для воспроизведения определенной частоты через зуммер в течение заданного периода времени.
После подачи звуковых сигналов новое значение обновляется для указанного устройства, и потоковая передача снова запускается. В настоящее время существует открытая проблема в библиотеке arduino firebase, заключающаяся в том, что потоковая передача не продолжается автоматически после того, как мы вручную сохраняем значение, поэтому нам нужно перезапустить ее.
Шаг 4: Наслаждайтесь своим устройством
Весь использованный мной код доступен в моей учетной записи GitHub, ссылка на которую приведена ниже, вместе со ссылкой на схему проекта.
Исходный код
Схема
Код можно легко адаптировать для множества различных сценариев и событий, и я уверен, что вам будет очень весело с ним играть.
Для меня это была действительно забавная сборка, мне удалось многому научиться на ней, и я очень этому рад. Я надеюсь, что это может помочь вам в вашем проекте, но если вы обнаружите, что застряли в какой-либо его части или вам нужны дополнительные разъяснения, дайте мне знать в комментариях, и я сделаю все возможное, чтобы помочь вам.
Если вам понравился проект, то подпишитесь на мой канал на YouTube:
Попробуй код
Рекомендуемые:
Решающая программа для куба Рубика вслепую в реальном времени с использованием Raspberry Pi и OpenCV: 4 шага
Кубик Рубика «вслепую» в реальном времени с использованием Raspberry Pi и OpenCV: это вторая версия кубика Рубика, предназначенная для решения «вслепую». Первая версия была разработана с помощью javascript, вы можете увидеть проект RubiksCubeBlindfolded1В отличие от предыдущей, эта версия использует библиотеку OpenCV для определения цветов и е
Live Tracker Covid19 с использованием ESP8266 и OLED - Панель управления Covid19 в реальном времени: 4 шага
Live Tracker Covid19 с использованием ESP8266 и OLED | Панель управления Covid19 в реальном времени: посетите веб-сайт Techtronic Harsh: http: //techtronicharsh.com Везде наблюдается огромная вспышка нового вируса короны (COVID19). Возникла необходимость следить за текущим сценарием COVID-19 в мире. Так что, находясь дома, это было п
ESP01 Moodlight с Firebase в реальном времени + OTA: 7 шагов
ESP01 Moodlight с Firebase в реальном времени + OTA: поддерживает режим R-G-B и эффект затухания. Также есть поддержка регулировки яркости. Поддержка обновления OTA
Отображение показаний датчика Arduino в реальном времени на ЖК-дисплее Nokia 5110: 4 шага (с изображениями)
Отображение показаний датчика Arduino в реальном времени на ЖК-дисплее Nokia 5110: если вы когда-либо работали с Arduino, вы, вероятно, хотели, чтобы он отображал показания датчика. Использование последовательного монитора - это нормально, но, будучи крутым парнем, которым вы быстро становитесь, вы вероятно, хотите, чтобы он отображал показания на чем-то более
Список дел в реальном времени с использованием Google Firebase: 12 шагов
Список дел в реальном времени с помощью Google Firebase: привет! Мы все используем списки дел ежедневно, будь то онлайн или офлайн. В то время как автономные списки склонны теряться, а виртуальные списки могут быть потеряны, случайно удалены или даже забыты. Поэтому мы решили сделать его в Google Firebase