Уроки по Ардуино, Raspberry Pi и радиоэлектронике

Умный датчик влажности с питанием от батареи и Wi-Fi

Нет комментариев

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

О проекте

В этом проекте мы создадим датчик влажности с монитором уровня заряда батареи менее чем за 30 минут. Устройство отслеживает уровень влажности и посылает данные на смартфон через Интернет (MQTT) с выбранным интервалом времени.

Используйте любое мобильное приложение MQTT для получения и визуализации данных.

Устройство питается от 2-x AAA батареек (или от одной AAA), если правильно сконфигурировано и может прослужить несколько лет. Оно подключается к Интернету через сеть Wi-Fi с помощью Wi-Fi модуля Things On Edge от Cricket, поэтому вам не нужен дополнительный IoT HUB.

Комплектующие

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

  1. Wi-Fi модуль от IOT Cricket (Things On Edge)
  2. Датчик влажности почвы
  3. Держатель батарей, AAA x 2
  4. Перемычки
  5. 6-контактная клеммная колодка
  6. Батареи AAA

Мы собираем вот такие детали:

Соединение компонентов

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

  • Подключите аккумулятор VCC / + (красный кабель) к порту BATT Cricket (ПРИМЕЧАНИЕ: модуль Cricket может питаться от батареек AA или AAA)
  • Подключите датчик VCC / + (зеленый кабель) к порту 3V3 Cricket (ПРИМЕЧАНИЕ: порт 3,3 В обеспечивает стабильное напряжение 3,3 В независимо от уровня напряжения батареи)
  • Подключите аналоговый сигнал AOUT датчика (желтый кабель) к порту IO2 Cricket (ПРИМЕЧАНИЕ: этот порт можно настроить как аналоговый сигнал. Данные будут отправлены на ваш смартфон)
  • Подключите датчик GND / (-) (синий кабель) к порту GND Cricket.
  • Подключите GND / (-) (черный кабель) батарей к тому же порту GND Cricket

Хорошо, мы собрали устройство.

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

Настройка устройства на портале для разработчиков

Настраиваем устройство на сайте Things On Edge Developer Portal - https://dev.thingsonedge.com. Конфигурация загружается Cricket через Интернет при подключении к вашему Wi-Fi (см. следующий шаг).

Для датчика влажности рекомендуется установить следующую конфигурацию:

  • Установите IO2 как аналоговый вход;
  • Сообщайте об уровне влажности каждые 2 часа - это позволит вашему устройству работать от 2 щелочных батареек AAA более 2 лет.

Откройте портал разработчика TOE в любом браузере на ПК или мобильном устройстве. Вы должны зарегистрироваться / войти на портал разработчика, чтобы активировать и настроить устройство в своей учетной записи. В противном случае устройство работать не будет.

После успешного входа / регистрации вам необходимо нажать «Добавить новое» устройство (англ. - Add new), чтобы активировать ваше устройство в системе. Вам необходимо использовать уникальный серийный номер, напечатанный на наклейке на обратной стороне Cricket.

Важно! Серийный номер следует хранить только для себя. Не делитесь этим ни с кем другим. Серийный номер - это личная учетная запись MQTT для связи между вашим устройством и смартфоном или любой другой интернет-службой. Другими словами, держите его в секрете, как ПИН-код кредитной карты.

Теперь вы можете настроить свое устройство.

Установите следующую конфигурацию:

  • RTC: ON
  • RTC Units: Seconds (будет изменено позже)
  • RTC Units Value: 30 (будет изменено позже)
  • IO2: Analog In
  • IO3: Off
  • Battery monitor: On
  • Battery divider: 0
  • Temperature sensor: Off
  • Force updates on - IO1 Wake Up: On (будет изменено позже)
  • Force updates on - RTC Wake Up: On (будет изменено позже)
  • Post Events: оставьте все пустым

После того, как вы настроили конфигурацию, нажмите кнопку «Сохранить» (англ. - Save).

Отлично! Теперь нам просто нужно подключить устройство к Интернету через сеть Wi-Fi.

Подключение к сети Wi-Fi (Интернет)

