Как создать умный счетчик воды на Arduino. Какие компоненты потребуются для сборки. Как настроить и запрограммировать устройство. Какие функции может выполнять умный водосчетчик. На что обратить внимание при монтаже и эксплуатации.
Зачем нужен умный счетчик воды на Arduino
Умный счетчик воды на базе Arduino позволяет автоматизировать процесс учета расхода воды и предоставляет ряд полезных функций:
- Автоматический сбор и передача показаний расхода воды
- Возможность удаленного мониторинга потребления воды
- Выявление утечек и нештатных ситуаций
- Анализ динамики расхода воды
- Автоматическое формирование отчетов
- Интеграция с системами умного дома
Такое устройство избавляет от необходимости ежемесячно снимать показания вручную и позволяет более эффективно контролировать расход воды.
Необходимые компоненты для сборки умного счетчика воды
Для создания умного счетчика воды на Arduino потребуются следующие компоненты:
- Arduino Nano или другая подходящая плата Arduino
- Датчик расхода воды с импульсным выходом
- Модуль беспроводной связи (WiFi, Bluetooth, LoRa и т.п.)
- Дисплей OLED 0.96″ I2C (опционально)
- Кнопки управления (опционально)
- Корпус для устройства
- Провода, резисторы, конденсаторы
- Источник питания (батарейки или блок питания)
Выбор конкретных компонентов зависит от требуемого функционала и условий эксплуатации устройства.

Схема подключения компонентов умного счетчика воды
Базовая схема подключения компонентов умного счетчика воды выглядит следующим образом:
- Датчик расхода подключается к цифровому входу Arduino для подсчета импульсов
- Модуль беспроводной связи подключается по UART или SPI интерфейсу
- Дисплей подключается по I2C интерфейсу
- Кнопки управления подключаются к цифровым входам Arduino
При сборке важно использовать подтягивающие резисторы для входов и защитные конденсаторы для стабилизации питания. Также рекомендуется использовать оптоизоляцию для развязки цепей счетчика и Arduino.
Программирование умного счетчика воды на Arduino
Основные этапы программирования умного счетчика воды на Arduino:
- Настройка прерываний для подсчета импульсов от датчика расхода
- Реализация алгоритма расчета объема потребленной воды
- Настройка беспроводного модуля для передачи данных
- Реализация пользовательского интерфейса (вывод на дисплей, обработка нажатий кнопок)
- Настройка режимов энергосбережения для автономной работы
Важно предусмотреть обработку ошибок и нештатных ситуаций, а также реализовать механизм сохранения данных в энергонезависимую память.

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

