Реклама ⓘ
Главная » Arduino
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Весы для улья своими руками

Предыстория. 

Есть у меня тесть. У него в наличии пасека. Держим с ним чисто для себя с полтора десятка ульев. Суть в том, что, когда идет взяток, надо как-то оценивать прирост меда в ульях. Делается просто. Ставится самая слабая семья на весы и контролируется. Логика такая, что если уж слабая семейка по 3 кг в сутки приносит, то средние и большие уж подавно натаскают. Я вообще не очень люблю делать вещи, которые можно тупо купить, но увидев цены на весы в 10к и более, я подумал, что рубля в три уложусь и сделаю сам. Сказано - сделано. Примерно 12-18 часов работы и проект готов. 

Отмазки. 

Всё сделано на ардуино, так как у меня пока нет доступа к паяльной лаборатории, а делать надо. Конечно, попаять пришлось, но это делалось буквально на коленке старым советским паяльником. 90% конструкции держится на соплях винтовых соединениях. Так почему дуино? Да просто это быстро, есть переходник с Arduino NANO На винтовые клеммы, что позволило мне отказаться от идеи разводить печатную плату, паять и писать бараметальный софт под мои любимые STMки. Как ни крути, а использование готовых библиотек делает разработку на порядки быстрее, если забить болт на оптимизацию кода и его безопасность. Получилась труёвая самоделка, истинный DIY, который может повторить каждый. 

ТЗ.  

Без ТЗ результат ХЗ. Потому кратенько было сформулировано следующее:

  1. Нужно минимум две единицы изделия (одну на пасеку, вторую на даче, так как не все улики вывозятся в поля) 
  2. Работа должна осуществляться от аккумулятора, иметь возможность подзарядки. 
  3. Какая никакая герметичность
  4. Обеспечить контроль веса до 200 кг.
  5. Точность определения веса +/- 0,1 кг.
  6. Простота в управлении. 
  7. Минимум пайки (по вышеописанной причине)
  8. Так как лень мотаться по магазинам, все должно приехать по почте с Али. 

Поехали!  

Итак, куда плыть стало ясно, определяемся с наполнением. Конструктивно изделие состоит из двух единиц. Голова с контроллером и весовая платформа. На платформе имеются только лишь датчики веса и термодатчик. Все остальное в голове устройства. Эти два девайса соединяются проводом через старый, добрый советский военный семи контактный разъем. Получается, что голова одна, а весовых платформ несколько. Конкретно в этом случае - две. Но буквально изменение строки, когда и у вас есть возможность работать с таким количеством платформ, сколько надо. Но про софт я расскажу ниже. Пока железо. 

Глянем на схему "головы".

В качестве основы была взята ардуино нано + переходник на винтовые клеммы. Возможно, для этой задачи ардуино нано избыточна и можно юзать более простую плату, но винтовые клемники для меньших моделей я не нашел, потому остановился на нано. С питанием заморачиваться не стал. Так как плата АЦП может работать некорректно от напряжения менее 4,3В, то было принято решение тупо повысить напряжение с аккумулятора до 6В DC/DC MT3608, а затем его понизить до 5В, используя встроенный в ардуину линейный стабилизатор. Конечное же аккумулятор подключается через плату защиты и зарядки TP4056.

Схема примитивна на столько, на сколько это возможно. Если приглядеться, то можно заметить, что кнопки подключены странным образом. Резисторы подтяжки заведены на порт IO контроллера. Это я сделал так подтяжку к питанию. Просто на пин порта, к которому подключен резистор, постоянно выдается лог.1. В результате кнопка подтягивается к лог.1. Это сделано что бы не тянуть лишний провод на каждую кнопку для подтяжки. Тут же просто : загнул резистор, воткнул его в колодку, подключил провод до кнопки. Да, еще я предусмотрел датчик температуры. Нужен он был для корректировки показаний тензодатчиков. Дело в том, что показания датчиков "плывут", зависят от температуры. Но как показали испытания, в нужном мне диапазоне температур датчики выдают не сильно искаженный результат, потому датчик оставил, а функцию термокомпенсации не запилил, так как не понадобилась. Дисплей использовал "стандартный" 16х2 + IIC расширитель портов. 