Через несколько шагов вы подключите ваше устройство к Интернету через вашу сеть Wi-Fi. Все, что вам нужно сделать, это активировать частную точку доступа Wi-Fi Cricket, а затем открыть личную веб-страницу для передачи учетных данных Wi-Fi сети. Пожалуйста, выполните следующие шаги:

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

После того, как светодиод загорелся, Cricket открыл частную точку доступа Wi-Fi. Подключитесь к точке с ноутбука или смартфона со следующими учетными данными:

SSID: toe_device
Пароль не требуется

После подключения откройте личную веб-страницу:

http://192.168.4.1/index.html
Внимание! Убедитесь, что светодиод все еще горит! Если он выключен, повторите шаги с самого начала.

Теперь вы можете передать свои сетевые учетные данные сети Wi-Fi и нажать кнопку ПОДКЛЮЧИТЬСЯ (CONNECT). Если вы правильно указали SSID и Пароль, то через несколько секунд устройство должно сообщить об этом, и светодиодный индикатор погаснет.

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

Использование клиента MQTT на мобильном телефоне

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

Модуль Cricket подключается через брокера MQTT Things On Edge с малой задержкой (mqtt.thingsonedge.com). Нам нужно проделать следующие шаги:

1. Настройте подключение к серверу со следующими данными:

Server / Broker IP address: mqtt.thingsonedge.com
Port number: 1883
Network protocol: TCP

2. Добавьте устройство, например, "Датчик влажности" (Moisture Sensor).

3. Перейдите к дополнительным (продвинутым) опциям (Advanced option):

Username: your_cricket_serial_number
Password: your_cricket_serial_number
Connect automatically: YES

4. Нажмите кнопку Create ("Создать")

5. Нажмите ADD PANEL

6. Выберите Line Graph

7. Установите детали для графика 1 (graph 1), чтобы считывать данные с датчика (из порта Cricket IO2):

Panel name: e.g. Moisture sensor
Topic for graph 1: /your_cricket_serial_number/io2
Show area: YES
Show points: YES

Отлично! Ваш датчик влажности уже работает и отправляет данные через Интернет на ваш смартфон.

Уровень заряда батареи можно отслеживать через MQTT в специальной теме:

/your_cricket_serial_number/batt

Оптимизация устройства для долгой работы

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

  1. просыпаться каждые несколько часов, например, 2 часа;
  2. отправлять данные в Интернет только при изменении значения датчика.

Откройте портал разработчиков TOE (https://dev.thingsonedge.com) и установите следующую конфигурацию:

  • TC: ON
  • RTC Units: Hours (отправлять данные только при изменении)
  • RTC Units Value: 2
  • IO2: Analog In
  • IO2 Analog Divider: 3
  • IO3: Off
  • Battery monitor: On
  • Battery divider: 3
  • Temperature sensor: Off
  • Force updates on - IO1 Wake Up: Off (отправлять данные только при изменении)
  • Force updates on - RTC Wake Up: Off (отправлять данные только при изменении)
  • Post Events: оставьте все пустым

Следим за уровнем заряда батареи

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

На практике он может отправлять 10000 сообщений в облако с помощью 2 щелочных батареек ААА и более 15000 при использовании литиевых батареек.

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

Значение батареи можно рассчитать следующим образом:

Vbatt = val * (3.5/256) * 2^Battery divider
  • Battery divider (делитель, см. в настройках),
  • val - это уровень заряда батареи, полученный от службы MQTT.

В примере 1,4 В указывает на низкий уровень заряда щелочной батареи и предлагается ее замена. Значение, сообщаемое через MQTT, равно 13.

Vbatt (V) = 13*3.5/256 * 8 = 1.42V

Минимальное значение для Cricket составляет 1,1 В.

Конфигурация аналогового входа IO2

  • IO2: Analog In
  • IO2 Analog Divider: 3

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

Аналогичным образом, аналоговое значение можно рассчитать по следующей формуле:

IO2 (V) = io2_val*3.5/256 * 2^IO2 Analog Divider

Аналоговый делитель на 3 обеспечивает разрешение прибл. 0,1 В.

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

Оригинал

Поделиться

Добавить комментарий

Ваш E-mail не будет никому виден. Обязательные поля отмечены *