Весы коробчатого типа зерна/волокна (тензодатчик, ESP32/E..
Этот корпус, предназначенный для 3D-печати, представляет собой простую и функциональную основу для интеллектуальных весов, идеально подходящих для контроля остатка нити на катушке или измерения зерна. Установка включает в себя два файла STL:
ОСНОВАНИЕ — надежно удерживает тензодатчик массой 5 кг и монтирует 0,96-дюймовый OLED-дисплей для считывания живого веса.
ВЕРХ — закрывает отсек электроники и поддерживает грузовую платформу.
Размер: 220х105мм.
Совместимые компоненты:
Стандартный датчик нагрузки 5 кг + HX711
Микроконтроллер ESP32 или ESP8266. Я использовал ESP32C3.
0,96-дюймовый OLED-дисплей I2C (SSD1306)
Вырез сделан для версии с черной печатной платой с пометкой NEW на Али. На основе этого крепления, но без булавок, так как в такой ориентации ��х сложно напечатать нужного размера. Подойдет немного горячего клея или скотча.
Идеально подходит для производителей, которые хотят точно отслеживать использование нити. В сочетании с ESPHome или специальной прошивкой для интеграции данных в реальном времени в Home Assistant или другие интеллектуальные платформы.
Пример кода ESPHome ниже. Это создаст датчик с фактическим весо�� в граммах и датчик с процентом оставшейся нити.
[...]
веб_сервер:
порт: 80
версия: 3
сортировочные_группы:
— идентификатор: sorting_group_weight_settings
name: «Настройки веса»
сортировка_вес: 10
captive_portal:
свет:
— платформа: бинарная
название: «Голубой свет»
вывод: Light_output
идентификатор: светодиодный_свет
режим восстановления: ВСЕГДА_ВЫКЛ
вывод:
— платформа: gpio
контакт: GPIO8
идентификатор: Light_output
перевернуто: правда
номер:
— платформа: шаблон
имя: «Полный вес катушки»
идентификатор: полный_вес
оптимистично: правда
мин_значение: 1
максимальное_значение: 2000
шаг: 1
начальное_значение: 1800
значение_восстановления: правда
веб_сервер:
sorting_group_id: sorting_group_weight_settings
— платформа: шаблон
name: «Вес пустой катушки»
идентификатор: пустой_вес
оптимистично: правда
мин_значение: 1
максимальное_значение: 1000
шаг: 1
начальное_значение: 725
значение_восстановления: правда
веб_сервер:
sorting_group_id: sorting_group_weight_settings
датчик:
— платформа: hx711
идентификатор: вес
#name: «Значение HX711»
name: «Фактический общий вес»
dout_pin: GPIO2
clk_pin: GPIO1
выигрыш: 128
интервал обновления: 10 с
#0кг=91295
#598g=331702
#1040g=511456
фильтры:
— калибровать_линейный:
— 91295 -> 0
— 511456 -> 1040
— лямбда: |-
вернуть х <0? 0: х;
— раунд: 0
единица_измерения: г
— платформа: шаблон
name: «Процент оставшейся нити»
идентификатор: вес_процента
unit_of_measurement: "%"
точность_десятичных чисел: 1
интервал обновления: 10 с
фильтры:
— раунд: 2
лямбда: |-
float current_weight = id(вес).state;
float полный = идентификатор (full_weight).state;
float пустой = id(empty_weight).state;
if (current_weight <= пусто) {
вернуть 0,0;
} else if (current_weight >= полный) {
вернуть 100,0;
} еще {
return ((current_weight — пусто)/(полный — пусто)) * 100.0;
}
— платформа: wifi_signal
имя: «Датчик сигнала Wi-Fi»
интервал обновления: 30 с
#по ссылке:
# 730гр = вес пустого (общий)
# 1800гр = полный вес (общий)
# Шина ЖК-дисплея I2C
i2c:
СДА: GPIO5
скл: GPIO6
сканирование: правда
идентификатор: bus_a
частота: 800 кГц
дисплей:
— платформа: ssd1306_i2c
идентификатор: «my_display»
модель: «SSD1306_128x64»
вращение: 180
интервал обновления: 1 с
смещение_y: 0
смещение_х: 0
#invert: True # Необязательно
адрес: 0x3C
страницы:
— идентификатор: страница 1
лямбда: |-
it.print(0, 0, id(my_font), «Вес:»);
если (id(вес).has_state()) {
символ буф[20];
snprintf(buf, sizeof(buf), "%.0f g", id(weight).state);
it.print(0, 14, id(my_font_big), buf);
} еще {
it.print(0, 14, id(my_font), «Нет данных»);
}
— идентификатор: страница2
лямбда: |-
если (id(weight_percentage).has_state()) {
символ буф[20];
snprintf(buf, sizeof(buf), "%.0f%%", id(weight_percentage).state);
it.print(0, 0, я





























