IoT измерение объема потока воды с помощью ESP8266 и датчика расхода воды


В этом проекте мы узнаем, как сделать счетчик расхода воды на основе технологии Интернета вещей (IoT) с использованием NodeMCU ESP8266 и датчика расхода воды. Мы подключим датчик расхода воды на основе эффекта Холла YFS201 к плате NodeMCU ESP8266 и отобразим расход воды и общий ее объем на 0,96-дюймовом OLED-дисплее. Затем мы интегрируем наше оборудование с сервером Интернета вещей. Для сервера Интернета вещей мы будем использовать приложение Thingspeak. Данные о расходе и объеме воды можно будет загрузить на сервер Thingspeak и просматривать/контролировать из любой точки мира.

Ранее на нашем сайте мы рассматривали подключение датчика расхода воды YFS201 к плате Arduino.

Система управления водными ресурсами является важной частью городского управления. Управление водными ресурсами подразумевает подачу воды в соответствии с реальными потребностями и без потерь воды. Поэтому очень важно измерять расход и объем воды. Без измерения этих параметров управление водными ресурсами практически невозможно. Также стало очень важным удаленное отслеживание объема воды, расхода и качества воды с использованием подключения к Интернету. Поэтому существует необходимость в мониторинге системы управления водными ресурсами онлайн.

На рынке представлено множество датчиков расхода воды, но они слишком дороги в использовании. А многим требуется недорогой расходомер воды. Поэтому мы будем использовать датчик расхода воды на эффекте Холла YFS201 с платой NodeMCU ESP8266 и спроектируем простой расходомер воды на основе IoT.

Необходимые компоненты

  1. NodeMCU ESP8266 (купить на AliExpress).
  2. Датчик расхода воды (water flow sensor) YF-S201 (купить на AliExpress).
  3. Модуль OLED дисплея SSD1306 128×64 с интерфейсом I2C (купить на AliExpress).
  4. Макетная плата.
  5. Соединительные провода/перемычки.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Датчик расхода воды на эффекте Холла YF-S201

Датчик расхода воды на эффекте Холла YF-S201

Это изображение датчика расхода воды на эффекте Холла YF-S201. Этот датчик можно подключить к водопроводу, поскольку у него есть как вход, так и выход. Внутри датчика находится вертушка, которая измеряет, сколько жидкости прошло через него. Имеется встроенный датчик магнитного эффекта Холла, который выдает электрический импульс при каждом обороте.

Внутреннее устройство датчика расхода воды YF-S201

Датчик поставляется с тремя проводами:
1. Красный (питание 5-24 В постоянного тока).
2. Черный (заземление).
3. Желтый (импульсный выход Холла).

Расход воды можно рассчитать, подсчитав импульсы на выходе датчика. Каждый импульс составляет примерно 2,25 миллилитра. Этот датчик дешевле и лучше, но не самый точный, поскольку расход/объем немного варьируются в зависимости от расхода, давления жидкости и ориентации датчика. Чтобы получить точность измерений более 10%, требуется много калибровки. Вы можете сделать базовый счетчик расхода воды на основе Интернета вещей, используя этот датчик.

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

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

В нашем проекте OLED-дисплей будет показывать расход воды и общий объем воды, прошедшей через трубу. Те же данные о расходе и объеме могут регулярно отправляться на сервер Thingspeak с интервалом в 15 секунд. Также вы можете переключиться на использование приложения Blynk, если вам нужны немедленные данные. Аналогично, используя протокол MQTT, можно добиться лучшей беспроводной связи.

Схема подключения датчика расхода воды YF-S201 к NodeMCU ESP8266 представлена на следующем рисунке.

Схема подключения датчика расхода воды YF-S201 к NodeMCU ESP8266

Датчик расхода воды — это цифровой датчик, поэтому мы можем подключить его выходной контакт к любому из цифровых контактов ESP8266. В моем случае я подключился к GPIO2 , т. е. D4 . Датчик работает при напряжении 5 В и может быть подключен к Vin ESP8266. Аналогично, контакты SDA и SCL I2C OLED-дисплея подключены к контактам D2 и D1 ESP8266 соответственно. OLED-дисплей работает при напряжении 3,3 В, поэтому его можно подключить к контакту 3,3 В Nodemcu.

Собранная на макетной плате конструкция проекта представлена на следующем рисунке.

Собранная на макетной плате конструкция расходомера воды

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

Печатная плата для проекта

Печатная плата для этого проекта была разработана в онлайн-инструменте для создания печатных плат EasyEDA. Ниже представлен вид спереди и вид сзади печатной платы.

Вид спереди и вид сзади печатной платы для нашего проекта расходомера воды

Файл Gerber для изготовления данной печатной платы вы можете скачать по следующей ссылке.

Математический расчет для измерения расхода и объема воды

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

Давайте рассмотрим Q — расход/общий расход воды через трубу, V — среднюю скорость, а A — площадь поперечного сечения трубы. В таком случае основное соотношение для определения расхода жидкости в таких случаях выглядит как Q=VxA

Частота датчика (Гц) = 7,5 * Q (литров/мин)
Литры = Q * прошедшее время (секунды) / 60 (секунды/минута)
Литры = (Частота (импульсы/секунду) / 7,5) * прошедшее время (секунды) / 60
Литры = Импульсы / (7,5 * 60)

Настройка Thingspeak

Теперь нам нужно настроить учетную запись Thingspeak. Чтобы настроить Thingspeak, выполните следующие шаги:

Главная страница сервиса Thingspeak

Шаг 1: Посетите https://thingspeak.com/ и создайте свою учетную запись, заполнив данные.

Шаг 2: Создайте новый канал, нажав “Channel” («Канал») и заполнив следующие данные, как показано на изображении ниже.

Создание нового канала на Thingspeak

Шаг 3: Нажмите на API Key, вы увидите «Write API Key». Скопируйте API Key. Это очень важно поскольку данный API ключ потребуется нам при написании кода программы.

Получение API ключа на Thingspeak

Шаг 4: Вы можете нажать “Private View” («Частный просмотр») и настроить окно отображения по своему усмотрению.

Исходный код программы

Теперь давайте посмотрим на код датчика расхода воды ESP8266 с использованием Arduino IDE. Код можно напрямую загрузить на плату NodeMCU. Но перед этим нам понадобится несколько библиотек для OLED-дисплея. Поэтому сначала загрузите библиотеки и добавьте их в Arduino IDE.

  1. Загрузить библиотеку SSD1306
  2. Загрузить библиотеку Adafruit GFX

Измените ключ API Thingspeak, SSID Wi-Fi и пароль в следующих строках.

Полный исходный код приведен ниже.

Мониторинг расхода и объема воды

После загрузки кода OLED-дисплей начнет работать и покажет расход и объем воды. Первоначально расход будет 0 литров/минуту (л/м). Также показанный общий объем будет 0 литров(л).

Подготовка к мониторингу расхода и объема воды

После включения двигателя и начала потока воды вы увидите на OLED-дисплее скорость потока (F) и объем (V).

Мониторинг расхода и объема воды

Теперь вы также можете отслеживать данные о расходе и объеме воды на сервере Thingspeak. Вам просто нужно посетить Private View (частный просмотр) в панели инструментов Thingspeak.

Тестирование работы проекта в панели инструментов Thingspeak

Видео, демонстрирующее работу проекта

Ссылка на видео на YouTube

(Проголосуй первым!)
Загрузка...
17 просмотров

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

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