Нам понадобится:
Тензорезистор как у меня на 5 кг: http://ali.pub/5icvdr
Arduino: http://ali.pub/1x1jri
Дисплей: http://ali.ski/KkjM7
Кнопка для сброса веса: http://ali.pub/1oyu1n
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Данный тензорезистор лежал у меня несколько лет без дела. И вот дошли руки до него. Решил попробовать на нем сделать простые весы.
Скажу сразу. Как оказалось данный резистор очень проблемный, требует постоянной калибровки. И показания немного ранятся в несколько граммов. По этому если Вам необходима точность до грамма, то данное устройство Вам не подойдет. А если Вас устроит отклонение в несколько граммов, то вполне годится. Ну и так как все данные мы получаем на микроконтроллер, то на основе таких тензорезисторов мы можем делать автоматизации.
Вообще примеров море в интернете реализации весов с помощью таких датчиков и ардуино. Но они все работают через одно место. Некоторые вообще не работают. Некоторые примеры очень старые и если устанавливать новую библиотеку для данных примеров то не компилируется скетч. Вообщем я перебрал уйму вариантов и все работало через одно место. Собственно мой пример работает тоже через одно место, но мне он показался проще всего. Я его сделал из уже готового примера, немного переделав.
Библиотек также как и примеров существует несколько для модуля hx711. К каждой библиотеке идет пример с калибровкой. Калибровку нужно делать с известным весом. Либо сначала взвесить вещь на обычных весах, а потом сравнить ее уже с датчиком.
В данном проекте я использую библиотеку HX711_ADC.
Установка библиотеки HX711_ADC.
Данная библиотека легко находится по названию по пути Скетч->Подключить библиотеку->Управлять библиотеками.
После установки библиотеки зайдем в Файл->Примеры->HX711_ADC->Calibration и загрузим данный скетч в Ардуино. Подключив датчик HX711 к аруино следущим образом (привожу сразу полную схему весов, но можно для калибровки подключить только модуль HX711):
Теперь нам нужно закрепить тензорезистор таким образом, чтоб он менял сопротивление, когда на него давит вес. Закрипить его можно примерно следующим образом:
Нижнюю ножку и верхнюю крышку я распечатал на 3Д принтере. Модели для печати можно скачать тут: https://yadi.sk/d/YJmAg9yWmujOaA
После того как все закрепили, запускаем ардуино, открываем монитор порта и видим следующую картину:
Здесь нам говорится, что нужно убрать груз с весов и отправить в монитор порта букву “t”. Так и делаем после чего видим следующее:
Тут нам говорится чтоб мы взяли известный нам вес и установили на весы. А сам вес вписали в монитор порта. В моем случае это будет 50 грамм. Пишем цифру 50 в монитор порта.
После того как ввели Вес, нам выдаст коэфициент калибровочный, который нужно запомнить и вписать уже в основной скетч. Запомним, что это цифра -383.50.
Теперь, собираем все по схеме указанной выше. И скачиваем скетч готовых весов от сюда: https://yadi.sk/d/0RWU2RATjOGQ9Q
LoadCell.setCalFactor(-392.24);
Сюда мы и будем вписывать калибровочный фактор который получили ранее.
Ну и все, теперь все должно работать.
Также предусмотрена кнопка сброса веса. Она необходима для того, если у Вас например уже стоит стакан ( он имеет уже какуюто массу) и в этот стакан нужно налить 100грамм жидкости. Следовательно ставим стакан ( он к примеру весит 50 грамм) нажимаем кнопку. И весы обнуляются. Далее наливаем 100 грамм жидкости.
Данная манипуляция должна работать с любым тензорезистором.
Сборка весов, демонстрация работы, калибровка весов показана в видео: