|
1 / 1 / 0
Регистрация: 02.02.2020
Сообщений: 18
|
|
Приложение для весов (android приложение + связь с сервером (php & MySQL) + связь с весами + общая синхронизация данных)22.04.2021, 16:00. Показов 1498. Ответов 8
Метки нет (Все метки)
Всем здравия братья и сестры.
Описательная часть. Решил я за бабахать умные весы для пасеки! Нужны они для отслеживания привесов отдельного, среднего по силе улья и ведения журнала привесов(сколько принесли пчёлки, с каких цветочков и где пасека находится). Для этого пчеловод ставит этот улей на весы и каждый день в определённое время проверяет изменение веса(привес, либо отвес). Пчеловод не каждый день бывает на своей пасеке, но ему хочется знать средние результаты труда его "работниц". Как это сделать? Взвешивать и отправлять данные... Можно по смс, через интернет на сервер, либо непосредственно с весов в приложение по Wi-fi/блютуз, когда пчеловод рядом с весами. Проблема состоит в следующем. Пасеки не всегда находятся на одном месте(кочуют аки табор по просторам родины матушки) и на одном точкЕ(ударение на е, месте где находится пасека) есть связь ,а на другом её может не быть(это печально). Представим нашего современного пчеловода с этими умными весами. В один из дней он находится далеко от своей пасеки и приходит время взвешивания. Он открывает приложение на телефоне и видит вес, а также динамику изменения веса на диаграмме. Другая ситуация. На точке нет связи. Увы пчеловод не сможет получить новые данные в приложение(пока нет идей как это победить). При следующем посещении пасеки, весы отдают результаты взвешиваний в приложение. Строится график и пчеловод снова доволен. При подключении телефона к интернету приложение отсылает данные, полученные от весов, на сервер. И конечно к этим весам можно добавить кучу разных датчиков. (для измерения температуры, продолжительности дня, освещённости, влажности, шума, датчик движения, GPS/ГЛОНАСС и многие другие. Но это уже другая история.) "Железная" часть. -Весы M-ER 335ACL до 300кг. Площадка 45см*60см с аккумулятором на 3,7в и обещанным временем работы 50 дней "беспробудного" взвешивания.(2000р) Кликните здесь для просмотра всего текста
-Плата TTGO T-Call V1.3 ESP32(~1000р) Кликните здесь для просмотра всего текста
К этой плате: -HX711 датчик взвешивания(~70руб) Кликните здесь для просмотра всего текста
-B64 Micro SD плата кард-ридер(~30руб) Кликните здесь для просмотра всего текста
-GSM-антенна для SIM800L(~70руб) Кликните здесь для просмотра всего текста
-модуль в реальном времени DS-1302(~90руб) Кликните здесь для просмотра всего текста
(Все кроме весов куплено в Китае, весы куплены на Авито) Ещё нужна будет симка и флешка и батарейка таблетка. Программно-логическая часть. Сервер. Создать на сервере базу данных + скрипт для обработки данных(вхоящих и исходящих) - База состоит из трёх таблиц * weighing_scales (id_weighing_scales, result_scale, date_scale, id_place, id_flowers) * flowers (id_flowers, name_flowers, point) * place (id_place, name_place, point) point - столбец с отметкой строки по умолчанию (1-0) - Сервер получает данные от весов $_GET['scales']-вес, $_GET['date']-дата и время взвешивания. - Сервер обрабатывает данные и записывает в таблицу weighing_scales + берёт из двух таблиц id, отмеченные в столбце point 1 - Сервер получает запрос от приложения GET['date']-максимальная дата взвешивания хранящаяся в приложении, GET['place']-максимальный id id_place из таблицы place и GET['flowers']-максимальный id_flowers из таблицы flowers - Сервер проверяет дату и id в соответствующих таблицах. Если такие строки имеются в таблицах и они последние добавленные, о всё ок. Если строк больше чем присланные id и дата, то недостающие строки отсылаются приложению. Если таких строк нет в таблицах, то отсылается в ответе id последней строки. Приложение Создать приложение, которое выводит данные из своей базы, строит график, синхронизирует данные с сервером, получает данные от весов если нет связи - База приложения аналогична базе сервера. - По нажатию на кнопку приложение отправляет на сервер дату и последние id из своей базы на сервер. Если сервер присылает id недостающих таблиц, то приложение формирует следующий запрос к серверу с недостающими данными. Если сервер присылает данные, то приложение их обрабатывает и добавляет в свою базу. - Приложение принимает данные с весов, обрабатывает их и добавляет в свою базу. - Из данных в базе приложения строится график. Весы Создать прошивку для платы и подружить плату с панелью управления весов. - Подружить все компоненты весов (плата ttgo, антенна(это самое простое), модуль весов, модуль карты памяти, модуль времени, матричная клавиатура панели весов, плату сегментных индикаторов весов на базе микросхемы TM1640) Задачи прошивки - В определённое время(вот для чего модуль времени) получает данные от тензодатчика весов и проводить из калибровку. - Записывает данные на флешку. - Если есть связь, отправляет данные на сервер. - Когда нажимают на кнопку панели весов, показывают текущий вес, отклонение веса от предыдущего взвешивания. - Когда соединяются с приложением. Отправляют данные. - Уходит в режим ожидания/спящий Результаты проделанной работы. +С сервером я разобрался. +-Приложение с синхронизацией с сервером написал(пока без графиков и синхронизации с весами жду когда придёт из Китая) -Весы стоят отмытые и полуразобранные. Ждут своего часа. Хотелось бы услышать конструктивную критику, как логики проекта, так и кода. Да, да. Я буду сюда выкладывать свой г. код. Ещё раз жду конструктивной критики и помощи.
0
|
|
| 22.04.2021, 16:00 | |
|
Ответы с готовыми решениями:
8
Android и приложение для ПК: удаленная связь Связь Unity3D + Arduino под android приложение Выбор решения для проекта! Приложение для Windows + приложение для Android или Web приложение? |
|
1 / 1 / 0
Регистрация: 02.02.2020
Сообщений: 18
|
||||||||||||||||||||||||||||||||||||
| 22.04.2021, 17:54 [ТС] | ||||||||||||||||||||||||||||||||||||
|
Основные файлы моего приложения.
MainActivity.java Кликните здесь для просмотра всего текста
Controller.java Кликните здесь для просмотра всего текста
Model.java Кликните здесь для просмотра всего текста
ListViewAdapter.java Кликните здесь для просмотра всего текста
activity_main.xml Кликните здесь для просмотра всего текста
row.xml Кликните здесь для просмотра всего текста
AndroidManifest.xml Кликните здесь для просмотра всего текста
Всё приложение dataBase.rar
0
|
||||||||||||||||||||||||||||||||||||
|
1 / 1 / 0
Регистрация: 02.02.2020
Сообщений: 18
|
|
| 22.04.2021, 18:17 [ТС] | |
|
И вот с этим ↑ у меня не всё ладно. С одной стороны приложение синхронизируется с сервером, но уж как-то криво сам код выглядит.
0
|
|
|
69 / 62 / 13
Регистрация: 10.01.2012
Сообщений: 508
|
|
| 22.04.2021, 23:29 | |
|
Значит так:
Мой бы путь был таков: В качестве накопителя инфы я бы сделал Андроид (самый голимый смартфон - згрузки то нет серьезной) и на него по воздуху скидывал бы данные от датчиков и весов (WiFi, блютуз, веревка - что есть под рукой). Такой можно тупо скотчем на ближайшее дерево повесить или куда спрятать. Естественно БД будет sqlite. Между личным смартфоном и голимым должен быть брокер - это уже на реальном серваке с ip адресом. Что должен делать брокер - тупо пересылать запрос от личного к голимому, и получать от него ответ в виде файла содержащего последниие изменения в БД на голимом. Ну типа того "Хочу обновления БД датчиков температур (всех или конкретного), сейчас у меня БД под номером 4503". Голимый смартфон смотрит номер БД и: Если совпадает с той что он последний раз отсылал, дает ответ - У тебя свежак и ракрывает связь. Если номер меньше , то отсылает БД брокеру, подписав новыи номером, тот пересылает на личный смартфон. Голимый фиксит у себя кличку получателя и нимер последней отправки. Если инета нет, то при появлении на пасике можно как поюзать голимый, так и слить с него БД но воздуху. То есть, нарисовать некое API для беседы двух смартфонов. Команды и запросы можно будет добавлять в меру необходимости. И не обязательно писать две разные приложухи - можно в одной через настройки указать кто Мастер, на кого он сливает. Еще было бы неплохо и очень дешево : Датчик -> raspberry raspberry <-------->broker<-------->APP (flutter)
0
|
|
|
1 / 1 / 0
Регистрация: 02.02.2020
Сообщений: 18
|
|
| 23.04.2021, 08:02 [ТС] | |
|
Со смартфоном Вы очень хорошо придумали. Внешнее хранение данных в скрытом месте. Это поможет в случае злонамеренных действий. Например. Слать туда фото-видео с WiFi дверного глазка. Видеонаблюдение и фиксация нежелательных личностей в отсутствии собственника. Даже если будет найдена камера, данные будут на телефоне в укромном месте.
Однако, дополнительное устройство, в отсутствии электричества - это дополнительная проблема. В весах стоит не плохой аккумулятор, его должно хватить на весь сезон. Работа весов от 1 до 10 максимум взвешиваний в сутки и 1 отправка в заданный период времени. Плата TTGO T-Call V1.3 ESP32 + модули - это почти телефон и по моей задумке он всё делает сам обрабатывает полученные данные от датчиков(может в том числе получать смс с командами), пишет в файлик и высылает его при надобности. Если не лукавить, то и лишнего смартфона пока нет.
0
|
|
|
1 / 1 / 0
Регистрация: 02.02.2020
Сообщений: 18
|
||||||
| 25.04.2021, 11:33 [ТС] | ||||||
|
Подключил вывод графика
Кликните здесь для просмотра всего текста
Но столкнулся с проблемой вывода дат в ось Х. Сейчас выводит 1 2 3 и тд. Хотелось бы дату взвешивания 12.04 хотя бы день и месяц. listItems.get(i).getString("date") здесь находится дата в формате день-месяц год. В принципе формат даты можно будет изменить на любой другой.
0
|
||||||
|
1 / 1 / 0
Регистрация: 02.02.2020
Сообщений: 18
|
|
| 25.04.2021, 11:43 [ТС] | |
|
0
|
|
|
69 / 62 / 13
Регистрация: 10.01.2012
Сообщений: 508
|
|
| 25.04.2021, 20:08 | |
|
Чё за либа делает график, как и откуда по оси Х вставляются цифири, это int или другое?
0
|
|
|
1 / 1 / 0
Регистрация: 02.02.2020
Сообщений: 18
|
|
| 25.04.2021, 20:20 [ТС] | |
|
Графики строит - mpandroidchart.
Цифры вставляются в entries.add(new Entry(d2, Float.parseFloat(listItems.get(i).getStr ing("itog")))), где в2 это значение Х, а всё остальное Y.
0
|
|
| 25.04.2021, 20:20 | |
|
Помогаю со студенческими работами здесь
9
связь php веб сервером Nginx Связь нескольких приложение PHP работа с файлами & связь с JS Связь: ПК - Сервер - Мобильное приложение Андроид и Пк приложение. Удаленный связь Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|