Domoticz - wykresy ...
 
Powiadomienia
Wyczyść wszystko

Domoticz Domoticz - wykresy w jednostkach "kg"

170 Wpisów
3 Użytkownicy
3 Likes
4,721 Wyświetleń
(@steel_rat)
Wpisów: 603
Ekspert
 

W esp Easy jest opcja log w tools. Zobacz co się tam pojawia jak wysyłasz wartości z Arduino do ESP.

 
Dodane : 27/02/2023 9:16 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

takie coś sobie leci :

 

image

 

jak się przełączę i puszczę z putty TaskValueSet,1,1,1.435 na samo ESP po USB to w zasadzie jest to samo tylko wartość się pojawia

 

image
image
 
Dodane : 27/02/2023 9:46 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

Ktoś pisze że zadziałało coś takiego.

mySerial.print("TaskValueSet,1,1");
mySerial.println(waga);
delay(3000);
 
Dodane : 27/02/2023 10:14 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

niestety bez zmian dalej to samo

 

image
 
Dodane : 27/02/2023 10:21 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

A to ?

mySerial.print("TaskValueSet,1,1,");
mySerial.println(waga);
delay(3000);
 
Dodane : 27/02/2023 10:27 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

tak, tam brakowało przecinka

z arduino wychodziło tak:

 

image

 a na ESP dalej zera

poprawiłem i dalej bez zmian

 
Dodane : 27/02/2023 10:29 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

Wychodzi dobrze ale ESP źle to interpretuje. Dlaczego.. Co może być nie tak. Masz podpięte tx z rx i rx z tx urządzeń?

 
Dodane : 27/02/2023 10:41 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

dziwne jest to że :

- jak puszczam z arduino na kompa po usb i czytam w putty to wynik jest pokazywany

- jak puszczam z kompa po usb na ESP z putty TaskValueSet,1,1,1.435 to wynik na ESP jest

- a jak puszczam tą samą droga po usb z arduino na ESP to wyniku nie ma i sa zera a z logu widać że jest odcztywane to co arduino wysyła bo się w logu pojawiaja wpisy z tą samą częstotliwościa co arduino wypluwa tylko są zera

 

tak mam podpięte juz nawet zamienałem RX z TX i dalej to samo

 
Dodane : 27/02/2023 10:41 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

Pokaż jeszcze program jaki masz w Arduino.

 
Dodane : 27/02/2023 10:46 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 
#include "HX711.h"
#include <SoftwareSerial.h> //biblioteka do wysyłaniawartości wagi na esp, zmiana pinów RX i TX arduino

#define calibration_factor -21053.00 //This value is obtained using the SparkFun_HX711_Calibration sketch
//-20941.00 to moja wartośc kalibracji czujników uzyskana w innym skrypcie
#include <LiquidCrystal_I2C.h> //biblioteka obsługująca typ wyświetlacza
LiquidCrystal_I2C lcd(0x27,20,4); //adres i typ wyświetlacza

#define DOUT 4 //przypisanie pinu dla danych z układu HX711
#define CLK 5 //przypisanie pinu dla danych z układu HX711
#define rxPin 3 //zdefiniowanie innych pinów RX na arduino odbieranie danych
#define txPin 6 //zdefiniowanie innych pinów TX na arduino wysyłanie danych
int loops = 0;

SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);

HX711 scale;

void setup() {
Serial.begin(2400);
mySerial.begin(2400);

//dodane funkcje wysyłania danych na wyświetlacz
lcd.init(); // inicjalizacja wyświetlacza
lcd.backlight(); //aktywacja podświetlenia wyświetlacza
lcd.setCursor(1,0);
lcd.print("-- projekt nr.3_1 --");
lcd.setCursor(0,1);
lcd.print("-- waga --");

delay(5000);
lcd.clear();

Serial.println("HX711 scale demo");

scale.begin(DOUT, CLK);
scale.set_scale(calibration_factor); //This value is obtained by using the SparkFun_HX711_Calibration sketch
//Ta wartość jest uzyskiwana za pomocą szkicu SparkFun_HX711_Calibration
//scale.tare(); //Assuming there is no weight on the scale at start up, reset the scale to 0
//Zakładając, że podczas uruchamiania waga nie jest obciążona, zresetuj wagę do 0 - zablokowałem tą funkcję żeby waga się nie resetowała po zaniku zasilania
scale.set_offset(-78906);
//Serial.println("Readings:");
Serial.println("aktualna waga:");
}