Интеграция умного счетчика воды с системами умного дома
Умный счетчик воды на Arduino можно интегрировать с различными системами умного дома для расширения его возможностей:
- Подключение к системе мониторинга и управления через MQTT протокол
- Интеграция с голосовыми помощниками для голосового управления и запросов
- Настройка автоматических сценариев и уведомлений при нештатных ситуациях
- Визуализация данных о расходе воды на графиках и в мобильных приложениях
- Совместная работа с другими датчиками для комплексного мониторинга
Интеграция позволяет создать единую экосистему для эффективного управления ресурсами в доме или квартире.
смотреть показания счетчика воды
Сегодня мы научимся выводить данные со счётчиков воды на свой телефон, планшет или компьютер используя WIFI модуль ESP8266. Я думаю, что вы не раз чертыхались снимая показания со счётчиков, ведь они расположены, мягко говоря, в не очень удобных местах. Но теперь достаточно включить свой телефон, открыть страницу в браузере и вы сразу увидите цифры. Для этого даже не надо идти к месту установки водосчётчиков, так как теперь это можно сделать удалённо используя свою домашнюю сеть.
Кстати – это уже второе видео про счётчики воды. В первом я рассказывал как вывести показания воды на дисплей и сохранять данные во внутренней памяти Ардуино. Но тот урок показался подписчикам довольно сложным и меня попросили сделать что-нибудь попроще.
Вот вариант попроще. Как говорится «Лень – двигатель прогресса».
Для работы нам понадобятся импульсные счётчики воды, то есть те из которых выходят 2 провода, а то что они болтаются без дела. И если эта тема вам интересна, то пишите в комментариях и я буду продолжать её усовершенствовать. Есть задумки что ещё можно сделать.
Принцип работы этого счётчика прост. При прохождении круга магнит замыкает контакты геркона и вот в этот момент мы и будем снимать показания со счётчика.
В принципе это обычная кнопка и работать мы будем с ней как с кнопкой. Примеры работы с кнопками можно посмотреть здесь.
Какие данные мы будем выводить.
Так как нам нужно сдавать только кубометры, то и выводить будем только их. Я их сделал побольше чтобы можно было легко увидеть. Так же я их сделал разными цветами. Горячая вода – Красный, холодная вода- Синий.
На счётчике это 5 цифр. Чтобы не перегружать память я сделал переменные типа int, поэтому можно выводить цифры от 0 до 65535.
Давайте сначала посмотрим как это всё работает.
Сначала надо открыть браузер и ввести IP адрес что был присвоен вашему модулю ESP. Как это сделать рассказано в предыдущем видеоуроке.
На экране отобразятся 2 счётчика и на обоих будут значения ноль.
Имитировать счётчик я буду замыкая провода на землю.
В скетче я прописал, что к выводу 2 будет подключен счётчик горячей воды, а к четвёртому я подключил холодный.
Ещё я в скетче прописал небольшую задержку при срабатывании. Это необходимо потому, что счётчик – это не кнопка, и нажатие происходит очень медленно и дребезг контактов здесь очень заметен.
Так же я сделал обновление страницы в браузере что бы видеть результат сразу на экране. В реальной жизни это можно убрать, так как цифры меняться будут очень редко и вы не будете держать свой телефон во включенном состоянии так долго.
Это мы с эмулировали подключение к новому счётчику, но у вас может быть уже установленный счётчик и вы захотите подключиться к нему.
Для этого я предусмотрел в скетче пару переменных которым можно задать начальные значения. И установив их, вы запустите счётчик не с нуля, а с этих значений.
Давайте например вставим такие значения. Я выбрал вот такие. Через пару кликов мы сможем увидеть как обновляются большие цифры. Сотни и тысячи.
Как видите всё работает.
Скетч для скачивания доступен Активным пользователям канала. Если вы хотите скачать этот скетч, то вам надо посмотреть полностью 5 последних видео и оставить под ними комментарии. Написать мне, и я вышлю ссылку на скетч.
Вот и закончилось ещё одно видео. У меня есть ещё огромные планы и интересные уроки. Так что подписывайтесь, и нажимайте колокольчик чтобы не пропустит. А пока вы можете посмотреть вот эти видео. В конце каждого видеоурока я даю ссылки на видео со схожей тематикой. И рекомендую их посмотреть.
Вот здесь показана схема соединения для прошивки кода. Как я говорил ранее, прошивать можно с помощью специального контроллера или с помощью Ардуино. Так как не у всех может быть контроллер поэтому мы будем использовать Ардуино.
RX Ардуино соединяем с RX на модуле
А TX с TX. То есть напрямую, а вот если прошивать с помощью контроллера, то соединять надо крест-накрест.
И при прошивке надо нулевой вывод модуля соединить с землёй. И обязательно до подачи питания. А после прошивки отсоединить нулевой контакт от земли. И делать это надо при отключенном питании.
Самое тяжёлое позади, теперь осталось просто подключить выводы от счётчика воды и подать питание на модуль. Выводы счётчика подключаются. Один вывод к контакту 2 для горячей воды, а другой контакт на земля. Для холодной воды. Один провод подключается к контакту 4, а другой к земле. Плата Ардуино при работе не нужна, так как модуль обеспечивает работу и без Ардуино.
Единственный минус этого скетча – это то что при отключении питания все данные не сохраняются и сбрасываются, поэтому надо обеспечить бесперебойное питание. В предыдущем примере про счётчики воды я использовал для хранения и считывания данных память EEPROM. Здесь же мы отказались от Ардуино. Если видео наберёт достаточно просмотров, то я сделаю следующее с сохранением данных на SD карту и тогда можно не волноваться об отключении питания и потерянных данных, а если подключить ещё и модуль времени, то можно провести статистические исследования когда больше всего расходуется вода. Так что когда будет продолжение зависит только от вас.
Счетчик воды импульсный датчик — MySensors
/*
* The MySensors Arduino library handles the wireless radio link and protocol
* between your home built sensors/actuators and HA controller of choice.
* The sensors forms a self healing radio network with optional repeaters. Each
* repeater and gateway builds a routing tables in EEPROM which keeps track of the
* network topology allowing messages to be routed to nodes.
*
* Created by Henrik Ekblad <[email protected]>
* Copyright (C) 2013-2019 Sensnology AB
* Full contributor list: https://github.com/mysensors/MySensors/graphs/contributors
*
* Documentation: http://www.mysensors.org
* Support Forum: http://forum.mysensors.org
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation.
*
*******************************
*
* REVISION HISTORY
* Version 1.0 — Henrik Ekblad
* Version 1.1 — GizMoCuz
*
* DESCRIPTION
* Use this sensor to measure volume and flow of your house water meter.
* You need to set the correct pulsefactor of your meter (pulses per m3).
* The sensor starts by fetching current volume reading from gateway (VAR 1).
* Reports both volume and flow back to gateway.
*
* Unfortunately millis() won’t increment when the Arduino is in
* sleepmode. So we cannot make this sensor sleep if we also want
* to calculate/report flow.
* http://www.mysensors.org/build/pulse_water
*/
// Enable debug prints to serial monitor
#define MY_DEBUG
// Enable and select radio type attached
#define MY_RADIO_RF24
//#define MY_RADIO_NRF5_ESB
//#define MY_RADIO_RFM69
//#define MY_RADIO_RFM95
#include <MySensors.h>
#define DIGITAL_INPUT_SENSOR 3 // The digital input you attached your sensor. (Only 2 and 3 generates interrupt!)
#define PULSE_FACTOR 1000 // Number of blinks per m3 of your meter (One rotation/liter)
#define SLEEP_MODE false // flowvalue can only be reported when sleep mode is false.
#define MAX_FLOW 40 // Max flow (l/min) value to report. This filters outliers.
#define CHILD_ID 1 // Id of the sensor child
uint32_t SEND_FREQUENCY =
30000; // Minimum time between send (in milliseconds). We don’t want to spam the gateway.
MyMessage flowMsg(CHILD_ID,V_FLOW);
MyMessage volumeMsg(CHILD_ID,V_VOLUME);
MyMessage lastCounterMsg(CHILD_ID,V_VAR1);
double ppl = ((double)PULSE_FACTOR)/1000; // Pulses per liter
volatile uint32_t pulseCount = 0;
volatile uint32_t lastBlink = 0;
volatile double flow = 0;
bool pcReceived = false;
uint32_t oldPulseCount = 0;
double oldflow = 0;
double oldvolume =0;
uint32_t lastSend =0;
uint32_t lastPulse =0;
#if defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32)
#define IRQ_HANDLER_ATTR ICACHE_RAM_ATTR
#else
#define IRQ_HANDLER_ATTR
#endif
void IRQ_HANDLER_ATTR onPulse()
{
if (!SLEEP_MODE) {
uint32_t newBlink = micros();
uint32_t interval = newBlink-lastBlink;
if (interval!=0) {
lastPulse = millis();
if (interval<500000L) {
// Sometimes we get interrupt on RISING, 500000 = 0.5 second debounce ( max 120 l/min)
return;
}
flow = (60000000.0 /interval) / ppl;
}
lastBlink = newBlink;
}
pulseCount++;
}
void setup()
{
// initialize our digital pins internal pullup resistor so one pulse switches from high to low (less distortion)
pinMode(DIGITAL_INPUT_SENSOR, INPUT_PULLUP);
pulseCount = oldPulseCount = 0;
// Fetch last known pulse count value from gw
request(CHILD_ID, V_VAR1);
lastSend = lastPulse = millis();
attachInterrupt(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), onPulse, FALLING);
}
void presentation()
{
// Send the sketch version information to the gateway and Controller
sendSketchInfo(«Water Meter», «1.1»);
// Register this device as Water flow sensor
present(CHILD_ID, S_WATER);
}
void loop()
{
uint32_t currentTime = millis();
// Only send values at a maximum frequency or woken up from sleep
if (SLEEP_MODE || (currentTime — lastSend > SEND_FREQUENCY)) {
lastSend=currentTime;
if (!pcReceived) {
//Last Pulsecount not yet received from controller, request it again
request(CHILD_ID, V_VAR1);
return;
}
if (!SLEEP_MODE && flow != oldflow) {
oldflow = flow;
Serial.print(«l/min:»);
Serial.println(flow);
// Check that we don’t get unreasonable large flow value.
// could happen when long wraps or false interrupt triggered
if (flow<((uint32_t)MAX_FLOW)) {
send(flowMsg.set(flow, 2)); // Send flow value to gw
}
}
// No Pulse count received in 2min
if(currentTime — lastPulse > 120000) {
flow = 0;
}
// Pulse count has changed
if ((pulseCount != oldPulseCount)||(!SLEEP_MODE)) {
oldPulseCount = pulseCount;
Serial.print(«pulsecount:»);
Serial.println(pulseCount);
send(lastCounterMsg.set(pulseCount)); // Send pulsecount value to gw in VAR1
double volume = ((double)pulseCount/((double)PULSE_FACTOR));
if ((volume != oldvolume)||(!SLEEP_MODE)) {
oldvolume = volume;
Serial.print(«volume:»);
Serial.println(volume, 3);
send(volumeMsg.set(volume, 3)); // Send volume value to gw
}
}
}
if (SLEEP_MODE) {
sleep(SEND_FREQUENCY, false);
}
}
void receive(const MyMessage &message)
{
if (message.getType()==V_VAR1) {
uint32_t gwPulseCount=message.getULong();
pulseCount += gwPulseCount;
flow=oldflow=0;
Serial.print(«Received last pulse count from gw:»);
Serial.println(pulseCount);
pcReceived = true;
}
}
Умный кран на Arduino (счетчик ресурса фильтра)
Ребята всем привет!
Я счастлив представить вам свой очередной проект. Это самый масштабный проект, который я вынашивал больше 5 лет и воплощал в жизнь несколько месяцев. Старался сделать все симпатичным, компактным и что самое главное полезным.
Те у кого есть фильтр на кухне наверное знают как мучительно стоять над чайником пока в него наберется вода. А если вы отвлеклись, то вам об этом скажет сосед с нижней квартиры. В общем мне это надоело и я стал думать над решением данной задачи.
Сначала была ардуина которая по времени наливала мне воду. Но такой вариант оказался не рабочим, так как вода течет не равномерно.
Обдумав все варианты начал закупать компоненты с Али. И искать кто бы мне мог написать прошивку. Прошло несколько лет пока все планеты сошлись и я познакомился с Игорем который и помог мне с написанием прошивки.
Но давайте обо всем по порядку. Сердцем нашего механизма стала Aruino pro mini. Она маленькая и очень хорошо поместилась в корпус. Так же немаловажной деталью стал небольшой счетчик который будет замерять литраж и ресурс нашего фильтра. А открывать воду буду с помощью электромагнитного клапана. В общем вот весь список компонентов которые я использовал.
Комплектующие которые я использовал
================================================================================================
☞ Ссылка на файлы — https://www.thingiverse.com/thing:4751509☞ Сенсорные кнопки — https://s.click.aliexpress.com/e/_AEwLZs
☞ Arduino pro mini 5V 16MHZ — https://s.click.aliexpress.com/e/_AAPimA
☞ Программатор с автоматическим сбросом — https://s.click.aliexpress.com/e/_AFvM0O
☞ Блок питания 5В 2.5А — https://s.click.aliexpress.com/e/_AWz5Gm
☞ Счетчик — https://s.click.aliexpress.com/e/_ALKJxy
☞ МОП-транзистор — https://s.click.aliexpress.com/e/_ADMKZ8
☞ Экран — http://ali.pub/5iyhv8
☞ Электромагнитный клапан — https://s.click.aliexpress.com/e/_A9DK7u
☞ Энкодер (Такой же как на видео. Маленький оказался без кнопки) — https://s.click.aliexpress.com/e/_A1XpuW ☞ DС-DС повышающий модуль — https://s.click.aliexpress.com/e/_9h71JY
☞ Пищалка — https://s.click.aliexpress.com/e/_AlTdnY
☞ Черный термоклей — https://s.click.aliexpress.com/e/_AMCjRu
☞ Нарезанные провода — https://s.click.aliexpress.com/e/_AnehEI
☞ Комплект клемм Xh3.54 — https://s.click.aliexpress.com/e/_9GLYMA
☞ Диоды HER105 — https://s.click.aliexpress.com/e/_A7g0NY
☞ Клеммы от которых я брал силиконовые насадки — https://s.click.aliexpress.com/e/_9uOVgE
☞ Фитинги 1/4 — https://s.click.aliexpress.com/e/_9wTIHY
Инструмент:
================================================================================================
☞ Лазер TWO TREES TOTEM S 40W — промо код (BG2RUV), $$259.99 — https://www.banggood.com/custlink/mGmEtgtyhA☞ Клещи для обжима Xh3.54 SM нужны (SN01BM) — https://s.click.aliexpress.com/e/_AU64UI
☞ Металлическая щетка — https://s.click.aliexpress.com/e/_A7ai8e
☞ Штангенциркуль — https://s.click.aliexpress.com/e/_APxwH0
☞ Медицинский зажим — https://s.click.aliexpress.com/e/_9HMnb0
☞ Макетная доска — http://ali.pub/5j5czn
☞ Пистолет для клея — https://s.click.aliexpress.com/e/_AU2ukO
☞ Набор пинцетов — https://s.click.aliexpress.com/e/_AEQSwi
☞ Инфракрасный термометр — https://s.click.aliexpress.com/e/_9xlbGK
☞ Бокорезы качественные и не дорогие — https://s.click.aliexpress.com/e/_9zJshY
☞ Фен для термоусадки — https://s.click.aliexpress.com/e/_9RgvNG
☞ Инструмент для затягивания стяжек — https://s.click.aliexpress.com/e/_ANXBt8
☞ Бита с магнитом — https://s.click.aliexpress.com/e/_AftrwW
Так же более наглядно я показал сборку на видео:
Ну, а перед тем как рассказать вам о сборке устройства давайте я покажу что оно умеет.
Так как у меня установлено два фильтра, то я использую два клапана и четыре кнопки. У кого фильтр один можно не устанавливать одну кнопку и все будет работать. Возможно немного позже я добавлю версию прошивки для одного фильтра, удалив лишние пункты из меню.
Кажется рассказал обо всех основных функциях. Наверное стоит только упоминать, что значения после каждого стакана не записываются в энергонезависимую память, так как она имеет ограниченный ресурс перезаписи. Значения остатка ресурса фильтров записываются в энергонезависимую память после того, как в сумме наберется 10 литров. Таким образом при отключении электричества мы не потеряем значение больше чем 10 литров и очень сильно продлим жизнь нашей ардуинке.
Сначала я все собрал на макетке и проверил работоспособность. Убедившийся что все работает. Стал думать какой корпус сделать чтобы было компактно, функционально и что самое главное красиво. Ну и немного герметично, все-таки мы работаем с водой, так что это не помешает.
Получился у меня минималистичный корпус как сказала жена «в твоем стиле». Думаю это вкусовщина и найдутся те кому нравится данный дизайн и наоборот так, что не стану заострят на этом внимание.
Печатал пластиком АБС от my3d.art немного позже расскажу почему именно он. После печати отшлифовал корпус на своей мини шлифовалке для напечатанных моделей, чтобы корпус стал монолитным и красивым.
После чего начал устанавливать компоненты в корпус и паять их по вот этой схеме.
Если вам будет что то не понятно или нужно понять какая кнопка за что отвечает пользуйтесь шпаргалкой которую для меня написал Игорь. (Немного эксклюзива) После сборки нашего пульта управления нам нужно его прошить. Это можно сделать многими способами, но мы пойдем по самому простому. Покупаем дешевый, но прекрасный программатор. Тут нужно решить для себя, припаять контакты к Ардуинке чтобы ее можно было прошивать в любой момент или прошить ее зажав прищепкой. Ссылка на нее тоже есть.Так как я делал отладку и прошивал свою ардуинку раз так 150, то я припаял провода. У вас уже финальная прошивка, так что можно не париться и не припаивать.
Дальше качаем архив с ПРОШИВКОЙ и БИБЛИОТЕКОЙ. Обратите внимание на то, что библиотека OLED_I2C НЕ СТАНДАРТНАЯ и ее обязательно нужно заменить, если она у вас уже есть. Иначе ничего не будет. Открываем Arduino IDE и во вкладке Инструменты выбираем нашу плату и программатор. Смотрите как у меня. Если вы новичок и прошиваете в первый раз через программатор, то при подключении программатора к плате обратите внимание на RX и TX при нормальном раскладе RX на программаторе подключается в TX на ардуине. Но часто китайци не правильно называют эти пины на программаторе. Если у вас не получается прошить, то первым делом меняйте эти контакты. Вот обычная распиновка для подключения.
DTR на программаторе может называться RST это нормально.
После прошивки нужно сделать корпус для блока питания, DC-DC повышающего модуля и МОП-транзисторов.
И так как там будет 220В я решил обезопаситься и напечатать корпус из самозатухающего пластика в видео которое выше, я наглядно показал как он работает. Этот корпус я тоже сделал с пружинкой (уж больно понравились мне такие механизмы). И вот что получил на выходе. Не знаю как вам, а я остался довольным внешним видом и технологичностью корпусов.
Из того что вам еще следует знать! Советую запаять диод между контактов реле иначе оно дает обратный ток. Я замерял и иногда получается выше 200 вольт. Не знаю настолько это полезно. По этому я запаял диоды. Полярность можете подсмотреть на фото.Ребят из за жесткой нехватки времени я эту статью писал неделю по несколько минут в день. Хотелось оформить красиво со всеми картинками и ссылками, чтобы вам было удобно. Но если я забыл написать о чем-то важном то не ругайтесь, а лучше спрашивайте в комментах. Так же подписывайтесь на ютуб канал. Впереди еще много всего интересного. Так что я с вами не прощаюсь скоро увидимся!
Как я воду дома считал. Первый прототип. — bobeg.ru
Достаточно давно меня привлекала Arduino и всё что с ней связано. Несколько лет назад прикупил UNO поигрался миганием светодиодов и прочими классическими примерами. Приобрел разные датчики, посмотрел как с ними работать, но всё это было как-то не то. Хотелось все-таки решить какую-то прикладную задачку. Пускай, может, высосанную из пальца, но прикладную. И вот при очередной передаче показаний счетчиков учета воды задача родилась!
Задача
- Используя Arduino, сделать доступным показания счетчиков учета воды через интернет.
- Все данные с устройства должны передаваться по радиоканалу.
- Устройство помещаемое в стояк должно быть энергонезависимым от электросети помещения.
- Данные по потреблению должны отображаться в виде графиков, с детализацией по часу в сутках/дням в месяце/месяцам в году.
- Данные о потреблении должны поступать каждые 30 секунд.
Что есть в наличие
Приборы учета воды с импульсными выходами, которые меняют значение с нуля на единицу каждые пол-литра.
Arduino Uno, Nano, радио модули nRF24L01+, Ethernet шилд и всякая мелочь.
В радиусе 20 метров от стояка маршрутизатор подключенный к интернету.
Процесс
Итак, задача в целом ясна. Как делать примерно, в общих чертах, тоже понятно.
Планирую сделать два железных узла («Передатчик показаний», «Приемник показаний и передатчик на сервер») и один виртуальный на базе существующего веб-сервера.
Сначала надо было научиться снимать показания счетчиков. Это не сложная задача. Подключение аналогично подключению кнопки (не забываем ставить сопротивление, что бы исключить неопределенность). Вешаем на два цифровых входа — один для показаний горячей воды, второй для холодной. А дальше считаем количество изменений состояния с «0» на «1» и обратно, а затем раз в 30 секунд обнулять после «отправки».
Следующий этап — разобраться с радио модулями и передачей данных. По-неопытности решил передавать полнотекстовые данные, а-ля xml или json. Но, спасибо знающим людям, объяснили, что такой подход крайне не эффективен в рамках моей задачи.
Основное ограничение — это размер пакета, который передаётся за один раз по радиоканалу. Для имеющегося чипа он может быть динамическим, но максимальный размер — 32 байта. Поэтому придумать передавать текст было, мягко говоря, глупо. Удобным способом формирования пакета является использование структур.
Для своего проекта я использовал следующую структуру:
struct SensorData { uint8_t node_id; // node id (номер передатчика - задел на будущее) 1 байт uint32_t packet_id; // id пакета (на всякий случай, что бы понимать были ли потерянные пакеты) 4 байта uint32_t timefromstart; // Время с момента запуска Arduino (целое значение в миллисекундах) 4 байта uint8_t tic_h; // Целое значение кол-ва тиков (смен с 0 на 1 или с 1 на 0) горячей воды 1 байт uint8_t tic_c; // Целое значение кол-ва тиков холодной воды 1 байт uint8_t vcc_h; // Целое значение напряжения (0 .. 255) 1 байт uint8_t vcc_l; // Дробное значение напряжения (2 знака) 1 байт SensorData() {} };
Таким образом все необходимые данные занимают всего 13 байт. И, как потом станет понятно, даже этот набор в общем-то избыточен.
Пакет сформирован, надо научиться его принимать. Настройка соединения между двумя модулями оказалась достаточно простой. Для разбора пакета надо всего лишь использовать эту же структуру. Очень удобно!
Теперь необходимо этот пакет передавать на сервер. Для этого пишем на сервере простейший API, который при запросе определенного URL добавляет данные из параметров URL в БД.
После написания API дописываем скетч для Ардуино, что бы полученный по радиоканалу пакет был передан в БД.
Пакет передан, копим данные и отображаем на графике.
Результат
Ура, первый прототип собран, схема работает!
Первый макет передатчика. Для удобства коммутации использовал шилд для Arduino Nano, к нему подключен nRF24L01+. Для подсоединения проводов от водосчетчиков использовал контактную площадку, к которой припаял клемники.
Приемник, который передает данные на сервер в интернете. На нижнем уровне Arduino UNO, на ней Ethernet Shield на базе Wiznet W5100, и на стяжке болтается радио-модуль nRF24L01+.
Вывод графиков на веб странице.
Дальше были испытания и наблюдения — сколько протянет прототип на батарейках? Оказалось совсем не долго. Всего-то 2.5 дня. Как выяснилось, беды две. Одна (но не главная) — не использование спящего режима. Вторая — обвязка Arduino, которая потребляет слишком много, по сравнению с самим микроконтроллером ATmega328.
В связи с этим будет второй прототип передатчика, который сможет долго жить на батарейках.
Счетчик импульсов Zigbee — Всё чем хочется поделиться…Всё чем хочется поделиться…
Практически все современные приборы учета имеют импульсный выход, счетчики воды, газа и т.д. Это позволяет организовать удаленное получение показаний и автоматизированную отправку этих данных в сбытовые компании.
Существует множество вариантов таких интерфейсов, как фабричных так и DIY. Очень интересный проект Waterius в котором реализована работа с различными типами устройств и передачей данных через WiFi. Часть этого устройства ответственного за подсчет импульсов я использовал для своего проекта. Устройство имеет два канала для счетчиков и канал для датчика протечки, предназначено для работы в сети zigbee, питается от двух элементов ААА.
Для подсчета импульсов применен микроконтроллер attiny85V (обратите внимание на индекс «V», эта модификация работает от 1,8 вольт). Работа возможна как со счетчиками с «сухими контактами», так и со счетчиками с интерфейсом НАМУР. Датчик протечки в виде двух контактов можно подключить к соответствующему разъему на плате, в прошивке реализован биндинг на это событие, т.е. можно напрямую управлять реле/приводом. За zigbee часть отвечает проверенный модуль E18-MS1-PCB.
На плате предусмотрено место для установки сенсоров DS18B20, BME280 и SHT30. Соответственно если не распаивать часть схемы отвечающую за подсчет импульсов, то плату можно так же использовать например как уличный термометр. Есть возможность использовать держатели ААА батарей с различной полярностью, для этого на плате есть перемычки, которые надо распаять в соответствии с имеющейся у вас моделью.
Плата разработана в EasyEDA и заказана в JLCPCB
Сборка не должна вызвать затруднений, после окончания пайки обязательно тщательно промыть плату, желательно в УЗ ванне. В качестве разъемов можно использовать не только зажимные, но и винтовые клеммы с шагом 2,54мм. или разъемы типа JST
Устройство в режиме счета и спящем модуле zigbee потребляет всего 7 мка.
Прошивку для устройства написал @aggsoft, автор конфигуратора PTVO. Загрузить прошивку в attiny85V можно различными способами, через arduino, USBasp или Pickit. Для этого на плате выведен интерфейс, прошивать с установленными элементами питания.
Правильно собранное устройство после регистрации в сети готово к эксплуатации. В SLS Gateway стройство выглядит так
Счетчикам можно прописать начальное значение вписав его в поле «Value», так же можно выставить интервал получения данных, выставляется в минутах. Так как модуль zigbee постоянно находится в глубоком сне, после изменения данных в течении 3 секунд его необходимо разбудить с помощью сервисной кнопки, чтобы он получил измененные значения.
В zigbee2mqtt устройство так же поддерживается через внешний конвертер, начальные значения счетчиков можно отправлять через MQTT в топик …./set/l5. Положительное значение изменит состояние счетчика, отрицательное изменит интервал отправки данных.Для изготовления корпуса устройства использовал набор сантехнических изделийВ качестве основы используется муфта для 32мм трубы.Корпус получился дешевым, герметичным и удобным для монтажа прямо на трубы в месте установки счетчиков.
Для желающих повторить, все необходимые файлы в архиве.
Устройство можно обсудить в профильном чате zigbee в телеграм.
Поделиться ссылкой:
Понравилось это:
Нравится Загрузка…
Подключение водосчетчика ITELMA к контроллеру
Дата: 2 Декабря 2013. Автор: Алексей
Все началось с проржавевшего полотенцесушителя. Прохудился, надо менять. Ну сказано, сделано. Сходил на рынок, купил, принес. Вызвал сантехника Васю. Тот заценил все это добро одним глазам и сказал что скоро придет. Через час вернулся с газовой горелкой, трубой, болгаркой и коллегой Федей. Часа три они оперировали заунитазье и наконец-то позвали меня. Вот мол те два крана, а дальше мол е…сь сам. С тем и ушли. Ну думаю, надо посмотреть в инете как че дальше делать. Один умный человек посоветовал сварить полипропиленовые трубы и ими соединить сушилку. В «ОБИ» мне помогли с выбором труб и разных уголков, муфт и сгонов. Все это добро я привез домой и начал варить. После удачно-неудачной сварки, сушилка оказалась на своем месте. Подал воду и начал радоваться. И вот тут у меня упал взгляд на два непонятных провода выходящих из водосчетчиков и аккуратно скрученных. О… Зачем водосчетчику провод? Явно он что-то может передавать. Если да, то что за протокол? Поиск в интернете был весьма быстрым. Я моментально нашел описание сего девайса. Протокол меня просто порадовал своей сложностью 🙂 А работает он так: 10 литров протекло, геркон замкнулся, разомкнулся. Единственное изменение которое присутствовало, ток это период замкнутого состояния. Длинна его зависела от скорости потока воды, ну или на сколько сильно открыт кран. Каждый месяц жена залезает туда для снятия показаний. И тут я решил облегчить ей эту задачу. Говорю мол сделаю я тебе такой девайс, который сам будет тикать с водосчетчиком и показывать данные на дисплей.
А вот они на фото.
Далее сел обдумывать алгоритм. Думал, думал и надумал.
1) Счет импульсов холодной и горячей воды берут на себя два внешних прерывания по спаду. То есть когда замкнулся геркон, то ждем момента его размыкания и бац, 10 литров прибавили. 2) Для ввода и корректировки данных, должны быть кнопки. а) Вход/выход режима настроек. б) Ввод данных (больше/меньше). в) Кнопка выбора холодная/горячая вода. г) Выбор разряда (нужно, так как их там 7). 3) Кнопка включения подсветки. Ну куда без нее :)Итого мы имеем два двойных клеммника для герконов и 6 кнопок. Вот такая у меня получилась схема. Жуть, да? На скорую руку етит…
Теперь картинки режимов.
Первый старт, счетчик по нулям. Буква «W» говорит о том что он в работе.
Жмакаем на кнопку «Коррекция» и входим в режим ввода данных. Буква «S» говорит о том что мы в режиме ввода данных, а буква «H» может сменится на «С» и означает горячая/холодная вода.
Жмакая по кнопке «Разряд» выбираем соответственно разряд. Для наглядности рядом с буквой «H» или «C» появится буковка.
e - единицы d - десятки s - сотни t - тысячи D - десятки тысяч S - сотни тысяч m - миллионы M - десятки миллионовКнопками «Коррекция +» и «Коррекция -« выставляем значения по счетчику для холодной и горячей воды.
Далее проделываем ту же работу с холодной водой поменяв текущее значение кнопкой «Горячая/Холодная». После ввода данных нажимаем на кнопку «Коррекция» для подтверждения водимых данных. Контроллер перейдет в режим работы о чем покажет буквой «W» и начнет считать расход воды.
Главное не забыть что данные выводятся до десяток. Единицы литров воды он не учитывает. То есть значения выводятся без крайнего правого разряда водосчетчика.
Кнопка «Подсветка» нужна для того чтобы включить или выключить подсветку. Но если все же после включения подсветки забыть ее выключить, она сама выключится через определенный промежуток времени. Период включения подсветки можно менять изменив значение переменной «t». Работа задержки проста. Пока выполняется условие if переменная увеличивается при каждом пробеге по программе. Это удобно тем что задержка есть, но при этом программа выполняется.
В железе я не реализовывал, так как хочу убрать дисплей, а передачу показаний замутить по RS-485 прям на комп и там смотреть. Так что если кто захочет сделать с дисплеем то милости просим. Проект для CodeVisionAVR и проект для Proteus можно скачать ниже.
Фьюз биты для ATmega8
Вот и все. Удачи!Внесены небольшие изменения в программу:
1 — Изменена визуализация ввода началных значений.
2 — Добавлен русский вариант для ЖК с кириллицей.
Проект для CodeVisionAVR
Проект для CodeVisionAVR с кириллицей
Проект для CodeVisionAVR с кириллицей и запятой
Проект для Proteus
Дмитрий 04.04.14
вдруг отключили электричество…и? значения не сохранились?
Алексей 04.04.14
Данные пишутся в EEPROM. Смотрите исходник, 41 строка.
Андрей 28.09.14
По хорошему на дисплей нужно выводить только целые кубы, платим ведь по кубам. Кстати, можно программно организовать тест «забитости грязевиков» Если мерить проход воды на время.
Алексей 28.09.14
Все в ваших руках 🙂 Пришлите мне на почту ваш вариант и я его опубликую.
[email protected] 02.03.15 14:24
Добрый день! Буду очень признателен если Вы поделитесь информацией по fuse-битам? Заранее благодарен! С уважением!
Александр 20.10.15 23:31
Добрый день!Как тактируется контроллер,нужен ли в схеме кварц? В исходнике есть о нем упоминание. Сброс, запитка контроллера? Удалось ли реализовать передачу показаний по RS-485?
Алексей 21.10.15 07:31
Александр, супруга сказала что такая приблуда ей не нужна. Поэтому все заглохло. Если использовать RS-485, то необходимо ставить кварц кратный битрейту. Например 7,3728 МГц. Питание подается по параллельной паре UTP. Протокол для передачи показания довольно простой, даем старт байт затем 4 байта данных и стоп байт. Вроде и все.
Павел 02.11.15 11:42
Алексей, добрый день! Прочитав Вашу статью я загорелся реализовать данный вариант считывания данных со счетчика и переноса их на дисплей. Сам работаю в ИТ, поэтому с программированием проблем возникнуть не должно, но вот с «железом» не связан никак, поэтому самостоятельно спаять схему не смогу. Скажите, может быть есть какие-либо варианты готовых схем? Например Arduino или что-нибудь в этом духе? Смотрел на сайте Чип и Дип — там миллион вариантов и готовых плат с контроллерами и кварцом и самих дисплеев, но как собрать всё воедино я просто не представляю. Можете что-нибудь порекомендовать? Заранее спасибо! Павел
Алексей 02.11.15 15:32
Сначала нужно решить на каком МК будет реализована схема. Например Если все делать с нуля, то можно пойти еще дальше и например использовать мою плату с STM32F030F4P6 + купить TFT дисплей ST7735. Оформить все это в красивом боксе и радовать глаз. Либо можно купить arduino mini и стерев загрузчик, просто залить прошивку скачав ее отсюда и так же пользоваться устройством. Тут важен не подход к готовой плате, а под какой МК есть желание писать программу. Та же Arduino это всего лишь ATmega8 и самописный загрузчик. Так что выбирайте МК, а я направлю куда лучше копать.
Павел 02.11.15 16:19
Алексей, спасибо большое за ответ! На самом деле для меня не очень принципиален сам МК, поскольку я и предполагал использовать именно Вашу прошивку (за нее Вам отдельное спасибо!). У меня проблема именно в том, чтобы собрать всё это. Поскольку, даже понимая идею и предназначение всего этого, я не имею никакого представления куда и что подключать и что с чем соединять. Поэтому, дабы уменьшить количество манипуляций со сборкой, я предполагал использовать Arduino Uno R3 на базе ATmega328, купив к нему дисплей, кнопки и источник питания. Спаять плату сам я точно не смогу. Скажите, такая комбинация подойдет для Вашей прошивки? Заранее спасибо!
Алексей 02.11.15 16:35
Подойдет. Но лучше mini. Там тот же МК, а плата меньше.
Павел 02.11.15 16:41
Я исходил из того, что Uno изначально имеет встроенный USB порт и разъем питания, чтобы опять же было меньше манипуляций со сборкой, размер платы также не имеет значения, поскольку места достаточно. Также в качестве кнопок я подобрал восьмикнопочную матрицу. Но как соединить это пока не представляю. Скажите, Вы сможете помочь рекомендациями по сборке?
Алексей 02.11.15 18:33
Ну из под Arduino я даже и не знаю, а вот если на чистый МК, то кнопки нужно посадить на один порт и опрашивать. Остальное как в статье. Вообще это целый проект и его нужно будет собирать полностью с нуля.
Павел 03.11.15 12:16
Алексей, приветствую! Скажите, а Вы готовы были бы взяться за такой проект? Если да, то может быть обсудим варианты нашего дальнейшего взаимодействия? Или, возможно, Вы могли бы мне кого-нибудь порекомендовать? Как с Вами можно связаться?
Алексей 03.11.15 17:18
Если в планах это коммерческий проект, то нужно разрабатывать плату с нуля.))) Если для себя, то какая нужна помощь?
Max 22.11.15 17:28
Собираю свой проект под четыре счетчика с LCD 4×20 в тестовом варианте.
Алексей 22.11.15 21:31
Это на 2 горячих и 2 холодных счетчика?
Max 27.11.15 10:04
2 на воду + газ + электро = 4
Алексей 27.11.15 14:12
А газ и электро тоже импульсные?
Max 27.11.15 14:35
Да
Алексей 27.11.15 15:27
Ну если они импульсные, то проблем не должно возникнуть.
СергейНикола 29.03.17 21:58
e — единицы
d — десятки
s — сотни
t — тысячи
D — десятки тысяч
S — сотни тысяч
m — миллионы
M — десятки миллионов
А чего курсор не включить-то было?
Алексей 29.03.17 22:13
Карты в руки. Я опубликую)))
Dgr 20.02.18 13:44
Грустная история…
Почему супруге не нужна то? Удобно ж. Я снимаю показания сам, но думаю сделать считывание и авто-отправку, промежуточными вариантами с дисплеями даже заморачиваться не хочу)
Золото поставщик 4-20 Ма Arduino воды расходомер ультразвуковой датчик массового расхода воздуха
Золото поставщик 4-20 Ма Arduino воды расходомер ультразвуковой датчик массового расхода воздуха
— Цены на dn15мм~dn700мм размер трубопровода, 4-20 Ма
описание продукта
UF2000 ультразвуковой датчик массового расхода воздуха было изготовлено из патентных технологий и оснащен больше функций и производительность по сравнению с предыдущими версиями. UF2000 датчика массового расхода воздуха включает в себя последние ICs, изготовленных из известных производителей полупроводников, такие как Philips, Максим, TI, Winbond и Xilinx он использует патента сбалансированное рабочее напряжение multi-pulse увлечь цепь, которая увеличивает помехоподавительный способность великолепно, с тем чтобы расходомера будет работать правильно даже в сложных промышленных условиях как с частотой сети питания transverter рабочей поблизости.
Вы получите от ультразвуковой расходомер ?
Функция | Преимущества | Преимущества |
Датчики — это Экономичные И Ненавязчивой | No Shutdown, Не Нужно сверлить И Нет Падения давления | Простота Установки. Техническое обслуживание не |
Несколько Типов Преобразователь Для Выбор | Размер трубы Из DN15мм Для DN6000мм | Подходит Для Широкого Диапазона измерения |
Большой ЖК- Дисплей С Расширенные возможности Обработки данных Функции | Отображает Мгновенный Расход, Накопленные Потока (положительный, Негативные И Net), Скорость, Рабочий Статус И т. Д. | Пользовательских интерфейсов в Пояснениях И Их Работы Простой И Легкий |
Он Использует Обычную Мощность, Встроенной Аккумуляторной батареи Питания постоянного или переменного тока И т. Д. | Встроенные Аккумуляторы Ni-MH Аккумулятора, Обеспечить Более 20 Часов Непрерывная Работа. | Низкое Энергопотребление , Высокая Надежность, Anti-заедания И Преимущества. |
Specificate Ультразвуковой расходомер
Пункты | Параметр | ||
Узел | Принцип | Время транзита Ультразвукового Датчика массового расхода воздуха | |
Точность | ± 1 % | ||
Дисплей | 2X20 Символ ЖК-дисплей С Подсветкой, Поддержки Языка Китайский, Английский И Италии | ||
Сигнал Выход | 1 Таким образом 4~20Ма Выход, Электрического Сопротивления 0~ 1K, Точность 0. 1% (опционально). | ||
1 Путь Октября Вывода импульса( Ширина импульса 6~1000ms, Значение по умолчанию — 200 мс) | |||
1 Выход реле | |||
Выход сигнала | 3 Ма 4~20 Input, Точность 0. 1%, Получение Сигнала Такие Как Температура, Нажмите кнопку И Уровень жидкости в бачке | ||
Подсоедините Датчик температуры Pt100, Может Закончить Тепла/энергии Измерения | |||
Интерфейс данных | Изолируйте Последовательный Интерфейс RS485, Обновление Датчик массового расхода воздуха Программное обеспечение С помощью Компьютера, Поддерживают Протокол MODBUS | ||
Специальный Кабель | Витая пара , Как правило, Длина 50 М ; Выберите RS485, Расстояние передачи Может Более 1000m | ||
Установка трубопровода Состояние | Материал трубопровода | Стали и Нержавеющей Стали, Чугуна , Меди, Цемент , ПВХ, Алюминий, Стекло Стальной Продукции, Гильза Не Допускается | |
Диаметр трубопровода | DN32~6000мм | ||
Прямая Труба | Установка датчика Должны Быть Удовлетворены: Верхнего10D, После 5D, 30D От Насоса | ||
Условия работы | Класс защиты | Хост: IP67; Датчик массового расхода воздуха: IP68 | |
Температура воздуха | Хост: -20~60; Датчик массового расхода воздуха: -30~ 160 | ||
Влажность | Хост: 85% относительной влажности; Датчик массового расхода воздуха: Можно Измерить Под Водой, Глубина воды^2m (tansducer Герметичный Клея) | ||
Источник Питания | Постоянного тока AC85~2648~36V или V | ||
Потребляемая мощность | 1.5W | ||
Размер | 132*150*85мм(host) |
Информация о заказе: Трубопровод размер: DN15~700мм , на выходе: 4-20 Ма
Оф2000 расходомер может быть практически на широкий диапазон измерений. Измеренное значение диапазоны трубопровода 15-6000мм. Поскольку щиток приборов и бесконтактные датчики и не имеют движущихся частей; Расходомер не может пострадать от давления в системе, загрязнен или износа.
1. вода, промышленные сточные воды, морской воды
2. кислот и щелочей жидкости
3. Различные масла
4. подачи и слива воды
5. Обнаружение водных ресурсов
6. нефтехимической
7. Питание и фармацевтической промышленности
8. электростанции
9. металлургических мин
10. Эксплуатация и техническое обслуживание судов
11. Мониторинг и управление водохозяйственной
12. Пресса о нас и pulping
13. Для обнаружения утечек
14. Реле погружных подогревателей
15. Изготовления насоса, бойлер, Система охлаждения двигателя в корпусе tower
16. Управление потоком и нагрейте, сетевой системы управления
17. Патруль, отслеживания и сбора потока
18. Измерение и баланс тепла
Наши услуги
OEM / ODM услуги
Для удовлетворения разнообразных требований, Holykell пользователя создали набор обслуживания клиентов и техническая поддержка системы с OEM / ODM порядка в качестве центра, и ответил и обработки требований заказчика своевременно обеспечить точный срок поставки и качества продукции.
Заказ услуг
Самый быстрый ответ: Профессиональных инженеров отдела продаж 7/24 online services
Условия оплаты: T/Т, Вестерн Юнион, Paypal и кредитные карты, л/с Другими
Быстрая доставка: В течение 24 часов освобождения груза (нормальный spec. ), Индивидуальные 7-12 дней после оплаты.
Техническое обслуживание и ПОСЛЕПРОДАЖНОГО ОБСЛУЖИВАНИЯ
обратная связь от клиента: Инженеров отдела продаж и технические специалисты будут один-на-один сервис для вас, чтобы исключить все препятствия на пути при использовании наших датчиков.
гарантийный срок — 18 месяцев
Техническое обслуживание на протяжении всей жизни продукта: Holykell может предоставить вам техническое обслуживание всей жизни датчиков
Информация о компании
Часто задаваемые вопросы
Как сделать заказ
1: Как долго вы дадите мне в ответ?
Мы свяжемся с вами в 30минут Как только мы можем.
2: Я хотел бы получить образцы?
Цена для трубопровода размер DN 50~700мм 4-20 Ма ультразвуковой расходомер, если вы хотите заказать другие спецификации, вы можете напрямую контакты, мы будем ответить вам 24 часа в Интернете.
3: Если я уделяла, когда вы мне помочь подготовить?
Когда мы получили деньги на наш счет, мы дадим вам о получении и организовать для производства сразу же
4: Как платить за это?
И мы могли бы согласиться с T/T, Paypal, WU, кредитные гарантии.
Вы получите полную защиту для ваших заказов , более подробная информация любезно нажмите торговли гарантии
Измерение расхода и объема воды с использованием Arduino в 2020 г.
Используя датчик расхода с микроконтроллером, таким как Arduino, мы можем рассчитать расход и проверить объем жидкости, прошедшей через трубу, и при необходимости контролировать его.
Применение датчика потока:
Помимо обрабатывающей промышленности, датчики потока также можно найти в:
· Сельское хозяйство,
· Пищевая промышленность,
· Управление водными ресурсами,
· горнодобывающая промышленность ,
· оборотное водоснабжение,
· кофеварки и т. Д.
Кроме того, датчик расхода воды станет хорошим дополнением к таким проектам, как автоматический дозатор воды и интеллектуальные системы орошения, где нам необходимо отслеживать и контролировать поток жидкостей.
В этом проекте мы собираемся построить датчик расхода воды с использованием Arduino . Мы подключим датчик расхода воды к Arduino и ЖК-дисплею и запрограммируем его на отображение объема воды, прошедшей через клапан. Для этого конкретного проекта мы собираемся использовать датчик расхода воды YF-S201 , который использует эффект Холла для измерения расхода жидкости.
YFS201 Датчик расхода водыДатчик имеет 3 провода КРАСНЫЙ, ЖЕЛТЫЙ и ЧЕРНЫЙ , как показано на рисунке ниже. Красный провод используется для подачи напряжения от 5 до 18 В, а черный провод подключается к земле. Желтый провод используется для вывода (импульсов), который может быть прочитан микроконтроллером. Датчик расхода воды состоит из вертушечного датчика, который измеряет количество жидкости, прошедшей через него.
Работа датчика потока воды YFS201 проста для понимания.Датчик расхода воды работает по принципу холла. Эффект Холла создает разность потенциалов в электрическом проводнике, когда магнитное поле прикладывается в направлении, перпендикулярном направлению потока тока. Датчик расхода воды интегрирован с магнитным датчиком Холла, который генерирует электрический импульс с каждым оборотом. Его конструкция такова, что датчик на эффекте Холла изолирован от воды и позволяет датчику оставаться безопасным и сухим.
Изображение только сенсорного модуля YFS201 показано ниже.
Для соединения с трубкой и датчиком расхода воды я использовал два соединителя с внутренней резьбой, как показано ниже.
В соответствии со спецификациями YFS201, максимальный потребляемый ток при 5 В составляет 15 мА, а рабочий расход от 1 до 30 л / мин. Когда жидкость протекает через датчик, она контактирует с ребрами турбинного колеса, которое находится на пути текущей жидкости. Вал турбинного колеса соединен с датчиком Холла.
Из-за этого всякий раз, когда вода проходит через клапан, он генерирует импульсы. Теперь все, что нам нужно сделать, это измерить время плюсов или подсчитать количество импульсов за 1 секунду, а затем рассчитать расход в литрах в час (л / час), а затем использовать простую формулу преобразования, чтобы найти объем воды, прошедшей через него. Для измерения импульсов мы будем использовать Arduino UNO. На рисунке ниже показана распиновка датчика расхода воды.
Подключения:
Подключение датчика расхода воды и ЖК-дисплея (16×2) к Arduino приведено ниже в виде таблицы.Обратите внимание, что потенциометр подключен между 5 В и GND, а контакт 2 потенциометра соединен с контактом V0 ЖК-дисплея.
Я использовал макетную плату, и после того, как соединение было выполнено в соответствии с принципиальной схемой, показанной выше, моя тестовая установка выглядела примерно так.
Датчик расхода воды Arduino РаботаетВ нашем проекте мы подключили датчик расхода воды к трубе. Если выходной клапан трубы закрыт, выходной сигнал датчика расхода воды равен нулю (нет импульсов). На выводе 2 Arduino не будет сигнала прерывания, и счетчик flow_frequency будет равен нулю.В этом состоянии код, который написан внутри цикла else, будет работать.
Если выходной клапан трубы открыт. Вода проходит через датчик, который, в свою очередь, вращает колесо внутри датчика. В этом состоянии мы можем наблюдать импульсы, которые генерируются датчиком. Эти импульсы будут действовать как сигнал прерывания для Arduino UNO. Для каждого сигнала прерывания (нарастающий фронт) счет переменной частоты потока будет увеличиваться на единицу. Текущее время и переменная Clop Time гарантируют, что каждую секунду значение частоты потока будет использоваться для расчета скорости потока и объема.После завершения расчета переменная частоты потока устанавливается на ноль, и вся процедура запускается с самого начала.
Полную версию работы также можно найти в видео, ссылка на которое находится внизу этой страницы. Надеюсь, вам понравился урок и что-то полезное. Если у вас возникли проблемы, оставьте их в разделе комментариев или воспользуйтесь нашим форумом, чтобы задать другие технические вопросы.
Создайте беспроводной водомер для вашего дома
В мире магии был Гудини, который первым изобрел трюки, которые используются до сих пор.А сжатие данных есть у Джейкоба Зива.
В 1977 году Зив, работая с Авраамом Лемпелем, опубликовал эквивалент книги Houdini on Magic : статья в IEEE Transactions on Information Theory под названием «Универсальный алгоритм последовательного сжатия данных». Алгоритм, описанный в статье, получил название LZ77 — от имен авторов в алфавитном порядке, и год. LZ77 не был первым алгоритмом сжатия без потерь, но он был первым, который мог творить чудеса за один шаг.
В следующем году оба исследователя выпустили уточнение LZ78. Этот алгоритм стал основой для программы сжатия Unix, используемой в начале 80-х; WinZip и Gzip, появившиеся в начале 90-х; и форматы изображений GIF и TIFF. Без этих алгоритмов мы, скорее всего, отправили бы по почте большие файлы данных на дисках вместо того, чтобы отправлять их через Интернет одним щелчком мыши, покупать нашу музыку на компакт-дисках вместо потоковой передачи и просматривать каналы Facebook, в которых нет движущихся анимированных изображений.
Зив продолжал сотрудничать с другими исследователями по другим инновациям в области сжатия.Именно его полная работа, охватывающая более полувека, принесла ему Почетная медаль IEEE 2021 «За фундаментальный вклад в теорию информации и технологию сжатия данных, а также за выдающееся лидерство в исследованиях».
Зив родился в 1931 году в семье русских иммигрантов в Тверии, городе, который тогда находился в управляемой британцами Палестине, а теперь является частью Израиля. Электричество и гаджеты — и многое другое — очаровывали его в детстве. Например, играя на скрипке, он придумал схему, как превратить свой пюпитр в лампу.Он также попытался построить передатчик Маркони из металлических частей фортепиано. Когда он подключил устройство, весь дом потемнел. Он так и не заставил этот передатчик работать.
Когда в 1948 году началась арабо-израильская война, Зив учился в средней школе. Призванный в Армию обороны Израиля, он недолгое время служил на передовой, пока группа матерей не провела организованные акции протеста, требуя отправить самых молодых солдат в другое место. Переназначение Зива привело его в израильские ВВС, где он прошел обучение на радарного техника.Когда война закончилась, он поступил в Технион — Израильский технологический институт, чтобы изучать электротехнику.
После получения степени магистра в 1955 году Зив вернулся в мир обороны, на этот раз присоединившись к Национальной исследовательской лаборатории обороны Израиля (ныне Rafael Advanced Defense Systems) для разработки электронных компонентов для использования в ракетах и других военных системах. Проблема заключалась в том, вспоминает Зив, что ни один из инженеров в группе, включая его самого, не обладал более чем базовым пониманием электроники.Их образование в области электротехники было больше сосредоточено на энергосистемах.
«У нас было около шести человек, и мы должны были учить себя сами, — говорит он. — Мы выбирали книгу, а затем вместе занимались, как религиозные евреи, изучающие еврейскую Библию. Этого было недостаточно».
Целью группы было создание телеметрической системы с использованием транзисторов вместо электронных ламп. Им нужны были не только знания, но и запчасти. Зив связался с Bell Telephone Laboratories и запросил бесплатный образец ее транзистора; компания отправила 100.
«Это покрыло наши потребности на несколько месяцев, — говорит он. — Я считаю, что первым в Израиле сделал что-то серьезное с транзистором».
В 1959 году Зив был выбран в качестве одного из немногих исследователей из оборонной лаборатории Израиля для обучения за границей. По его словам, эта программа изменила эволюцию науки в Израиле. Его организаторы не направляли отобранных молодых инженеров и ученых в определенные области. Вместо этого они позволяют им учиться в аспирантуре любого типа в любой западной стране.
«В то время для того, чтобы запустить компьютерную программу, нужно было использовать перфокарты, и я их ненавидел. Вот почему я не стал заниматься настоящей информатикой ».
Зив планировал продолжить работу в сфере связи, но его больше не интересовало только оборудование. Он недавно прочитал Теория информации (Прентис-Холл, 1953), одна из самых ранних книг по этой теме, написанная Стэнфордом Голдманом, и он решил сосредоточить внимание на теории информации. А где еще можно изучать теорию информации, кроме Массачусетского технологического института, где начинал пионер в этой области Клод Шеннон?
Зив прибыл в Кембридж, штат Массачусетс., в 1960 году. Исследование включало метод определения того, как кодировать и декодировать сообщения, отправляемые по зашумленному каналу, сводя к минимуму вероятность и ошибку и в то же время сохраняя простоту декодирования.
«Теория информации прекрасна, — говорит он. — Она говорит вам, что самое лучшее, что вы можете когда-либо достичь, и [она] говорит вам, как приблизиться к результату. наилучший возможный результат «.
Зив противопоставляет эту уверенность неопределенности алгоритма глубокого обучения.Может быть ясно, что алгоритм работает, но никто точно не знает, является ли это наилучшим возможным результатом.
Находясь в Массачусетском технологическом институте, Зив работал неполный рабочий день в оборонном подрядчике США. Melpar, где он работал над программным обеспечением для исправления ошибок. Он нашел эту работу менее красивой. «В то время для того, чтобы запустить компьютерную программу, нужно было использовать перфокарты, — вспоминает он. — И я их ненавидел. Вот почему я не углублялся в настоящую информатику».
Вернувшись в лабораторию оборонных исследований , проработав два года в США, Зив возглавил Департамент коммуникаций.Затем в 1970 году вместе с несколькими другими сотрудниками он поступил на факультет Техниона.
Там он встретил Авраама Лемпеля. Эти двое обсуждали попытки улучшить сжатие данных без потерь.
Современным уровнем сжатия данных без потерь в то время было кодирование Хаффмана. Этот подход начинается с поиска последовательностей битов в файле данных, а затем их сортировки по частоте, с которой они появляются. Затем кодировщик создает словарь, в котором наиболее распространенные последовательности представлены наименьшим числом битов.Это та же идея, что и в азбуке Морзе: самая частая буква в английском языке, e, представлена одной точкой, в то время как более редкие буквы имеют более сложные комбинации точек и тире.
Кодирование Хаффмана, которое до сих пор используется в формате сжатия MPEG-2 и в формате JPEG без потерь, имеет свои недостатки. Требуется два прохода через файл данных: один для вычисления статистических характеристик файла, а второй — для кодирования данных. А хранение словаря вместе с закодированными данными увеличивает размер сжатого файла.
Зив и Лемпель задавались вопросом, могут ли они разработать алгоритм сжатия данных без потерь, который работал бы с любыми типами данных, не требовал предварительной обработки и достигал бы наилучшего сжатия этих данных, цель, определяемая чем-то, известным как энтропия Шеннона. Было неясно, была ли вообще возможна их цель. Они решили выяснить.
Зив говорит, что они с Лемпелем «идеально подходили» для решения этого вопроса: «Я знал все о теории информации и статистике, а Абрахам хорошо разбирался в булевой алгебре и информатике.»
Эти двое пришли к идее, что алгоритм будет искать уникальные последовательности битов одновременно с сжатием данных, используя указатели для ссылки на ранее увиденные последовательности. Этот подход требует только одного прохода через файл, поэтому он быстрее, чем кодирование Хаффмана.
Зив объясняет это так: «Вы смотрите на входящие биты, чтобы найти самый длинный отрезок битов, для которого было совпадение в прошлом. Предположим, что первый входящий бит равен 1. Теперь, поскольку у вас есть только один бит, вы никогда не видели его в прошлом, поэтому у вас нет другого выбора, кроме как передать его как есть.»
«Но тогда вы получите еще один бит», — продолжает он. «Скажите, что это тоже 1. Итак, вы вводите в свой словарь 1-1. Скажем, следующий бит — 0. Итак, в вашем словаре теперь 1-1, а также 1-0 ».
Вот где появляется указатель. В следующий раз, когда поток битов включает 1-1 или 1-0, программное обеспечение не передает эти биты. Вместо этого он отправляет указатель на место, где эта последовательность впервые появилась, вместе с длиной совпадающей последовательности. Количество бит, которое вам нужно для этого указателя, очень мало.
«Теория информации прекрасна. Он говорит вам, что самое лучшее, что вы можете когда-либо достичь, и (он) говорит вам, как приблизиться к результату «.
«Это в основном то, что они делали при публикации TV Guide , — говорит Зив. — Они запускали синопсис каждой программы один раз. Если программа появлялась более одного раза, они не переиздали синопсис. Они просто сказали, вернитесь на страницу x ».
Декодирование таким способом еще проще, потому что декодеру не нужно идентифицировать уникальные последовательности.Вместо этого он находит расположение последовательностей, следуя указателям, а затем заменяет каждый указатель копией соответствующей последовательности.
Алгоритм делал все, что намеревались сделать Зив и Лемпель — он доказал, что возможно универсально оптимальное сжатие без потерь без предварительной обработки.
«В то время, когда они опубликовали свою работу, тот факт, что алгоритм был четким и элегантным и легко реализуемым с низкой вычислительной сложностью, был почти несущественным, — говорит Цачи Вайсман, профессор электротехники в Стэнфордском университете, специализирующийся на теории информации.«Это было больше о теоретическом результате».
В конце концов, однако, исследователи осознали практическое значение этого алгоритма, говорит Вайсман. «Сам алгоритм стал действительно полезным, когда наши технологии начали работать с файлами большего размера, превышающими 100 000 или даже миллион символов».
«Их история — это история о силе фундаментальных теоретических исследований, — добавляет Вайсман. — Вы можете получить теоретические результаты о том, что должно быть достижимо, и спустя десятилетия человечество получит выгоду от реализации алгоритмов, основанных на этих результатах.»
Зив и Лемпель продолжали работать над технологией, пытаясь приблизиться к энтропии для небольших файлов данных. Эта работа привела к созданию LZ78. Зив говорит, что LZ78 кажется похожим на LZ77, но на самом деле сильно отличается, потому что он предвосхищает следующее. «Допустим, первый бит равен 1, поэтому вы вводите в словарь два кода, 1-1 и 1-0, — объясняет он. Вы можете представить эти две последовательности как первые ветви дерева».
«Когда приходит второй бит, — говорит Зив, — если он равен 1, вы отправляете указатель на первый код, 1-1, а если он 0, вы указываете на другой код, 1-0.Затем вы расширяете словарь, добавляя еще две возможности к выбранной ветви дерева. Если вы будете делать это неоднократно, у последовательностей, которые появляются чаще, вырастут более длинные ветви «.
«Оказывается, — говорит он, — это был не только оптимальный [подход], но и настолько простой, что сразу стал полезным».
Джейкоб Зив (слева) и Абрахам Лемпель опубликовали алгоритмы сжатия данных без потерь в 1977 и 1978 годах, оба в IEEE Transactions on Information Theory.Эти методы стали известны как LZ77 и LZ78 и используются до сих пор. Фото: Джейкоб Зив / Технион
Пока Зив и Лемпель работали над LZ78, они оба были в творческом отпуске из Техниона и работали в компаниях США. Они знали, что их разработка будет коммерчески полезной, и хотели запатентовать ее.
«Я работал в Bell Labs, — вспоминает Зив, — поэтому я подумал, что патент должен принадлежать им. Но они сказали, что невозможно получить патент, если это не аппаратное обеспечение, и им было не интересно пытаться.»(Верховный суд США не открывал дверь для прямой патентной защиты программного обеспечения до 1980-х годов.)
Однако работодатель Lempel, Sperry Rand Corp., был готов попробовать. Она обошла ограничение на патенты на программное обеспечение, создав оборудование, реализующее алгоритм, и запатентовав это устройство. Сперри Рэнд последовал этому первому патенту с версией, адаптированной исследователем Терри Велчем, под названием алгоритм LZW. Наибольшее распространение получил вариант LZW.
Зив сожалеет о том, что не смог напрямую запатентовать LZ78, но, по его словам, «нам понравился тот факт, что [LZW] был очень популярен.Он сделал нас знаменитыми, и мы также получили удовольствие от исследований, к которым он нас привел «.
Одна из последующих концепций получила название сложности Лемпеля-Зива — меры количества уникальных подстрок, содержащихся в последовательности битов. Чем меньше уникальных подстрок, тем сильнее можно сжать последовательность.
Позднее эта мера стала использоваться для проверки безопасности кодов шифрования; если код действительно случайный, его нельзя сжать. Сложность Лемпеля-Зива также использовалась для анализа электроэнцефалограмм — записей электрической активности в головном мозге — для определить глубину анестезии, диагностировать депрессию и для других целей.Исследователи даже применили его для анализа популярных текстов песен, чтобы определить тенденции повторяемости.
За свою карьеру Зив опубликовал около 100 рецензируемых статей. Хотя работы 1977 и 1978 годов являются самыми известными, у теоретиков информации, пришедших после Зива, есть свои фавориты.
Для Шломо Шамаи, выдающегося профессора Техниона, статья 1976 года представила алгоритм Виннера-Зива, способ охарактеризовать пределы использования дополнительной информации, доступной декодеру, но не кодеру.Эта проблема возникает, например, в видеоприложениях, которые используют тот факт, что декодер уже расшифровал предыдущий кадр и, таким образом, его можно использовать в качестве дополнительной информации для кодирования следующего.
Для Винсента Пура, профессора электротехники в Принстонском университете, это статья 1969 года, в которой описывается граница Зива-Закая, способ узнать, получает ли сигнальный процессор наиболее точную информацию из данного сигнала.
Зив также вдохновил ряд ведущих экспертов по сжатию данных на занятиях, которые он преподавал в Технионе до 1985 года.Вайсман, бывший студент, говорит, что Зив «глубоко увлечен математической красотой сжатия как способа количественной оценки информации. Получение у него курса в 1999 году сыграло большую роль в том, что я встал на путь моих собственных исследований «.
Не только он был так вдохновлен. «Я взял у Зива уроки теории информации в 1979 году, в начале учебы в магистратуре, — говорит Шамай. — Прошло более 40 лет, а я до сих пор помню этот курс. Это заставило меня задуматься над этими проблемами. проводить исследования и получать докторскую степень.Д. »
В последние годы глаукома лишила Зива большую часть зрения. Он говорит, что статья, опубликованная в IEEE Transactions on Information Theory в январе этого года, является его последней. Ему 89 лет.
«Я начал писать статью два с половиной года назад, когда у меня еще было достаточно зрения, чтобы пользоваться компьютером, — говорит он. — В конце концов, Юваль Кассуто, младший преподаватель Техниона, завершил проект». В документе обсуждаются ситуации, в которых большие информационные файлы необходимо быстро передавать в удаленные базы данных.
Как объясняет Зив, такая потребность может возникнуть, когда врач хочет сравнить образец ДНК пациента с прошлыми образцами от того же пациента, чтобы определить, была ли мутация, или с библиотекой ДНК, чтобы определить, есть ли у пациента генетическое заболевание. Или исследователь, изучающий новый вирус, может захотеть сравнить его последовательность ДНК с базой данных ДНК известных вирусов.
«Проблема в том, что количество информации в образце ДНК огромно, — говорит Зив, — слишком много для того, чтобы сегодня по сети было отправлено сообщение за считанные часы или даже, иногда, за дни.Если вы, скажем, пытаетесь идентифицировать вирусы, которые очень быстро меняются во времени, это может занять слишком много времени ».
Подход, который описывают он и Кассуто, включает использование известных последовательностей, которые обычно появляются в базе данных, чтобы помочь сжимать новые данные, без предварительной проверки конкретного совпадения между новыми данными и известными последовательностями.
«Я действительно надеюсь, что это исследование может быть использовано в будущем», — говорит Зив. Если в его послужном списке есть какие-либо признаки, Кассуто-Зив — или, возможно, CZ21 — добавит к его наследию.
Эта статья появится в майском выпуске 2021 года под названием «Conjurer of Compression».
Умный счетчик воды для контроля за расходом воды
Рост потребления и потерь воды ведет к нехватке воды. Хотя большая часть населения не имеет безопасной питьевой воды, некоторые люди ежедневно потребляют много воды и тратят ее впустую.
Этот проект представляет собой интеллектуальный счетчик воды, который измеряет наше ежедневное потребление воды и передает данные в реальном времени на наш телефон, подключенный к базе данных, к которой соответствующие органы могут получить доступ через веб-браузер.
Некоторые компоненты, необходимые для проекта:
- Датчик расхода воды (рекомендуется FS400A).
- Arduino Pro Mini
- Bluetooth HC-05
- Программатор (адаптер Arduino Uno / FTDI USB-UART)
- Твердотельный накопитель на органических светодиодах 1306
- Водопроводная труба (размер в соответствии с входным диаметром расходомера)
- Соединитель водопроводного крана
Чтобы запустить проект, скачайте библиотеку расходомеров по ссылке. Разархивируйте папку FlowMeter-master и вставьте ее в папку библиотек Arduino IDE.После этого откройте файл multi.ino из папки FlowMeter-master и сохраните его как water_meter.ino.
Нам нужно включить в этот код некоторые дополнительные функции, добавив несколько библиотек и изменив код. Чтобы добавить библиотеки, нажмите «Управление библиотеками» (см. Рис. 1), найдите библиотеку OakOLED SSD 1306 и установите эту библиотеку, как показано на рис. 2.
Рис. 1: Шаги по добавлению библиотеки Arduino OLED 2: Установка библиотеки OLEDТеперь наша Arduino IDE готова. Приступим к кодированию.
Кодирование
Во-первых, нам нужно включить библиотеки в код water_meter.ino, как показано на рис. 3.
Рис. 3: Код Arduino с библиотекамиЗатем создайте обработчик прерывания для датчика, как показано на рис. 4.
Рис. 4: Обработчик прерывания ArduinoЗдесь мы настроили Bluetooth со скоростью передачи 9600 бод. Если эта скорость не работает, попробуйте установить скорость передачи по умолчанию на 4800.
Рис. 5: Настройка BluetoothТеперь настройте вывод данных, которые будут отправляться в Bluetooth через последовательный порт.print (данные для отправки), как показано на рис. 6.
Рис. 6: Печать данных на OLED-дисплей и отправка данных на модуль BluetoothИ, наконец, настройте OLED-дисплей с функцией oled.println (данные для отправки).
Мы закончили кодирование; А теперь давайте приступим к созданию приложения с помощью MIT App Inventor.
Разработка приложений для Android
Откройте MIT App Inventor, создайте макет и добавьте компоненты, как показано на рис. 7.
Рис. 7: Добавление компонентов в макет приложенияОсновные компоненты, добавленные в макет:
- 1 кнопка для базы данных
- 5 текстовых экранов для отображения состояния соединения Bluetooth, расхода воды на входе, общего объема потребляемой воды, расхода сточных вод и общего объема сточных вод.
- TinyWebDB
- Средство выбора списка для Bluetooth
- Клиент Bluetooth
- Таймер
Окончательный вид приложения показан на рис. 8.
Рис. 8: Макет приложенияТеперь перейдите в блок кода MIT и установите код, как показано на рис. 9. Сохраните этот код как smart_meter.aia и сгенерируйте его файл .apk. Этот файл .apk должен быть установлен на вашем смартфоне Android.
Рис. 9: Кодирование блоков кода приложения MITЗатем нам нужно загрузить код Arduino в Arduino Pro Mini.
Примечание. Arduino Pro Mini использовался в прототипе, чтобы сделать проект небольшим и легким; вы также можете использовать Arduino Uno для этого проекта. Код и соединения остаются одинаковыми для обоих.
Загрузка кода в Arduino Pro Mini
Сначала удалите микроконтроллер ATmega328 с платы Arduino Uno, как показано на рис. 10.
Рис. 10: Удаление микросхемы ATmega328 с платыПодключите Arduino Pro Mini к Arduino Uno согласно таблице 1.
Теперь перейдите в Инструменты, выберите Board as Arduino Pro Mini и загрузите код (water_meter.ino) в Arduino Pro Mini, как показано на рис. 11.
Рис. 11: Выбор платы в Arduino IDEЗатем нам нужно соединить все компоненты, чтобы сделать окончательный проект интеллектуального водомера.
Соединения выводов Arduino Pro Mini с компонентами приведены в таблице 2. Фактическая схема соединений выводов Arduino Pro Mini с компонентами показана на рис. 12.
Рис. 12: Схема подключения интеллектуального счетчика водыТеперь проверьте все соединения. Если все соединения в порядке, запитайте Arduino от источника питания 5 В постоянного тока.
Подсоедините трубку датчика воды к водопроводному крану или входному отверстию резервуара для воды. Вы можете увидеть общий объем воды и расход воды на OLED-дисплее. Затем установите файл smart_meter.apk на свое устройство Android. Затем откройте приложение smart_meter и нажмите значок Bluetooth.
Вы получите список Bluetooth-устройств, доступных рядом с вашим телефоном Android. Выберите HC-05 из списка, чтобы связать его. Код по умолчанию для сопряжения — 1234 (или может быть 0000 или 1111).
После подключения / сопряжения вы получите расход воды и объем воды, израсходованный в приложении на вашем телефоне, как показано на рис.13. Если есть проблемы с отображением или данные неверны, отключите Bluetooth и подключите его снова.
Рис. 13: Рабочая модель интеллектуального счетчика воды. Вы можете нажать на значок БД, чтобы загрузить данные об использовании воды на веб-сервер, чтобы их можно было увидеть из любого места через Интернет.
Примечание. Для загрузки данных на сервер необходимо включить подключение к Интернету Wi-Fi.
Теперь, чтобы получить данные, щелкните ссылку. Затем введите название вашего дома как дом 1, которое уже упоминалось в приложении.Нажмите кнопку «Получить значение», чтобы получить подробную информацию об использовании воды, как показано на рис. 14.
Рис. 14: Получение данных Ура! Мы сделали замечательное решение, которое может помочь нам контролировать потери воды.
Вы можете добавить дополнительный датчик потока к контакту 2 Arduino для получения данных о расходе воды на выходе из канализационной трубы. Он будет работать с тем же кодом и приложением. Итак, используйте два датчика (один для использования воды, а другой для сточных вод) и наслаждайтесь своим проектом.
Загрузить
Исходную папкуАшвини Кумар Синха, любитель электроники и технический журналист в EFYi
Gikfun Датчик расхода воды Датчик Холла Расходомер Счетчик расходомера 1-30 л / мин для Arduino (упаковка из 2 шт.) EK1457: Amazon.com: Industrial & Scientific
Ориентировочная общая стоимость: 28,57 долларов США , включая залог за доставку и импортные сборы в Российскую Федерацию Подробности
- Убедитесь, что это подходит введя номер вашей модели.
- Диапазон рабочего напряжения: 5-18 В постоянного тока
- Нагрузочная способность: <10 мА (5 В постоянного тока)
- Допустимое давление: давление 1,75 МПа
- В упаковке 2 шт.
- Диапазон расхода: 1-30 л / мин
Характеристики
Фирменное наименование | Gikfun |
---|---|
Ean | 0634894426617 |
Материал | Пластик |
Код UNSPSC | 41110000 |
UPC | 634894426617 |
Точный расходомер воды Arduino для точных измерений Выбор рекомендуемых поставщиков
Найдите наиболее подходящий. расходомер воды arduino от Alibaba.com для различных инженерных и промышленных целей. Эти предметы необходимы для измерения газов и жидкостей. Они помогают поддерживать запасы в наличии и используются в различных коммерческих контекстах для определения количества. Эти. расходомер воды arduino от надежных производителей и предназначен для обеспечения высочайшей точности измерений. расходомер воды arduino имеет различные виды датчиков, такие как циферблатные, линейные, ультразвуковые и суммирующие счетчики, среди многих других.расходомер воды arduino от Alibaba.com подходит для различных жидкостей с разным давлением и объемом. Их выбор зависит от того, будет ли измеряться объемный или массовый расход. Расходомер воды arduino , предлагаемый на сайте, имеет широкие диапазоны минимального и максимального давления, что считается желательным качеством, поскольку их можно использовать для более широкого спектра жидкостей. Эти. Расходомер воды Arduino отличается высокой точностью. Для обеспечения прозрачности предусмотрены различные измерения точности.
расходомер воды arduino доступен в одноразовом и многоразовом вариантах. Одноразовые варианты необходимы для определенных отраслей и типов использования, таких как поддержание гигиены пищевых продуктов. Эти. расходомер воды arduino может быть как механическим, так и основанным на давлении, и использовать различные методы измерения. расходомер воды arduino используется для измерения подачи воды в дома, а также для коммерческого использования и, таким образом, необходим для индивидуальные потребители и коммерческие предприятия.
Выбирал из ассортимента отлично. расходомер воды arduino на Alibaba.com и получите высокоточные измерения для вашего бюджета. Эти прочные и долговечные изделия имеют конкурентоспособные цены и идеально подходят для. расходомер воды arduino поставщиков, желающих купить оптом.
ec meter — DFR0300 — Gravity: аналоговый датчик электропроводности
Gravity: Аналоговый датчик / измеритель электропроводности V2 (K = 1) Обзор
DFRobot Gravity: аналоговый измеритель электропроводности V2 специально используется для измерения электропроводности водного раствора, а затем для оценки качества воды, что часто используется в водоводстве, аквакультуре, обнаружении воды в окружающей среде и других областях.Вы также можете ознакомиться с Руководством по выбору датчика жидкости, чтобы лучше ознакомиться с нашей серией датчиков жидкости.Этот прибор для измерения электропроводности, являющийся обновленной версией измерителя электропроводности V1, значительно повышает удобство работы пользователя и повышает точность данных. Он поддерживает входное напряжение 3 ~ 5 В и совместим с основной платой управления 5 В и 3,3 В; Выходной сигнал, отфильтрованный аппаратно, имеет низкий уровень дрожания; Источник возбуждения принимает сигнал переменного тока, что эффективно снижает эффект поляризации, повышает точность и продлевает срок службы зонда; Библиотека программного обеспечения использует метод двухточечной калибровки и может автоматически определять стандартный буферный раствор, что очень просто и удобно.
С помощью этого продукта, основной платы управления (например, Arduino) и библиотеки программного обеспечения вы можете быстро построить измеритель электропроводности, подключи и работай, без сварки. DFRobot предлагает широкий выбор датчиков качества воды, одинаковых размеров и интерфейсов, которые не только удовлетворяют потребности в различных испытаниях качества воды, но также подходят для самостоятельной сборки многопараметрических тестеров качества воды.
Электропроводность обратно пропорциональна сопротивлению, которое связано со способностью материала проводить ток.В жидкости проводимость, обратная сопротивлению, является мерой ее способности проводить электричество. Электропроводность — важный параметр качества воды. Он может отражать количество электролитов, присутствующих в воде.
Советы:
Для обеспечения точности измерения настоятельно рекомендуется добавить датчик температуры для измерения температуры и достижения автоматической температурной компенсации. Также можно использовать водонепроницаемый датчик температуры DS18B20.
Схема подключения Arduino
Измеритель EC с ESP32 и модулем DFRobot EC (DFR0300)
Внимание:
1.Зонд является зондом лабораторного класса. Не погружайте в жидкость надолго. В противном случае это сократит срок службы зонда.
2. Слой платинового черного прикрепляется к поверхности металлического листа в зонде. Следует избегать прикосновения к нему каких-либо предметов. Его можно мыть только дистиллированной водой, в противном случае слой платиновой черни будет поврежден, что приведет к неточным измерениям.
Автоматизация счетчиков воды — Hackster.io
Описание проектаЭтот проект о том, как создать автоматизацию IoT для счетчиков воды.Вы можете прочитать данные своего водомера, используя веб-доступ, через приложение Blynk на мобильном устройстве или по электронной почте.
Решение имеет два разных уровня: первый уровень содержит модуль, который считывает данные счетчика воды и отправляет их с помощью модуля передатчика на малое расстояние si4432 в модуль второго уровня. Каждый модуль первого уровня поддерживает до 2-х счетчиков воды. Предполагается, что данный модуль может полностью управлять одним вводом водоснабжения, в котором может быть два счетчика воды: горячей и холодной воды.Если у вас есть два или более независимых поставщика воды, вы можете установить еще один модуль первого уровня для каждого входа воды. В одном модуле второго уровня можно зарегистрировать до 5 модулей первого уровня. Модули первого уровня работают от двух батареек AA и требуют замены батарей каждые 6 месяцев.
Модуль второго уровня на базе микроконтроллера ESP8266 с поддержкой Wi-Fi, который должен быть подключен к Интернету для отправки данных через Blynk или по электронной почте. Этот модуль также имеет приемник si4432 для приема данных от модулей первого уровня.Для модуля второго уровня требуется внешняя розетка, но его можно отключить на некоторое время. Данные водомеров хранятся в модулях первого уровня.
Модуль первого уровняНачнем с модуля первого уровня. Этот контроллер основан на микроконтроллере ATmega328P-PU, который работает на внутреннем генераторе 8 МГц. В основном этот микроконтроллер остается в спящем режиме для экономии заряда батареи. Он просыпается, проверяет состояние двух датчиков водомера и отправляет фактические данные водомера на второй уровень
Здесь вы должны понять, как работает счетчик воды.В моем варианте водомера внутри есть геркон. Когда последняя цифра водомера становится равной нулю (0), геркон замыкается и сопротивление между проводами становится равным 0. Когда последняя цифра превышает 3 или около того, герконовый переключатель размыкается. Модуль первого уровня периодически считывает состояние геркона водомера и увеличивает внутренний счетчик в соответствии с состоянием геркона. Само собой, модуль первого уровня ничего не знает о начальных показаниях водомера, он считает только «замыкания геркона».Этот модуль передает эту подсчитанную сумму модулю второго уровня. Чтобы различать модули первого уровня, каждый из них должен иметь уникальный идентификатор. Вы должны изменить этот ID внутри скетча, загруженного в этот модуль.
Схема преобразователя
Кнопка модуля первого уровня используется для обнуления счетчиков счетчиков воды. Если вы замените счетчик воды, вы можете сбросить эти данные. Но в этом нет необходимости, как вы увидите в следующем разделе.
Модуль второго уровняМодуль второго уровня основан на микроконтроллере ESP8266.Он компактен и может быть помещен в старый внешний блок питания, который будет подключен к розетке.
Этот модуль прослушивает данные водомера от модуля первого уровня, управляет этими данными и отправляет их через Интернет или запросы Blynk.
Микроконтроллер ESP8266-12E имеет 4 МБ флэш-данных, которые разделены на 2 части 1M + 3M. Последний должен быть отформатирован для хранения файловой системы. Здесь данные конфигурации хранятся в файлах .json. Вы можете предварительно загрузить некоторые данные конфигурации для вашего контроллера, если хотите (см. config.json в каталоге данных) или вы можете ввести всю конфигурацию через веб-интерфейс модуля второго уровня.
Когда запускается модуль второго уровня, он пытается найти файл конфигурации. Если файл конфигурации не найден в файловой системе, модуль активирует точку доступа «esp8266-wm». Вы можете подключиться к этой точке доступа и указать в браузере адрес 192.168.4.1. Параметры конфигурации можно ввести на странице настройки сети:
Здесь необходимо ввести следующие данные:
- Wifi SSID — SSID вашей точки доступа для доступа в Интернет.
- Blynk Auth key — этот дополнительный ключ должен быть получен на сайте Blynk.
- Имя NTP-сервера — имя вашего ближайшего NTP-сервера для получения точных данных о времени по протоколу NTP, а не MS Windows!
- Разница в часах по Гринвичу в минутах — разница в часах между вами и Гринвичем в минутах. В этом примере 180 — это 3 часа для Москвы, Россия.
К этой странице можно будет получить доступ в любое время позже через веб-интерфейс модуля второго уровня.
Если файл конфигурации найден, модуль второго уровня пытается подключиться к точке доступа, которую вы ввели на предыдущей странице.Если модулю не удалось подключиться к точке доступа в течение 5 минут, он снова переходит в режим точки доступа, позволяя исправить введенные данные.
Если файл конфигурации существует и он правильный, модуль второго уровня переходит в основной рабочий режим. Он запускает внутренний веб-сервер для ответа на ваши запросы и подключается к службе Blynk. Если ваша точка доступа будет отключена на какое-то время или потеряна связь с облаком Blynk, модуль будет пытаться подключиться к ним навсегда. Чтобы перенастроить модуль для другой точки доступа, отключите модуль от розетки, снова подключите его и подождите 5 минут.
Если вы подключаетесь к модулю второго уровня в основном режиме, вы должны увидеть главную страницу. Здесь вы можете увидеть главное меню в верхней строке экрана и зарегистрированные данные водомера в основной части экрана. Подробную информацию о счетчике воды можно получить, щелкнув его название местоположения.
Примечание. Модуль второго уровня прослушивает все модули первого уровня и сохраняет их данные. Просто подождите одну минуту, когда в модуль будут загружены первые данные.
Но сначала нужно зарегистрировать счетчики воды.Чтобы зарегистрировать новый счетчик воды, выберите меню «Настройка». Для каждого модуля первого уровня вы можете указать его местонахождение, серийные номера его счетчиков воды, фактические данные счетчика воды, время следующей проверки счетчика воды и самый сложный — размер фракции счетчиков воды.
Как было сказано ранее, модули первого уровня учитывают замыкания герконового переключателя. Каждое сокращение на оборот последней цифры. Размер дроби — это номер цифры в счетчике воды, которая используется как рассчитанная доля кубического метра.
В моем случае на картинке видно, что после десятичной точки стоят 3 цифры (в России запятая). Но, как я уже сказал, мы считаем число всего витка последней цифры, поэтому на странице конфигурации мы должны указать 2 как размер дроби.
Страница настройки контроллера первого уровня
Как только модуль первого уровня запомнит количество оборотов последней цифры, вы должны ввести фактические данные счетчика воды для каждого счетчика воды в первый раз.
Также вы можете настроить уведомления по электронной почте для этой системы.Войдите на страницу уведомлений.
Здесь вы можете ввести данные smtp-сервера: имя, порт, имя пользователя и пароль. Также необходимо ввести адрес получателя электронной почты.
Модуль второго уровня может отправлять следующие уведомления:
- Периодические уведомления о данных счетчика воды (если включено)
- Предупреждение о проверке счетчика воды. Вы можете установить количество дней, в которые запускается это уведомление.