SIM800

Smart apiary
SIM800L & ESP32

Умная пасека на базе ESP32 и SIM80

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

Устройство предназначено для дистанционного получения информации через SMS сообщения мобильной связи. Также устройство позволяет приблизиться к улью на расстояние 10-20 метров, активировать Wi-Fi и подключиться к точке доступа, чтобы получить необходимую информацию, в том числе историю показаний датчиков на графиках или изменить настройки. Кроме того Устройство может работать в локальной сети, но для этого необходимо внести и имя лоальной сети и пароль в скетч и перепрограммировать ESP32.

Схема

ESP32

rarESP32_bee (V7.2) - все в одном архиве 642 kb.

 

Некоторые особенности

Для спящего режима в схему добавлены два соединения от sim800 RING и DTR.

Обратите вниамние, что аналоговые входы не работают во время работы WI-FI. Мне пришлось переместить подпрограмму измерения напряжения в другое место "loop".

Можно позвонить на SIM 800, к которому подключен микрофон, и услышать, что происходит вокруг.

В схеме использовано два преобразователя напряжения для раздельного питания ESP32 и SIM800. Для экономии можно использовать один преобразователь и установить на нем 5 вольт, а через последовательно подключенные гасящие диоды подключить питание SIM800. Один диод на себе образует падение напряжения 0,5-0,7в, в зависимости от типа.

Если у вас аккумулятор, не на 12 вольт, то номиналы сопротивлений R4,R5 должны быть другими, чтобы на вход 39-контакта ESP32 подавалось не более 3 в.

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

К разъемам CON1 и CON2 можно подключить "Пусковой таймер" для экономичного режима питания системы.

Элементы html страницы

 
html

видео: https://youtu.be/MDR0Pn4AruI
https://youtu.be/SxO0Zxi0qAU


1 - установка периода опроса датчиков
2 - время (сек) до следующего опроса
3 - экран
4 - выбор датчика
5 - индикатор выбранного датчика с тремя зонами наблюдения: зеленой, желтой и красной
6 - окна настройки шкалы наблюдений: минимум, граница зеленой зоны, граница желтой зоны и максимум
7 - кнопка открыть/закрыть настройки
8 - максимальное напряжение питания
9 - индикатор напряжения питания
10 - текущее напряжение питания
11 - загрузить настройки с SD card
12 - запись измерений на SD card
13 - записать на SD текущие настройки
14 - открыть/закрыть окно тестирования
15 - открыть/закрыть окно терминала
16 - для работы с SD card
17 - кнопка "передать значения датчиков". Передаются на экран значения каналов, установленных ползунками в окне тестирования
18 - кнопка "обновить" для обновления контрольных параметров при отладке программы
19 - кнопка "тестировать" для вывода на экран случайных данных всех 4х каналов по всему временному интервалу
20 - ползунки каналов действуют в установленных в настройках диапазонах
21 - кнопка обнуления весов, используется при подключении HX711.
22 - индикатор пониженного напряжения питания

 

Каждый сенсор имеет график своего цвета. У сенсора веса график коричневый и его шкала называется HX711. (Название можно поменять в скетче). Чтобы поменять шкалу сенсоров надо нажать на кнопку справа от шкалы (7). Цвет этой кнопки совпадает с цветом графика этой шкалы.
После нажатия на эту кнопку, открываются поля для настройки шкал. Шкалы ты можешь настраивать по своему усмотрению при «manual setting» (4а). При этом поле «min» указывает нижний диапазон для графика этой шкалы, то есть для тебя это может быть вес тары.
Поле, помеченное зеленым маркером, устанавливают границу для наблюдений, чтобы видеть текущее состояние датчика в рабочем режиме. Это поле ты можешь использовать для сравнения с предыдущим периодом измерений. Например 1 числа вес был 7 кг. Ты установил границу на 7 кг и смотришь как меняется вес по дням. При этом отсчеты со значениями буду находиться в районе желтой зоны. Поле, помеченное желтым маркером устанавливает границу между между желтой и красной зоной, которую можно использовать, чтобы отслеживать критическое значение веса. Установка этих значений ни как не влияют на сами измерения, а только на формирования графиков.
Поле «max» устанавливает верхнюю границу отображения графика и позволяет лучше рассмотреть мелкие колебания измерений.
Можно сказать так, меняя «min» и «max», ты как бы регулируешь лупу (увеличительное стекло) для построения графика выбранной шкалы. 

