Опишу функционал базы, который есть на сегодня. Наверняка, что-то будет улучшено в будущем, но пока остановлюсь на этом. Сначала надо провести полевые испытания, посмотреть на сколько справится прибор в реальных условиях.
База состоит из:
1. Микроконтроллера Arduino Pro Mega, выбран он потому, что:
– размер памяти (256 кб), который позволяет расширить программный функционал, например хранить в памяти картинки
– есть достаточно мощный стабилизатор по питанию 3.3 и 5 вольт, что позволяет не городить огород из стабилизаторов питания для LoRa + GPS + TFT Display (который, кстати, требует два питания, 3.3 вольт в контроллер и 5 вольт в подсветку)
– много пинов для подключения периферийных устройств
2. TFT Display, как писал ранее, дисплей 480×320 точек (достаточная плотность для отображения необходимой нам информации), есть touch screen срабатывающий от нажатия, а поэтому сделаны кнопки управления на экране, и есть слот для misco sd карты
3. GPS модуль для получения координат, времени и направления движения
4. LoRa модуль такой же как и в жерлицах, для коммуникации с ними
5. Динамик типа beeper для звукового оповещения о поклевке, все еще никак не придет из поднебесной, поэтому и тяну с реальным тестированием, без такой маленькой детали полезность прибора сильно снижается
Вот так все выглядит пока на рабочем столе:
Тут болтается МГТФ провод от антенны LoRa модуля. Две пары цветных проводов идут к GPS модулю, который находится у окна, внутри помещения он спутники ловить отказывается. Т.к. рыбалка будет происходить на открытом пространстве, я думаю, в полевых условиях такой проблемы не будет совсем.
При включении, первое что делает база – пытается инициализировать датчик GPS. Пока база не получит GPS данные, работать она не будет. В этом есть смысл, без GPS координат мы не получим текущего положения, а значит не получим положения жерлицы при ее установке. Как и у любого GPS датчика, тут есть холодный и горячий старты, первый может занимать до 15 минут, второй минуту. Рыболов может включать базу когда выходит из дома и по прибытии на водоем быть уверенным, что GPS инициализирован и база готова к работе.
Все надписи в программном обеспечении на английском, для подключения русского надо бы потратить несколько дней на тесты, пока времени на это не было.
В терминологии, CLIENT это жерлица.
После того, как GPS инициализирован, можно устанавливать жерлицы. После каждой установленной жерлицы, экран будет перерисован. Вот так выглядит экран с 20 жерлицами. Сразу скажу, что координаты для этого теста задавались случайным образом, поэтому расположение жерлиц хаотичное. В реальности, такой плотности точек не будет, точнее каждая точка будет отстоять друг от друга на, примерно, каком то равном расстоянии.
Главный экран состоит из нескольких зон:
1. Зона кнопок, внизу
2. Голубая – зона ловли
3. Вокруг голубой зоны, несколько пикселей, это зона рыбака.
Подробнее:
1. Сейчас реализовано 5 кнопочных зон, слева-направо:
– Батарея, картинка батареи меняет свой цвет от зеленого к желтому и потом красному, в зависимости от разряда аккумуляторов в жерлицах (статус учитывает минимальный заряд любой из жерлиц, т.е. если 19 жерлиц будут заряжены 100%, а одна разряжена, индикатор все равно будет красный, сигнализируя о проблеме). Напомню, база периодически опрашивает каждую жерлицу на предмет ее самочувствия и состояния. Если нажать на эту кнопку, то выведется список всех жерлиц, с уровнем заряда их аккумуляторов:
Процент заряда батареи условный (но реальный!), надо будет дополнительно его отрегулировать, имею ввиду на каком значении вольтажа, как окрашивать статус батареи.
– Кнопка динамика, включает и выключает звуковую сигнализацию о поклевке (плохо видно на фото, кнопка темнеет если звук отключен):
– Дальше не кнопка, а информация о дате и времени, если случайно зарыбачились)
– Дальше кнопка системной информации. Сейчас в системной информации отображается следующее:
Если перевести, то тут ваша GPS позиция, и расстояние от вас до ближайшей и самой дальней жерлице.
– Дальше кнопка, показывающая, есть ли какие проблемы. Не буду рассказывать подробнее, принято решение ее убрать, и вместо нее сделать компас, а точнее стрелку, которая будет показывать направление вашего движения, чтобы быть уверенным, что идете в направлении к жерлицам, а не куда то еще.
2. Зона ловли, продублирую фото:
Все жерлицы на экране вписаны в прямоугольник, образованный крайними жерлицами. Масштаб по горизонтали и вертикали пока разный, скорее всего надо будет его привести к одному, чтобы картина была нагляднее.
Более голубой кружек вокруг точки означает область касания, т.е. вы можете нажат на экран чтобы посмотреть статус именно этой жерлицы. Если это сделать, то появится следующий экран с информацией о жерлице:
Тут:
– идентификатор жерлицы, просто ее уникальный номер который я продублировал маркером на флажке
– расстояние от жерлицы до вас
– GPS позиция жерлицы
– Вольтаж батареи
– Уровень сигнала от жерлицы (впоследствии сделаю это как и с батареей, чтобы было наглядно видно, плохой или хороший уровень сигнала)
– Время включения жерлицы
– Время последнего отклика от жерлицы. Сейчас сделано так, что база опрашивает состояние каждой из жерлиц раз в 2 секунды, точнее, одну жерлицу через 2 секунды. Таким образом, 20 жерлиц будут опрошены в течение 40 секунд.
Если база дважды не получила ответ от жерлицы, то такая подсвечивается на экране черной точкой. Вот я выключил 3 жерлицы, продемонстрировать работу:
Если внимательно присмотреться, одна из жерлиц будет периодически окрашена в зеленый цвет. Это означает, что именно сейчас база опрашивает состояние именно этой жерлицы.
А вот так будет выглядеть экран, когда сработает жерлица. Красная точка будет пульсировать на экране:
А вот так будет выглядеть экран, если вы попали именно туда, куда надо
А вот это будет на льду
Как писал ранее, используем экран с sd картой, и что я любитель анализировать рыбалки, поэтому мне полезно сохранить информацию о рыбалке на флешку, систематизировать и каталогизировать ее.
Флешка находится под экраном тут:
В лог пишется:
– Когда включена база
– Когда и где включена жерлицы
– Когда и на какой жерлице произошла поклевка
Имя файла создается из текущей даты (удобно), файл имеет простой текстовый формат:
3. Зона/положение рыбака
Рыбак на экране отображается зеленым квадратиком. Положение прорисовывается каждый раз при изменении GPS позиции.
Важно, если рыбак находится вне квадрата, в который вписаны все жерлицы на экране, то он отображается вне зоны рыбалки, т.е. по краям голубой зоны ловли, с ближайшей до ней стороны. Т.е. глядя на экран, вы уже представляете, с какой стороны от зоны ловли вы находитесь.
Выглядит это так:
А вот когда рыбак входит в зону ловли, на экране он отображается внутри голубой области (конечно же в зависимости от положения):
Кажется рассказал все. Видео работы загрузить не смог, наверное форум не поддерживает загрузку таких больших файлов.
Что хотелось бы сделать еще, кроме реального тестирования,:
1. На экране, вместо кнопки со знаком вопроса хочу сделать стрелку, указывающую направление движения рыболова
2. Возможно, было бы более информативно, отображать на экране не только квадрат с жерлицами, а квадрат описанный вокруг жерлиц + рыболова
3. Возможно, отображать компас
4. К базе можно прикрутить датчик давления, контролировать и логировать давление тоже (потом по лога смотреть, как менялся клев в зависимости от давления)
5. К жерлицам и к базе можно прикрутить датчик температуры, чтобы следить за температурой окружающего воздуха (температуру воды у поверхности мерить, думаю, особо смысла нет, хотя сделать тоже можно)