Самодельные WiFi весы на 15тонн

preview_player
Показать описание
------------
Ролик снят при поддержке компании ТОКВЕС. Эта компания содействует талантливым авторам, которые снимают видео с образовательным контентом по весовой тематике. Если у вас есть или вы готовы снять интересное образовательное видео по данной тематике, вы можете получить поддержку от компании ТОКВЕС.

------------

Код - в закреплённом комментарии
Рекомендации по теме
Комментарии
Автор

Код скетча:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
const char *ssid = "WiFiScale";
const char *password = "123456789";
ESP8266WebServer server(80);
#include <HX711_ADC.h>

//HX711 constructor (dout pin, sck pin)
HX711_ADC LoadCell(D1, D2);

int Tare1 = 0;
int Tare2 = 0;
int Tare3 = 0;
int Tare4 = 0;
int Tare5 = 0;
int MaxWeight = 0;

void handleRoot() {
response();
}

void response(){
int i = 0;
for (i = 0; i<10; i++)
{
delay(30);
LoadCell.update();
}

int val = LoadCell.getData();
if (MaxWeight < val) MaxWeight = val;

String MyHTML ="<html><head><title>WiFi Scales</title><meta http-equiv='refresh' Connection:'close' content='3' name=\"viewport\" content=\"width=device-width, initial-scale=1\" /></head>";
MyHTML += "<STYLE type = \"text/css\">html, body {height: 100%; font-size: 40pt;}button {font-size: 56pt; font-style: bold; text-align:center;}</STYLE>";
MyHTML += "<h2>Current weight:</h2>\n";
MyHTML += "<h1>" + String(val) + " Kg&nbsp;&nbsp;&nbsp;<a href=\"t0\"><button>Set 0</button></a></h1>\n<br/>";

MyHTML += "<a
MyHTML += "<a 1&nbsp;"+ (Tare1>0?" "+String(Tare1)+" Kg":"") + "</button></a> " + (Tare1>0? "&nbsp;&nbsp;&nbsp;" +String(val - Tare1):"") + "<br/><br/>";

MyHTML += "<a
MyHTML += "<a 2&nbsp;"+ (Tare2>0?" "+String(Tare2)+" Kg":"") + "</button></a> " + (Tare2>0? "&nbsp;&nbsp;&nbsp;" +String(val - Tare2):"") + "<br/><br/>";

MyHTML += "<a
MyHTML += "<a 3&nbsp;"+ (Tare3>0?" "+String(Tare3)+" Kg":"") + "</button></a> " + (Tare3>0? "&nbsp;&nbsp;&nbsp;" +String(val - Tare3):"") + "<br/><br/>";

MyHTML += "<a
MyHTML += "<a 4&nbsp;"+ (Tare4>0?" "+String(Tare4)+" Kg":"") + "</button></a> " + (Tare4>0? "&nbsp;&nbsp;&nbsp;" +String(val - Tare4):"") + "<br/><br/>";

MyHTML += "<a
MyHTML += "<a 5&nbsp;"+ (Tare5>0?" "+String(Tare5)+" Kg":"") + "</button></a> " + (Tare5>0? "&nbsp;&nbsp;&nbsp;" +String(val - Tare5) :"") + "<br/><br/>";

MyHTML += "<h3>Max weight:&nbsp;&nbsp;" + String(MaxWeight) + " Kg.</h3>";

MyHTML += "</html>";

server.send(200, "text/html", MyHTML);
}

void setup() {

delay(2000);

WiFi.softAP(ssid, password);
server.on("/", handleRoot);
server.on("/t0", TareSet0);
server.on("/-t1", Tare1Del); server.on("/+t1", Tare1Set);
server.on("/-t2", Tare2Del); server.on("/+t2", Tare2Set);
server.on("/-t3", Tare3Del); server.on("/+t3", Tare3Set);
server.on("/-t4", Tare4Del); server.on("/+t4", Tare4Set);
server.on("/-t5", Tare5Del); server.on("/+t5", Tare5Set);
server.begin();

LoadCell.begin();
LoadCell.start(3000);
LoadCell.setCalFactor(217.0); // user set calibration factor (float)
delay(1000);
int i = 0;
for (i = 0; i<20; i++)
{
delay(200);
LoadCell.update();
}
delay(1000);

LoadCell.tareNoDelay();
}

void ToHomeRedir()
{
server.send(200, "text/html", "<html><STYLE type = \"text/css\">html, body {height: 100%; font-size: 46pt;}button {font-size: 52pt; font-style: bold; http-equiv=\"refresh\" content=\"1;URL=\\\" /> <h1>OK</h1></html>");
}

void TareSet0()
{
LoadCell.tare();
MaxWeight = 0;
ToHomeRedir();
}

void Tare1Set()
{
LoadCell.update();
Tare1 = LoadCell.getData();
ToHomeRedir();
}
void Tare1Del()
{
Tare1 = 0;
ToHomeRedir();
}