Схема весовой платформы следующая. 

Датчики веса, термодатчик, соединительный провод оканчиваются наконечниками типа НШВИ 0,35, а дальше провода зажимаются в винтовых клеммах. Сами клеммы распаяны на монтажной плате и соединены как на схеме (тут пришлось попаять малость, но это единственный случай глобальной пайки, за исключением подпаивания проводов к готовым модулям). Все это находится в небольшом корпусе, провода заходят и выходят через гермовводы. На схеме я подписал какой клеммник к какому датчику относится: правый верхний/нижний, левый верхний/нижний. Физически они так и располагаются на платформе. В качестве провода использовал кусок витой пары от компьютерной сети. Цвета тоже нанес на схему. Схема и получившиеся изделие максимально соответвуют друг другу... ну во всяком случае я на это надеюсь :)  Фото "прототипа" ниже. Видно что датчик температуры немного "не вписался" в общий дизайн. На этапе испытаний я его повесил на обычную клемму. Впоследствии я, конечно же, впаяю еще винтовую клемму и заведу этот датчик как на схеме. Тут плавно перетекаем в механику. Начнем с платформы. 

 

В обратной стороны схема собрана навесным монтажом, проводами. Провода, для пущей надежности, лудим и формируем полукольца, которые будут как бы обвивать вывод клеммника, после этого пропаиваем. Не забываем про резистор для подтяжки линии данных термодатчика (на фото он прям под левым клеммником) 

Сам прототип весовой платформы выглядит так

Это часть столешницы, которая осталась после ремонта. На обратной стороне я закрепил по углам датчики. 

Вот фото чуть крупнее, как я закрепил датчики. 

Под ним сверлом 30мм выбрал отверстие для обеспечения хода деформирующего элемента. 

Про коннектор на проводе. Я использовал то, что у меня есть. Не сложно найти что-то подобное на алишке. Тоже надежное и влагозащищенное.

Переходим к голове. 

Фото того, что получилось. 

В верхней части, левее, находится повышающий DC/DC, под ним Li-Ion аккумулятор формата 14500 (с холдером), правее блок защиты/зарядки. Для подзарядки требуется откинуть крышку и подключить любое зарядное устройство для мобильника в разъем микро USB. На левой стенке видим тот самый суровый коннектор, на нижней части располагаются три кнопки и тумблер питания. Почему три, когда на схеме две? Зеленая кнопка не подключена никуда. Я её заложил на всякий случай. Де-факто она не пригодилась и если выбудете повторять устройство так, как оно есть, то нужно всего две кнопки. Все линии +5V и GND я объединил между собой через пятиместные клеммники WAGO, Где-то провода входили по две штуки в одно гнездо. Может можно было и по другому поступить, но пока так. Я в процессе разработки кое-что менял и для меня важно было без паяльника произвести коммутацию. 

Еще пара фото с разных ракурсов 

Тут я еще не смонтировал блок питания. Вот как оно выглядит со снятым дисплеем

I2C расширитель припаян непосредственно на плату дисплея. Сам дисплей крепится на стойки 12 мм. На 5 мм стойки крепится и модуль с винтовыми клеммами для ардуино. Плата с АЦП HX711 находится под платой с колодками. Видно, как она выглядывает из-под ардуино. Весь источник питания приклеен термоклеем к верхней части корпуса (на данном фото он пока отсутствует). Я его монтировал в самую последнюю очередь, когда весь софт уже был написан. Кстати, справа внизу видны те два резистора для подтяжки кнопок. 

Ну и напоследок, фото собранного и включенного устройства. 

Софт.

Опять отмазки. 

Это мой первый проект на ардуино. Возможно, нужно было использовать более лучшие библиотеки, но я использовал то, что выдал мне гугл, так как мне важно было получить результат, а не кайфонуть от процесса кодинга. Потому, возможно, у меня не самые оптимальные решения. Кроме того, тот блокнот, которые кто-то называет Arduino IDE, достаточно ущербный, но возиться с подключением ардуино к VSC, например, я посчитал тратой времени, потому пришлось быдлокодить всё в один файл, так как без адекватной IDE раскладывать код по файлам, мне кажется, не очень удобно, при условии что проект то пустяковый. В архиве к статье вы найдете *.ino файл для блокнота ардуино и библиотеки, которые не относятся к стандартным. Папки с библиотеками надо перенести в папку, куда их складывает Arduino "IDE". Для win 7 и Win 10, вроде, это разные пути. Так что можете погуглить где конкретно в вашей системе находятся устанавливаемые либы. 

