Alternative firmware for BeePro scales
Продолжение проекта https://github.com/BeePro-scales/BeePro Новая печатная плата. Новая прошивка.
Отличия:
- Измерение веса было 1 раз в час, стало 1 раз в минуту.
- Отправка СМС было только в 20 часов, стало в любое время по нажатию кнопки.
- Разрешение было 100гр, сделано 10гр.
- Запись номера для СМС было только с компьютера, теперь комп не обязателен, можно звонком на весы.
- Время устанавливается автоматически, по времени по GSM сети и корректируется 1 раз в сутки.
- В порт 1 раз в минуту выводится JSON с результатами измерения. Можно подключить логгер.
Весы для пчеловодов.
- Весы предназначены для ежесуточного контроля привесов улья. Каждый день в 20 часов весы отправляют СМС на заранее заданный номер. В СМС содержится изменение веса за прошедшие сутки.
Управление весами осуществляется одной кнопкой. Удерживая её нажатой разное время можно переключать режимы работы весов. Индикация режимов осуществляется светодиодами разных цветов.
Для работы весов необходимо откалибровать вес и установить номер для отправки СМС. Установить номер можно двумя способами.
- Войти в режим настройки удерживая кнопку нажатой 15 сек, пока не начнёт мигать желтый светодиод. Когда жёлтый светодиод мигать перестанет и загорится постоянно, позвонить на номер СИМ карты с номера, на который должны приходить СМС. Номер сохранится в памяти.
- Подключить весы к компьютеру. Войти в режим настройки удерживая кнопку нажатой 15 сек, пока не начнёт мигать желтый светодиод. В появившемся меню выбрать пункт 1 и ввести номер с клавиатуры.
Короткое нажатие (не больше 1 сек) проверка состояния. После отпускания кнопки моргнёт зелёный светодиод - всё ОК Если моргнёт красный светодиод один раз - не задан номер для СМС. СМС отправляться не будут. В USB порт выводится информация о версии программы, номере для СМС, текущее время и т.д.
Удержание кнопки (~3 сек), пока не моргнёт зелёный светодиод. Попытка зарегистрироваться в сети и отправить СМС. Во время регистрации мигает зелёный светодиод. Если СМС отправлена успешно то весы перейдут в режим ожидания. Если СМС не отправлена, мигает красный светодиод:
- 1 раз - не задан номер СМС.
- 2 раза не установлена СИМ-карта.
- 3 раза не удаётся зарегистрироваться в сети. Слабый сигнал или полное отсутсвие сети.
Удержание кнопки (~10сек), пока не загорится синий светодиод. Весы переходят в режим калибровки. Предварительно платформа должна быть освобождена отгруза. Этот вес принимается за 0 кг. В течении 15 сек нужно положить на платформу груз весом 1 кг. Если калибровка прошла успешно то зелёный светодиод мигнёт 2 раза. Если калибровка не прошла 2 раза мигнёт красный светодиод.
Удержание кнопки ~15 сек, пока не загорится жёлтый светодиод переключает весы в режим настройки. Если весы подключены к компьютеру, то выбирая пункты меню можно задать номер для СМС, имя весов, протестировать все блоки, отправить СМС. Как подключить в компьютеру написано в разделе ниже. Если весы не подключены к компьютеру, то в этом режиме можно только установить номер для смс. При входе в этот режим весы пытаются подключиться к сети. В это время мигает желтый светодиод. Если желтый светодиод загорелся постоянно, весы подключены к сети и можно установить номер для отправки СМС. Для этого надо позвонить на весы с номера, на который должны отправляться СМС. Весы сбросят входящий звонок, а номер сохранят в памяти. Если номер сохранён, зелёный светодиод вспыхнет 2 раза. Если номер сохранить не получилось мигнёт красный.
Если жёлтый светодиод не загорелся в течении 30 секунд значит весы не смогли подключиться к сети. Причина неудачи отображается количеством вспышек красного светодиода.
- 2 раза не установлена СИМ-карта.
- 3 раза не удаётся зарегистрироваться в сети. Слабый сигнал или полное отсутсвие сети.
Это не обязательно, для работы компьютер не нужен. С компьютера можно изменять дополнительные параметры. Во время работы весов в порт выводится отладочная информация. Также, 1 раз в минуту в порт выводится строка в JSON формате содержащая время, вес, температуру и влажность. Можно подключить логгер.
Подключаются весы кабелем uUSB, в компьютере должен быть установлен драйвер CH340 и любая терминальная программа. Параметры подключения 9600, 8N1
Каждое измерение, 1 раз в минуту весы выводят в последовательный порт JSON строку с результатами измерений. Можно придумать много вариантов как использовать эти данные. Здесь описано как сделано у меня. Результаты измерений с весов передаются через WiFi по протколу MQTT. Поулчает данные скрипт на питоне и сохраняет их в базу данных Influxdb. Для отображения графиков используется Grafana. Естественно на пасеке должен быть WiFi. Где-то должен быть сервер, на который у вас есть доступ и где можно установить и настроить нужный софт. Это может быть настоящий или виртуальный сервер в инете, домашний комп или любой одноплатник. У меня всё сделано на Raspberry Pi который лежит у меня дома. Если вам хочется смотреть за привесами из любой точнки планеты, то сервер должен иметь доступ в интернет. Из программ на сервере должны быть установлены Mosquitto, Influxdb, Grafana, Python3 в питоне должны быть установлены пакеты paho.mqtt.client и inflixdb_client. Как их установить в интернете куча пошаговых руководств. Выбирайте любое.
Итак, 1 раз в минуту мы получаем строку с данными измерений в JSON формате. Вот так она выглядит.
Тут есть время, температура, влажность вес с термокомпенсацией и без, напряжение на аккумуляторе. Нам надо принять эти данные, передать на сервер, там сохранить в базу данных чтобы потом можно было отобразить их на графике. Для получения данных и передачи по Wifi сгодится любая плата с ESP32, ESP8266 тоже пойдёт. Скачиваем из папки Arduino скетч. Если надо отправлять по протоколу MQTT WiFi_to_MQTT.ino Если сразу писать в базу то WiFi_to_Influx.ino Запускаем Arduino IDE, исправляем имя и пароль для доступа к своему WiFi, адрес сервера, загружаем скетч в плату. Дальше подключаем плату к весам:
Минус питания ESP32 соединяем с точкой GND на плате весов. Плюс питания ESP32, до стабилизатора 3,3в, к точке TP6 на плате весов. Это не 3.3в, это напряжение с аккумулятора 4,2в. IO16 к точке TP23 весов. IO4 на вашей плате подключаем к затвору или mosfet, или базе NPN транзистора через резистор 1-10к, эмиттер или сток на землю, коллектор или исток к TP5 весов.
Если передаём по MQTT то можно зайти на сервер и проверить получает ли он данные. Подключаемся к MQTT брокеру. Если каждую минуту мы увидим там новую строку с данными от весов то всё работает. Топик выглядит как scale/123ABC Имя топика scale можно поменять в коде скетча. 123АВС это последние цифры MAC-адреса вашей ESP. Дальше JSON
строка.
Для сохраниения в базу скачиваем скрипт из папки Python в ваш домашний каталог на сервере. Настраиваем автозапуск добавив скрипт в crontab. Перезапускаем.
Если отправлям данные сразу в базу, то python не нужен.
Теперь каждую минуту в базе данных сохраняются данные с весов.
Какие графики и как рисовать настраивайте в Grafana сами. У меня получилось вот так
https://pchelovod.info/index.php?showtopic=84333&st=0
Можно купить готовый электронный блок. +7(927) 872-48-58 Telegramm/WhatsApp/Wiber.
Цена 50$ рублями РФ по курсу ЦБ.