Вы можете нажать кнопку " для теста "в верхнем меню и использовать движок выбранной шкалы (он имеет тот же цвет), чтобы увидеть реакцию на самой шкале, а если нажать кнопку "Передать" (17), то значения ползунков (20) будут отображаться на графике

Таймеры

В проекте реализованы два таймера: один на html странице, второй в микроконтроллере. Первый, назовем его WEB timer, задает период опроса сенсоров системы и ее состяния, второй, это таймер ESP32, позволяющий осуществлять режим записи измерений на SD card в автономном режиме, то есть, без управления от html страницы.

Период опроса датчиков передается в систему при ее загрузке или перезагрузке, или с html страницы при каждом Get запросе измерений. Период опроса ESP таймера всегда устанавливается на 1-5 сек больше Web таймера для исключения накладок.

Контроль напряжения

Элементы интерфейса 8, 9, 10 и 22 предназначены для контроля за напряжением питания системы. Следует знать, что минимальный порог напряжения вычисляется, исходя из установленного максимального напряжения аккумулятора: 0.7 * Vmax [8]. Так, если Vmax установлен 15, то система среагирует на авариную ситуацию при напряжении батареи 15*0.7 = 10.5 вольт. При этом на экране появится красный индикатор [22]. Одновременно с эти будет передано SMS сообщение на активный номер телефона (номер последнего звонка).

Чтобы изменить порог срабатывания, достаточно изменить Vmax [8]. Если Vmax установить равным 16, то при напряжении батареи 11.2в система отработает аварийное оповещение: SMS и индикатор [22].

setup

Панель SETUP (настройки)

Панель разделена на три зоны:
- After power (после включения)

Включать WiFi
Единицы измерения атмосферного давления

Выбор сети