Теперь по делу.

В заголовке файла bee_hive_scale.ino найдете ссылки на инфу по используемым библиотекам (если вам надо что-то исправить/допилить под себя). Все константы я постарался задефайнить, особенно номера пинов. Потому, если вы захотите периферию кинуть на другие IO, то просто исправьте номер пина в дефайне и будет счастье. 

Обратите внимание, если у вас дисплей не запинается, то, скорее всего, IIC расширитель имеет отличный от моего адрес. Надо узнать адрес вашего IIC расширителя портов и вбить его в LCD_ADDRESS. Я адрес своего расширителя узнал, запустив отдельный скетч, который находится в гугле. Да, я понимаю, что такой подход не очень-то способствует тому, чтобы это повторил человек, который в руках паяльник держит впервые и никогда не слыхал про ардуино. Так что давайте так. Если вы решите повторить девайс, то активно задавайте вопросы, я будут на них отвечать и дополнять эту статью. Так что, если будет запрос, то я дам ответ. Не стесняйтесь :)  

Кратенько про логику работы. 

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

Кстати, тут можно и доработать, так как есть датчик температуры со своим ID и по нему можно понять, с какой платформой будет работа. Ну или завести дополнительный пин (-ны) адреса. Короче, есть место для доработок, но пока всё руками. Короче, номер платформы выбирается кнопками (красная +1, желтая -1). Затем подтверждаете выбор долгим удержанием красной кнопки (долгим - это более 3 сек).  Если включение первое, то параметры платформ (вес тары и калибровка) применяются по умолчанию. Вам надо тарировать (т.е. сделать так, чтобы собственный вес платформы принимался за нуль) и откалибровать. Эти параметры автоматом сохраняются для каждой платформы отдельно. 

Тарирование платформы. 

Нужно для того, чтобы учесть вес самой платформы и принять его за нуль. В нормальном режиме работы зажимаем желтую кнопку на >3сек. Последует вопрос, а надо ли тарировать?

Клик желтой - нет, клик красной - да. Если кликнули "да", запускается процесс тарирования и сохранения параметров для этой платформы.

Если надо оценить прирост веса, то можно тарироваться по текущим измерениям, а когда будете проводить следующее взвешивание, то весы укажут прирост веса относительно прошлого значения. 

Калибровка. 

Калиброваться после тарирования платформы. Зажать красную кнопку. Последует вопрос, а оно вам надо?

Красная - нет, желтая - да. Когда определились, что не просто так попали в режим калибровки, устанавливаем калибровочный вес. Если до этого пункта дошли впервые, то принимается значение по умолчанию. Вес указывается в кг следующим образом. Тройное нажатие на красную кнопку - это +10кг, двойное нажатие - это +1кг, клик - это +0,1 кг. С желтой кнопкой аналогично, но только минус 10/1/0,1 кг.

Когда калибровочный вес "натыкали", опять зажимаем красную кнопку на >3сек. Как увидим сообщение о калибровке, у вас примерно 8 секунд что бы установить на весы известный калибровочный вес. Запускается таймер, за это время надо поставить на весы калибровочный вес. 

Когда промигается курсор (вы это увидите), значит калибровка платформы завершена, значения сохранены.

Весы готовы к работе.  

Очистка EEPROM. 

Если настала необходимость "сбросить" настройки в памяти на "заводские", то перед включением весов надо зажать обе кнопки и устройство перейдет в режим очистки памяти, затем загрузится и проинициализирует память значениями по умолчанию.

Ссылки на железо и инструмент: 

ардуино - https://aliexpress.ru/item/4000036402472.html?spm=a2g0s.12269583.0.0.161044a9fS9eSS

тумблер - https://aliexpress.ru/item/1005001994328465.html?spm=a2g0s.12269583.0.0.32fa769cna5Svj

кнопки - https://aliexpress.ru/item/4000785468733.html?sku_id=10000007817567445&spm=a2g0s.12269583.0.0.454f8671hkyHyN

Датчик температуры - https://aliexpress.ru/item/4000895569581.html?spm=a2g0s.12269583.0.0.5fb4f0c91H4VDl

Переходник на винтовые клеммники - https://aliexpress.ru/item/4000036402472.html?item_id=4000036402472&sku_id=10000000081813307&spm=a2g0s.12269583.0.0.14ca44a9wB9ki3

Дисплей с IIC расширителем - https://aliexpress.ru/item/33049166973.html?item_id=33049166973&sku_id=10000000255250230&spm=a2g0s.12269583.0.0.b8effd6e32LPIK

НШВИ - https://novosibirsk.vseinstrumenti.ru/electrika-i-svet/el-mont-prod/klem-szhim/gilzy/izolirovannye/era/gilza-no-570-08-s-flantsem-e0508-0-5mm2-b0041449/

Обжимка для НШВИ - https://novosibirsk.vseinstrumenti.ru/ruchnoy-instrument/elektromontazhnyj/ruchnye-press-kleschi/kvt/press-kleschi-kvt-ctk-02-56539/

Сверло ступенчатое - https://novosibirsk.vseinstrumenti.ru/rashodnie-materialy/instrument/dlya-dreley/udarn/sverla/po-metallu/vertex/004-32/

То, что было в наличии:

Витая пара, коннектор на провод/корпус, монтажная плата, корпус для головы, корпус для весовой платформы, аккумулятор 14500, холдер для аккума, повышайка, защита аккумулятора, винты, стойки.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
Модули
arduino nano1 Поиск в магазине ОтронВ блокнот
Переходник для Arduino на колодки1 Поиск в магазине ОтронВ блокнот
TP4056 - модуль защиты и зарядки Li-Ion1 Поиск в магазине ОтронВ блокнот
MT3608 - повышающий DC/DC1 Поиск в магазине ОтронВ блокнот
HX711 - модуль АЦП1 Поиск в магазине ОтронВ блокнот
Полумостовые датчики веса4 Поиск в магазине ОтронВ блокнот
Прочее
Тумблер MTS-102 или аналогичный1 Поиск в магазине ОтронВ блокнот
Кнопки без фиксации2 Поиск в магазине ОтронВ блокнот
Резистор 4.7к 0.25W3 Поиск в магазине ОтронВ блокнот
ОС2РМ18КПЭ7Г1В1 коннектор на кабель1 Поиск в магазине ОтронВ блокнот
2РМТ18Б7Ш1В1В - коннектор на корпус1 Поиск в магазине ОтронВ блокнот
KLS2-300-5.00-03P-2S - винтовые клеммники8 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 2
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (8) | Я собрал (0) | Подписаться

+1
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
andro #
Схема состоит из небольшого числа радиокомпонентов, но очень мелкие надписи на ней, может быть это проблема моего нехорошего зрения, но к сожалению ничего не видно. Можно понять данное обстоятельство при высокой плотности компоновки, но при такой разреженности пространства не могу найти объяснения.
Ответить
+1
Виталий #
Спасибо, всё получилось, добавил ещё блютуз модуль H-05 отображает на телефоне. Хороших привесов вам. Как с вами пообщаться в соц сетях или через почту?
Ответить
0

[Автор]
Chip115 #
Рад слышать что всё получилось. В вк я тут https://vk.com/la_borey
Ответить
0
Виталий #
Нет ли наработок, чтобы по звонку приходила смс с данными или в конце дня приходила смс? В интернете есть статьи по этому, но скетч не загружаются.
Ответить
0
Это я #
Доброго дня. Нет, нету, так как не было необходимости в такой функции. Но может быть я это фишку добавлю, как будет время. Следите за темой
Ответить
0
Рашит #
Вы очень подробно и доходчиво объяснили работу своих весов. Хотел повторить, но не открывается sketch.rar (184 K).
Ответить
0

[Автор]
Chip115 #
Я скачал файл и открыл. Странно что у вас не открылось.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Модуль измерения тока на ACS712 (30А)
Модуль измерения тока на ACS712 (30А)
Паяльник с регулировкой температуры Печатная плата для усилителя "LM3886 + AD825"
вверх