void Tare2Set()
{
LoadCell.update();
Tare2 = LoadCell.getData();
ToHomeRedir();
}
void Tare2Del()
{
Tare2 = 0;
ToHomeRedir();
}

void Tare3Set()
{
LoadCell.update();
int v = LoadCell.getData();
Tare3 = v;
ToHomeRedir();
}
void Tare3Del()
{
Tare3 = 0;
ToHomeRedir();
}

void Tare4Set()
{
LoadCell.update();
Tare4 = LoadCell.getData();
ToHomeRedir();
}
void Tare4Del()
{
Tare4 = 0;
ToHomeRedir();
}


void Tare5Set()
{
LoadCell.update();
Tare5 = LoadCell.getData();
ToHomeRedir();
}
void Tare5Del()
{
Tare5 = 0;
ToHomeRedir();
}


void loop() {
server.handleClient();
}

String HtmlHead()
{
String ret = "";
ret += ("HTTP/1.1 200 OK\r\n");
ret += ("<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" />\r\n");
ret += (""); // do not forget this one
ret += ("<!DOCTYPE HTML>");
ret += ("<html lang=\"ru-RU\">");
ret += ("<title>WiFi Scales</title>");
ret += ("<STYLE type = \"text/css\">html, body {height: 100%; font-size: 46pt;}button {font-size: 52pt; font-style: bold}</STYLE>");

return ret;
}

Skiffovsky
Автор

Вот он счастливый человек ))) с наступившим новым годом желаю новых технических свершений и как всегда хорошего настроения

ЕвгенийЛеонов-ск
Автор

Как ты верёвку кинул, я подумал что тебя всё задолбало и ты решил вздёрнутся)) Но а если серьезно то я очень жалею что с детства в электронику не вникал, сейчас это очень нужная информация, в наш век технологий. Сколько всего можно сделать самому для дома, даже заказывая разные платки с Али! Очень уважаю людей шарющих в этом направлении. Склиф ты молодец, голова работает и руки из нужного места выросли👌 Ждем продолжения! 😁✋👍👍👍

ЖелезнаяЖизнь
Автор

Спасибо большое что услышал просьбу! С прошедшим Новым Годом и удачи!)

dmitriykanskiy
Автор

Интересный проект. С удовольствием посмотрел . Спасибо за работу

REDKOMISAR
Автор

Как полезно иметь друзей на металлоприёмке! Может кого да ни будь и самолёт на цветмет притаранят! А вообще-гениально!!!!

valeridronov
Автор

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

osipgraphman
Автор

Неплохой получился кантер, на 15 тонн. Как всегда легко и не принужденно...

igorbarchan
Автор

4-проводная схема подключения совсем не является признаком "полуширпотребности". Просто это S-образный датчик, его основное применение - крановые весы. Плата преобразователя в таких весах всегда находится в считаных сантиметрах от датчика, поэтому компенсировать падение напряжения на питающих проводниках не имеет смысла. 6-проводная схема используется в тензодатчиках других типов, применяемых в вагонных, автомобильных, конвейерных и других промышленных весах, где АЦП находится достаточно далеко. По этой причине (проблеме удаленного подключения), все больше датчиков выпускается в "цифровом" исполнении, в которых АЦП и интерфейс находятся в теле датчика.

MrIBronson
Автор

молодец, красавчик) всё по делу, нечего лишнего)

ВладимирГеннадьевич-сб
Автор

подключил вчера HX711 к ком порту без контроллеров через bit bang

toshibamaster
Автор

Мало что понял но, было интересно. А как считывает даные сама эта хрень закрученая.? От туда провода вижу. Как то по деформации и сопротивление меняется что-ли?

aevrom
Автор

Главное чтобы не отпало сверху и по голове не дало. Или веревка не лопнула, больно будет на мягкое место приземлится. Тфу тьфу. Вечно я со своим черным юмором. А так конечно здорово получилось!!!!

АлександрИванов-фъж
Автор

Сегодня посмотрел 16ю серию, про установку крыльев на фюзеляж + вспомнил от чего мотор будет устанавливаться и у меня возник вопрос.... Это ведь все не по настоящему? Прикол ведь, правильно?
Если нет, то обязательно не забудь сохраниться перед вылетом! А то потом все с начала

uriysokolov
Автор

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

TimTim-jkyu
Автор

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

konstantingil
Автор

стесняюсь спросить, накой такая колдобина? обрезок калёной трубы, два рымболта и 4 тензорезстора, и можно мерить до 2 т и носить в нагрудном кармане, если возможно лучше заменить проушины на небольшие рымы, всёж легче

gobeldone
Автор

Шож я у тебя такой улюблённвй. Потрачено, однако...))

ИгорьПанарин-чк
Автор

Разносторонний человек, вижу что электронщик, но механик, монтажник, сварщик и слесарь никакой, прям вообще))) но старается

dxktdxkt
Автор

Хорошее видео! Есть вопрос. Можно ли в hx711 прикрутить датчик усиления, пленочный? по типу MD30-60 пленочный датчик. Если как то можно в двух словах обьяснить как.

Qtekken