void loop() {
//Serial.print("Reading: ");
Serial.print("aktualna waga: ");
Serial.print(scale.get_units(), 3); //scale.get_units() returns a float
//ustawienie ile ma być pokazywanych miejsc po przecinku
Serial.print(" kg"); //You can change this to kg but you'll need to refactor the calibration_factor
//zmieniłem z lbs na kg
Serial.println();//funkcja przejścia do następnego wiersza - działa jak ENTER


//mySerial.print(scale.get_units(), 3);// wysyłanie do ESP

//if (mySerial.available()){ //komunikacja z ESP

if (loops > 10){
String waga = String(scale.get_units(), 3);
//mySerial.print("TaskValueSet,1,1," + waga +"\r\n");//pierwsza liczba oznacza nr wiersza w ESP na którym mamy odczyt
mySerial.print("TaskValueSet,1,1,");
mySerial.println(waga);
delay(3000);



loops = 0;

//testowe wysłanie na serial monitor
Serial.print("==================================================");
Serial.println();
Serial.print("wysłanie wartości wagi na ESP - waga = ");
Serial.print(waga);
Serial.print(" kg");
Serial.println();
Serial.print("==================================================");
Serial.println();
}
loops++;

lcd.setCursor(0,0);
lcd.print("-- waga  --");
lcd.setCursor(1,2);
lcd.print("nr.1 = ");
lcd.setCursor(11,2);
lcd.print(scale.get_units(), 3); //scale.get_units() returns a float
//scale.get_units() zwraca liczbę zmiennoprzecinkową z ustawieniem ile ma być pokazywanych miejsc po przecinku
lcd.print("kg "); //You can change this to kg but you'll need to refactor the calibration_factor
//zmieniłem z lbs na kg
//lcd.println();
//zablokowałem tą "funkcję lcd.println();" bo mi wyświetlała poziome kreski na wyświetlaczu

}
 
Dodane : 27/02/2023 10:48 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

Zróbmy jeszcze taką próbę. Usuń albo zakomentuj wszystkie linie z "Serial.print" i  "Serial.println"

"mySerial" zmień na "Serial". Podłącz Arduino z ESP za pomocą pinów opisanych jako tx i rx na płytce. I sprawdź.

#include "HX711.h"
#include <SoftwareSerial.h> //biblioteka do wysyłaniawartości wagi na esp, zmiana pinów RX i TX arduino

#define calibration_factor -21053.00 //This value is obtained using the SparkFun_HX711_Calibration sketch
//-20941.00 to moja wartośc kalibracji czujników uzyskana w innym skrypcie
#include <LiquidCrystal_I2C.h> //biblioteka obsługująca typ wyświetlacza
LiquidCrystal_I2C lcd(0x27,20,4); //adres i typ wyświetlacza

#define DOUT 4 //przypisanie pinu dla danych z układu HX711
#define CLK 5 //przypisanie pinu dla danych z układu HX711
#define rxPin 3 //zdefiniowanie innych pinów RX na arduino odbieranie danych
#define txPin 6 //zdefiniowanie innych pinów TX na arduino wysyłanie danych
int loops = 0;

SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);

HX711 scale;

void setup() {
Serial.begin(2400);
mySerial.begin(2400);

//dodane funkcje wysyłania danych na wyświetlacz
lcd.init(); // inicjalizacja wyświetlacza
lcd.backlight(); //aktywacja podświetlenia wyświetlacza
lcd.setCursor(1,0);
lcd.print("-- projekt nr.3_1 --");
lcd.setCursor(0,1);
lcd.print("-- waga --");

delay(5000);
lcd.clear();

Serial.println("HX711 scale demo");

scale.begin(DOUT, CLK);
scale.set_scale(calibration_factor); //This value is obtained by using the SparkFun_HX711_Calibration sketch
//Ta wartość jest uzyskiwana za pomocą szkicu SparkFun_HX711_Calibration
//scale.tare(); //Assuming there is no weight on the scale at start up, reset the scale to 0
//Zakładając, że podczas uruchamiania waga nie jest obciążona, zresetuj wagę do 0 - zablokowałem tą funkcję żeby waga się nie resetowała po zaniku zasilania
scale.set_offset(-78906);
//Serial.println("Readings:");
Serial.println("aktualna waga:");
}

void loop() {
//Serial.print("Reading: ");
//Serial.print("aktualna waga: ");
//Serial.print(scale.get_units(), 3); //scale.get_units() returns a float
//ustawienie ile ma być pokazywanych miejsc po przecinku
//Serial.print(" kg"); //You can change this to kg but you'll need to refactor the calibration_factor
//zmieniłem z lbs na kg
//Serial.println();//funkcja przejścia do następnego wiersza - działa jak ENTER


//mySerial.print(scale.get_units(), 3);// wysyłanie do ESP

//if (mySerial.available()){ //komunikacja z ESP

if (loops > 10){
String waga = String(scale.get_units(), 3);
//mySerial.print("TaskValueSet,1,1," + waga +"\r\n");//pierwsza liczba oznacza nr wiersza w ESP na którym mamy odczyt
Serial.print("TaskValueSet,1,1,");
Serial.println(waga);
delay(3000);



loops = 0;

//testowe wysłanie na serial monitor/
//Serial.print("==================================================");
//Serial.println();
//Serial.print("wysłanie wartości wagi na ESP - waga = ");
//Serial.print(waga);
//Serial.print(" kg");
//Serial.println();
//Serial.print("==================================================");
//Serial.println();
}
loops++;

lcd.setCursor(0,0);
lcd.print("-- waga  --");
lcd.setCursor(1,2);
lcd.print("nr.1 = ");
lcd.setCursor(11,2);
lcd.print(scale.get_units(), 3); //scale.get_units() returns a float
//scale.get_units() zwraca liczbę zmiennoprzecinkową z ustawieniem ile ma być pokazywanych miejsc po przecinku
lcd.print("kg "); //You can change this to kg but you'll need to refactor the calibration_factor
//zmieniłem z lbs na kg
//lcd.println();
//zablokowałem tą "funkcję lcd.println();" bo mi wyświetlała poziome kreski na wyświetlaczu

}
 
Dodane : 27/02/2023 10:56 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

na serial monitorze mi leci tak:

image

 

na ESP dalej to samo:

image

w logu ESP lecą cyklicznie odczyty ale z zerami:

image

czyli generalnie bez zmian, dalej to samo, RX TX połączone tak jak dawniej przez dzielnik napięcia

 

 

#include "HX711.h"
#include <SoftwareSerial.h> //biblioteka do wysyłaniawartości wagi na esp, zmiana pinów RX i TX arduino

#define calibration_factor -21053.00 //This value is obtained using the SparkFun_HX711_Calibration sketch
//-20941.00 to moja wartośc kalibracji czujników uzyskana w innym skrypcie
#include <LiquidCrystal_I2C.h> //biblioteka obsługująca typ wyświetlacza
LiquidCrystal_I2C lcd(0x27,20,4); //adres i typ wyświetlacza

#define DOUT 4 //przypisanie pinu dla danych z układu HX711
#define CLK 5 //przypisanie pinu dla danych z układu HX711
#define rxPin 3 //zdefiniowanie innych pinów RX na arduino odbieranie danych
#define txPin 6 //zdefiniowanie innych pinów TX na arduino wysyłanie danych
int loops = 0;

SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);

HX711 scale;

void setup() {
Serial.begin(2400);
mySerial.begin(2400);

//dodane funkcje wysyłania danych na wyświetlacz
lcd.init(); // inicjalizacja wyświetlacza
lcd.backlight(); //aktywacja podświetlenia wyświetlacza
lcd.setCursor(1,0);
lcd.print("-- projekt nr.3_1 --");
lcd.setCursor(0,1);
lcd.print("-- waga --");

delay(5000);
lcd.clear();

//Serial.println("HX711 scale demo");

scale.begin(DOUT, CLK);
scale.set_scale(calibration_factor); //This value is obtained by using the SparkFun_HX711_Calibration sketch
scale.set_offset(-78906);
//Serial.println("aktualna waga:");
}

void loop() {

if (loops > 10){
String waga = String(scale.get_units(), 3);
Serial.print("TaskValueSet,1,1,");
Serial.println(waga);
delay(3000);

loops = 0;

}
loops++;

lcd.setCursor(0,0);
lcd.print("-- waga --");
lcd.setCursor(1,2);
lcd.print("nr.1 = ");
lcd.setCursor(11,2);
lcd.print(scale.get_units(), 3); //scale.get_units() returns a float
lcd.print("kg "); //You can change this to kg but you'll need to refactor the calibration_factor

}

 

 
Dodane : 27/02/2023 11:17 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

zamiast waga wyślij jakąś liczbę. np" 1.522"

 
Dodane : 27/02/2023 11:28 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

wysyła ale na serial monitor

na ESP dalej zera

tylko że teraz to chyba nie ma rozkazu wysyłania na ESP ?

void loop() {

if (loops > 10){
String waga = String(scale.get_units(), 3);
Serial.print("TaskValueSet,1,1,");
Serial.println(1.522);
delay(3000);

loops = 0;
 
Dodane : 27/02/2023 11:35 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

A przełączyłeś kabelki z pinów od softserial na piny od tx i rx fizycznego ?? i to 1.522 ma być miedzy  "" 🙂

 
Dodane : 27/02/2023 11:44 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

nie, a mam też zmienić nr pinów w programie czy nie ?

 
Dodane : 27/02/2023 11:47 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

NIE. jak masz na płytce oznaczone piny jako tx i rx to tam masz co idzie na monitor z USB, taki mirror. Nic nie zmieniasz.

Dlatego też usunąłem wszystkie pozostałe polecenia do "Serial".

 
Dodane : 27/02/2023 11:56 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

piny przepięte na 0 RX i 1 TX płytki arduino, ta wpisana ręcznie wartość 1.522 nigdzie się nie pojawiła, w serial monitorze lecą pomiary wagi, a w ESP dalej bez zmian zera, a w logu ESP lecą odczyty też z zerami

 
Dodane : 28/02/2023 12:00 am
(@steel_rat)
Wpisów: 603
Ekspert
 

Masz coś takiego teraz:

String waga = String(scale.get_units(), 3);
Serial.print("TaskValueSet,1,1,");
Serial.println("1.522");
delay(3000);
 
Dodane : 28/02/2023 12:21 am
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

dokładnie tak

 
Dodane : 01/03/2023 11:18 pm
Strona 7 / 9
Udostępnij: