Весы на NodeMCU ESP8266, датчике веса и модуле усиления HX711


В этом проекте мы рассмотрим создание электронных весов на основе технологии Интернета вещей с датчиком веса (тензодатчиком), модулем HX711 и платой NodeMCU ESP8266. Тензодатчик будет способен измерять любой вес до 40 кг. Мы будем отображать измеренный вес в приложении Blynk, а также удаленно отслеживать данные о весе на сервере Thingspeak.

Примечание: приложение Blynk раньше можно было использовать бесплатно, но сейчас, насколько я знаю, такой возможности нет. Но зато Thingspeak до сих пор бесплатный и при этом весьма удобный сервис.

Весы на NodeMCU ESP8266, датчике веса и модуле усиления HX711

В этом проекте IoT мы подключим датчик нагрузки 40 кг к NodeMCU ESP8266 с помощью модуля усилителя датчика нагрузки HX711. HX711 — это прецизионный 24-битный аналого-цифровой преобразователь (АЦП), разработанный для весов и промышленных приложений управления для прямого взаимодействия с мостовым датчиком. Усилитель датчика нагрузки HX711 используется для получения измеряемых данных с датчика веса/нагрузки (тензодатчика).

Электронные весы используют тензодатчик для измерения веса, создаваемого грузом. Большинство тензодатчиков работают по принципу преобразования давления (силы) в электрический сигнал. Эти тензодатчики имеют четыре датчика, которые соединены в мост Уитстона.

Мы сделаем весы, которые смогут измерять вес до достаточно высоких значений, например, 40 кг. Нам нужно откалибровать тензодатчик и найти коэффициент калибровки. После завершения калибровки мы можем включить этот коэффициент в наш код. Таким образом, это сделает наши весы точными и аккуратными. Чем больше масса, тем больше погрешность. Поэтому мы попытаемся устранить погрешность весов. Наконец, мы отобразим измеренный вес на ЖК -дисплее I2C 16×2. Мы отправим полученное таким образом значение веса на платформу IoT Cloud под названием Blynk Application. Таким образом, вес можно будет контролировать из любой точки мира, просто наблюдая на панели инструментов приложения Blynk. Мы также отправим данные на другую платформу IoT под названием Thingspeak. Графический и числовой анализ веса будет выполняться в Thingspeak. На нашем сайте мы рассматривали уже достаточно много проектов с использованием сервиса ThingSpeak - посмотрите их если хотите более подробно изучить работу с данным сервисом.

Также мы рассматривали проекты по измерению веса на основе других микроконтроллеров/плат:

Необходимые компоненты

  1. NodeMCU ESP8266 (купить на AliExpress).
  2. Датчик веса + модуль HX711 (купить на AliExpress).
  3. ЖК дисплей 16x2 с интерфейсом I2C (купить на AliExpress).
  4. Кнопка (купить на AliExpress).
  5. Макетная плата
  6. Соединительные провода.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Датчик веса (нагрузки)

Датчик веса/нагрузки (тензодатчик) — это тип преобразователя, который еще называют датчиком силы. Он преобразует силу, такую ​​как растяжение, сжатие, давление или крутящий момент, в электрический сигнал, который можно измерить и стандартизировать. По мере увеличения силы, приложенной к датчику, электрический сигнал пропорционально изменяется. Датчики нагрузки используются для измерения веса.

Датчик веса (нагрузки)

Тензодатчики обычно состоят из пружинного элемента, на котором размещены датчики. Пружинный элемент обычно изготавливается из стали или алюминия. Это означает, что он очень прочный, но также минимально эластичный. Как следует из названия «пружинный элемент», сталь слегка деформируется под нагрузкой, но затем возвращается в исходное положение, упруго реагируя на каждую нагрузку. Эти чрезвычайно малые изменения можно уловить с помощью тензодатчиков. Затем, наконец, деформация тензодатчика интерпретируется аналитической электроникой для определения веса.

Модуль HX711

Модуль усилителя и АЦП (аналого-цифрового преобразователя) датчика веса HX711 (Dual-Channel 24 Bit Precision A/D Weight Pressure Tension Cell Amplifier and ADC) представляет собой небольшую плату для микросхемы HX711, которая позволяет вам легко считывать показания тензодатчиков для измерения веса. Подключив модуль к микроконтроллеру вы сможете считывать изменения сопротивления тензодатчика и с некоторой калибровкой сможете получать очень точные измерения веса.

Модуль HX711

Это может быть удобно для создания собственных промышленных весов, управления процессами или простого обнаружения присутствия. Датчик взвешивания HX711 использует двухпроводной интерфейс (Clock и Data) для связи с другими устройствами. Его можно подключить к любым выводам GPIO микроконтроллера, что упрощает считывание данных с HX711.

Каждый цвет соответствует общепринятой цветовой кодировке тензодатчиков:
1. Красный (возбуждение+ или VCC).
2. Черный (возбуждение- или GND).
3. Белый (усилитель+, сигнал+ или выход+).
4. Зеленый (A-, S- или O-).
5. Желтый (экран).