Станцией можно управлять через WIFI точку доступа (Access Point) и через мобильную связь (SMS сообщения).
При подключении питания станция автоматически запускается и устанавливает настройки, записанные ранее (кнопка [13]. Чтобы изменить настройки или просто проверить работоспособность станции, можно приблизиться со смартфоном к станции (ближе 50м), найти WiFi сеть ESP32-Access-Point и ввести пароль 123456789 (в скетче название сети и пароль можно поменять).
Далее открыть в смартфоне браузер и набрать адрес 192.168.4.1 - должна загрузиться и отобразиться страницв станции.

- SMS alert (тревожные SMS)
Устанавливаются границы допустимого диапазона измерений. Могут устанавливаться автоматически при изменении диапазоновна рабочей панели min.
При отклонении измерений от заданных пределов будут сформированы и переданы SMS сообщения на последний зарегистрированный номер клиента.
- SMS by time (расписание передачи измерений)
Назначается время передачи измерений для ежесуточного контроля
В назначенное время клиенту будет послана SMS с полной информацией.
Ежедневные отчеты можно получать независимо от того, разрешена ли запись на SD или нет.

setup

Панель files

Максимально в файл на SD card записывается по 300 измерений, после чего формируется новый файл.

Панель работы с файлами, записанными на SD card:
- Кнопка "Dir file (1)"

При нажатии на кнопку (1) в окне с текстовым форматом (2) распечатывается директория SD диска с отображением размеров файлов.
- Выбор файла

Выбрать в окне (2) файл интересующего периода. В названии файла указана дата и время начала записи climat/yy/mm/dd_hh.txt

yy - год

mm - месяц

dd - день

hh - час начала записи

Выделить и скопировать путь к файлу и вставить в поле выбора файла (3).

Нажать на кнопку Ok (4).

setup

Работа с архивными записями

После нажатия кнопки Ok (4) потребуется некоторое время для построения графиков измерений в окне внутреннего монитора (5).

Передвигая визир с информационном окном (6) можно оценить измерения в нужный момент времени.

SMS команды модуля SIM800

Способ связи и управления через SMS сообщения на номер SIM карты SIM800L: чтобы упростить набор SMS команд, все команды начинаются с заглавных букв и не надо переключать регистр при наборе букв.

команда описание
Balans запрос баланса своего номера
Info Информация о состоянии системы
Vol Контроль напряжения питания
Bme Опрос датчиков температуры, влажности и давления
Wgt Вывод значения весов
Sdon Включить запись измерений на SD card
Sdoff Выключить запись измерений
Sleep Включить режим сна - измерения не записываются на SD-карту
Wifi1 Включить WIFI
Wifi0 Выключить WIFI
PhoneADD PhoneADD=Номер телефона - добавить в белый список
PhoneDel PhoneDel=Номер телефона - удалить из белого списка
PhoneAll Показать список разрешенных телефонов
Com. Com.text - Записать в строку измерений на SD card комментарий
Reset Перезагрузить ESP32

Не спешите, иногда реакция на SMS сообщения занимают много времени - зависит от состояния сети.

Управление белым списком телефонных номеров.

Формат Sms команд:
PhoneAdd=+321232123 --- любой номер или несколько номеров, разделенных запятыми
PhoneDel=+3212 --- достаточно, если можно номер отличить от других
PhoneAll

При подключенном устройстве через USB к компьютеру, через COM port можно передавать как AT команды, так и SMS команды. Это помогает при изучении возможностей устройства и его модификации.

Теперь о том, что делать перед запуском программы.
1. Загрузите эскиз в Arduino IDE и проверьте свой номер телефона (строка 23);
2 Найдите в тексте *102 # и замените свой код вызова баланса, например *100 #
3 Обратите внимание, что в моей программе Myserial Softwareserial (2, 3); / / установить контакты 2 и 3 для программного порта

Serial2 встроена в библиотеку ESP32.

Однажды у нас был сильный град. Все это длилось 10-12 минут, и если регистрировать атмосферные изменения каждые 30 минут, то можно не заметить аномалий.

При входном напряжении 12 вольт ток в нормальном режиме-90-110 ма, а в спящем-45 мА. Это достаточно большое потребление для автономных систем. Чтобы решить проблему я разработал блок "Starting the timer" (Пусковой таймер) на базе Arduino Nano. Этот блок позволяет снизить ток потребления всей системы до 1 ма в режиме сна. /подробнее/

После пробуждения, когда SIM800 получил другую команду, ток составляет 90-92 ма. Wi-Fi отключен, но измерения продолжаются.
Таким образом, когда вы приближаетесь к отдаленной пасеке, вы посылаете SMS "Wi-Fi1", чтобы включить его. Затем вы находите в своем смартфоне WiFi-сеть точки доступа "ESP32-A...ss-Point" (вы задаете название этой сети в скетче) и подключаетесь к ней. Теперь вы можете набрать в браузере 192.168.4.1 на своем смартфоне и управлять измерениями.

Без использования блока Starting the timer, если кто-то случайно набирает телефонный номер SIM800 или отправляет на него SMS, ESP 32 на короткое время просыпается, чтобы определить источник, и, если номер телефона не находится в белом списке, он снова засыпает.

Если Ваш телефон находится в белом списке системы, но он не основной, то чтобы получать от системы SMS сообщения, необходимо сначала отправить системе любой разрешенный SMS запрос,чтобы система записала текущий номер телефона (current_number). Current_number предназначен для внутреннего потребления, и вам даже не нужно регистрировать его в программе. Программа запоминает, с какого номера телефона был сделан последний звонок или SMS, чтобы знать, куда отправить ответ! Чтобы избежать путаницы при включении, введите свой основной номер телефона в поле "current_number", но программа изменит его после первого звонка с другого телефона..

Устройства не имеют часов реального времени, поэтому нужно взять время либо через SMS, либо с HTML-страницы (192.168.1.222). Чтобы отслеживать время в ESP 32, вы должны сделать запрос (yy) хотя бы один раз. Для этого вам следует установить флажок, как показано на рисунке.

Так как в системе нет часов реального времени, то ESP32 берет время либо из запросов со страницы 192.168.1.222, либо через SMS-запрос. Запрос времени по SMS производится только при включенной записи на Sd-карту . Коррекция времени (Sms-запрос) выполняется при записи нового файла (300 баллов). Таким образом, система отсчитывает время, если:
- есть подключение к Интернету, и запрос инициируется.
или
-запись включена на Sd-карту.

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

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

Речь идет о
отчет 5 мин - 12 записей в час. В одном файле 300 записей, размер файла = 35 КБ
300 / 12 = 25 часов один файл
1 ГБ = 1000000 КБ 1000000/ 35 >= 28500 записей / 25 = 1140 дней

коррекция времени с помощью SMS происходит каждый раз, когда записывается новый файл - 300 * 5мин = 1500мин / 60-это 25 часов. То есть, раз в 25 часов устройство отправляет SMS-сообщение для коррекции времени.
Если вы установите период в 6 минут, 300 * 6 = 1800/60 - это 30 часов.

 

2001
Hosted by uCoz