Контакт YLW действует как дополнительный вход, который не подключается к тензодатчику, а используется для заземления и экранирования от внешних ЭМИ (электромагнитных помех).

Соединения тензодатчика и HX711

Представлены на следующем рисунке.

Соединения тензодатчика и HX711

Сборка основания весов

Основание весов в сборе

Также нам потребуется основание для фиксации тензодатчика с помощью гаек и болтов. Здесь мы использовали жесткую фанеру для каркаса, чтобы размещать на нем вещи, и легкую деревянную доску в качестве основания. Это необходимо, поскольку тензодатчик слегка прогибается, когда на него помещается какой-либо вес.

Схема проекта

Схема подключения датчика веса и модуля HX711 к плате NodeMCU ESP8266 представлена на следующем рисунке.

Схема подключения датчика веса и модуля HX711 к плате NodeMCU ESP8266

Соединение между тензодатчиком и HX711 было объяснено выше. Подключите выводы DT и SCK тензодатчика к выводам D5 и D6 платы ESP8266 соответственно. Я использовал кнопочный тактовый переключатель для сброса веса на ноль. Кнопочный переключатель — это подключенный цифровой вывод D4 ESP8266. Я использовал ЖК-дисплей 16X2 I2C чтобы минимизировать соединения. Поэтому подключите выводы SDA и SCL ЖК-дисплея с интерфейсом I2C к выводам D2 и D1 Nodemcu соответственно.

Собранная на макетной плате конструкция проекта

Печатная плата для проекта

Печатная плата для наших весов на основе IoT разработана с использованием онлайн-инструмента EasyEDA Circuit Schematics & PCB designing. Передняя и задняя стороны печатной платы показаны ниже.

Проект передней и задней стороны печатной платы для нашего проекта

Скачать файл Gerber для изготовления данной печатной платы вы можете по следующей ссылке.

Настройка приложения Blynk IoT для удаленного мониторинга веса

Blynk — это приложение, работающее на устройствах Android и IOS для управления любым приложением на базе IoT с помощью смартфонов. Оно позволяет вам создать графический пользовательский интерфейс для приложения IoT. Здесь мы настроим приложение Blynk для мониторинга измеренного веса по Wi-Fi с помощью NodeMCU ESP8266.

Итак, загрузите и установите приложение Blynk из магазина Google Play. Пользователи iOS могут загрузить его из App Store. После завершения установки откройте приложение и зарегистрируйтесь, используя свой идентификатор электронной почты и пароль.

Приложение Blynk

Теперь следуйте фотографиям ниже, чтобы настроить приложение Blynk.

Настройка приложения Blynk

Итак, создайте калибровку и отображение значений. После успешного создания проекта вернитесь к настройкам и нажмите Send Email («Отправить письмо»). Вы получите идентификатор аутентификации в этом письме. Сохраните идентификатор аутентификации. Вам нужно будет ввести этот код.

Исходный код программы для калибровки тензодатчика

После подключения тензодатчика, как указано выше, вам необходимо сначала откалибровать его, прежде чем переходить к окончательному проектированию. Поэтому сначала откалибруйте весь собранный узел. Вам нужно будет добавить библиотеку HX711, чтобы скомпилировать код. Загрузите библиотеку HX711 по следующей ссылке.

Загрузить библиотеку HX711
Вам также понадобятся другие библиотеки, связанные с Blynk, для компиляции финального кода ниже. Поэтому загрузите и добавьте следующие библиотеки.
1. Библиотека Blynk ESP8266
2. Библиотека Liquid Crystal I2C

После загрузки кода калибровки откройте последовательный монитор и настройте коэффициент масштабирования с известным весом, пока не увидите правильные показания. Нажмите a,s,d,f, чтобы увеличить коэффициент калибровки на 10,100,1000,10000 соответственно. Нажмите z,x,c,v, чтобы уменьшить коэффициент калибровки на 10,100,1000,10000 соответственно.

Тестирование кода калибровки тензодатчика в окне монитора последовательной связи

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

Исходный код программы для весов с передачей данных в Blynk

Как только вы найдете коэффициент калибровки, обновите его в коде ниже. Затем вы можете просто загрузить код, и ваши весы IoT готовы. Не забудьте также изменить WiFi SSID, пароль и код аутентификации Blynk в коде.

Тестирование работы кода (с отправкой данных в Blynk)

Наши весы готовы к работе

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

Тестирование работы весов при отсутствии веса на платформе

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

Тестирование работы весов при наличии веса на платформе

Теперь вы можете запустить приложение Blynk и увидеть изменения параметров веса как на этикетке, так и на шкале.

Тестирование работы проекта в приложении Blynk

Исходный код программы для весов с передачей данных на Thingspeak

Аналогично, если вы хотите отслеживать вес онлайн на платформе Thingspeak, вы можете использовать код ниже.

После загрузки кода с правильным ключом API вы сможете отслеживать данные онлайн на Thingspeak.

Тестирование работы проекта на сервисе Thingspeak

Видео, демонстрирующее работу проекта

Ссылка на видео на YouTube

(Проголосуй первым!)
Загрузка...
47 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *