Domoticz - wykresy ...
 
Powiadomienia
Wyczyść wszystko

UWAGAStrona oraz Forum Smart'ny Dom nie będzie dostępne 23 Grudnia 2024 ze względu na przenoszenie serwisu na mocniejszą maszynę.

W tym czasie polecam poświęcenie swojego czasu na pomoc partnerowi w przygotowaniu udanych Świąt 😉

Za niedogodności z góry przepraszam, admin

Kontakt

Domoticz Domoticz - wykresy w jednostkach "kg"

170 Wpisów
3 Użytkownicy
3 Reactions
7,033 Wyświetleń
(@steel_rat)
Wpisów: 603
Ekspert
 

Mam pomysł.

Podłącz ESPRX <-> AndruinoTX oraz ESPTX <-> AndruinoRX.

Ustaw w ESPEasy w zakładce Tools->Advanced->Enable Serial port: na check oraz ustaw odpowiednią szybkość transmisji.

Zrób w zakładce Devices urządzenie o nazwie "Generic - Dummy Device". Możesz zostawić pozostałe wartości.

I teraz z Andruino wyślij na Serial polecenie "TaskValueSet,<numer tasku z tabeli>,1,<wartość>". NP.

String waga = String(scale.get_units(), 3);
mySerial.print("TaskValueSet,1,1," +waga);

 Powinna się pojawić wartość. I teraz możesz ją wysłać np. za pomocą mqtt. Tylko najlepiej ustawić sobie intervał wysyłania. Bo coś słabo to działa. Możesz też wysłać przez "Rules"

ps. W sumie powinno wystarczyć połączenie ESPRX <-> AndruinoTX;

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

zrobiłem jak piszesz ale nic się nie dzieje

zamieszczę cały skrypt zerknij bo z pewnością jakieś głupoty tam wpisałem, niby się kompiluje bez błędu ale reakcji na ESP brak (Ustawiłem w ESPEasy w zakładce Tools->Advanced->Enable Serial port: na check oraz szybkość transmisji 9600 - mam nadzieję że dobrze).

image

 

a tak to wygląda w całości - wersja robocza - wagę pokazuje prawidłowo na wyświetlaczu i w serial monitorze tylko nic nie wysyła do esp, wykorzystałem komunikację tylko w jedną stronę czyli połączone w arduino TX z RX w ESP oczywiście z dzielnikiem 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

SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);

HX711 scale;

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

//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


String waga = String(scale.get_units(), 3);
mySerial.print("TaskValueSet,1,1," +1111111); //podstawiłem ręcznie 1111111


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

}
image
 
Dodane : 23/02/2023 7:09 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

Jak ręcznie wstawiasz to musi być stringi.

Nie mySerial.print("TaskValueSet,1,1," +1111111) ale mySerial.print("TaskValueSet,1,1," +"1111111").

Dodatkowo u ciebie powinno być mySerial.print("TaskValueSet,3,1," +"1111111");

Na gotowi to wpisz mySerial.print("TaskValueSet,3,1," +waga);

 
Dodane : 23/02/2023 7:33 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

ale jak było +waga to się burzył przy kompilacji

 
Dodane : 23/02/2023 7:36 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

Co napisał?

 
Dodane : 23/02/2023 7:40 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

jak jest

mySerial.print("TaskValueSet,3,1," +waga);
 
to sie burzy podczas kompilacji i wywala takie coś:

 

 

C:\Users\user\AppData\Local\Temp\arduino_modified_sketch_301766\sketch_feb23a.ino: In function 'void loop()':

sketch_feb23a:61: error: 'waga' was not declared in this scope

mySerial.print("TaskValueSet,3,1," +waga);

^

exit status 1
'waga' was not declared in this scope

 
Dodane : 23/02/2023 7:43 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

Musi być najpierw deklaracja. Pierwsza linia jest nią. Potem się odwołujesz do niej.

String waga = String(scale.get_units(), 3);
mySerial.print("TaskValueSet,3,1," + waga); 
 
Dodane : 23/02/2023 7:51 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

no to jest :

String waga = String(scale.get_units(), 3);
mySerial.print("TaskValueSet,3,1," +waga);
 
Dodane : 23/02/2023 7:53 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

a i tak wywala ten błąd przy kompilacji co zamieściłem wyżej

 
Dodane : 23/02/2023 7:57 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

Pokaż cały log z błędami.

 
Dodane : 23/02/2023 8:00 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

o to chodzi ? 

 

board=uno
boardsmanager.additional.urls=
build.verbose=false
build.warn_data_percentage=75
compiler.cache_core=true
compiler.warning_level=none
console=true
console.auto_clear=true
console.error.file=stderr.txt
console.length=500
console.lines=4
console.output.file=stdout.txt
custom_cpu=nano_atmega328
editor.antialias=true
editor.auto_close_braces=true
editor.caret.blink=true
editor.code_folding=false
editor.divider.size=2
editor.external=false
editor.font=Monospaced,plain,12
editor.indent=true
editor.invalid=false
editor.keys.alternative_cut_copy_paste=true
editor.keys.home_and_end_beginning_end_of_doc=false
editor.keys.shift_backspace_is_delete=true
editor.languages.current=
editor.linenumbers=false
editor.save_on_verify=true
editor.tabs.expand=true
editor.tabs.size=2
editor.update_extension=true
editor.window.height.default=600
editor.window.height.min=290
editor.window.width.default=500
editor.window.width.min=400
export.applet.separate_jar_files=false
export.application.fullscreen=false
export.application.platform=true
export.application.stop=true
export.delete_target_folder=true
gui.scale=auto
last.folder=C:\Users\user\Downloads\Windmeter.ino
last.ide.1.8.5.daterun=1677173106
last.ide.1.8.5.hardwarepath=C:\Program Files (x86)\Arduino\hardware
last.screen.height=768
last.screen.width=1366
last.serial.location=779,43,567,630
last.sketch.count=1
last.sketch.default.location=255,61,530,600,414,0
last.sketch.default.path=C:\Users\user\Documents\Arduino\zbzu_waga_pasieczna_3\zbzu_waga_pasieczna_3.ino
last.sketch0.location=305,111,530,600,414,0
last.sketch0.path=C:\Users\user\Documents\Arduino\zbzu_waga_pasieczna_3_1\zbzu_waga_pasieczna_3_1.ino
last.sketch1.location=255,61,530,600,414,0
last.sketch1.path=C:\Users\user\Documents\Arduino\zbzu_waga_pasieczna_3\zbzu_waga_pasieczna_3.ino
last.sketch2.location=699,177,500,600,414,0
last.sketch2.path=C:\Users\user\Documents\Arduino\Arduino_waga_dzialajacy_skrypt\Arduino_waga_dzialajacy_skrypt.ino
last.sketch3.location=433,84,500,600,414,0
last.sketch3.path=C:\Users\user\Documents\Arduino\zbzu_kurs1_sygnalizacja_swietlna_LED_plus__LCD\zbzu_kurs1_sygnalizacja_swietlna_LED_plus__LCD.ino
platform.auto_file_type_associations=true
preproc.color_datatype=true
preproc.enhanced_casting=true
preproc.imports.list=java.applet.*,java.awt.Dimension,java.awt.Frame,java.awt.event.MouseEvent,java.awt.event.KeyEvent,java.awt.event.FocusEvent,java.awt.Image,java.io.*,java.net.*,java.text.*,java.util.*,java.util.zip.*,java.util.regex.*
preproc.output_parse_tree=false
preproc.save_build_files=false
preproc.substitute_floats=true
preproc.substitute_unicode=true
preproc.web_colors=true
programmer=arduino:usbtinyisp
proxy.manual.hostname=
proxy.manual.password=
proxy.manual.port=
proxy.manual.type=HTTP
proxy.manual.username=
proxy.pac.url=
proxy.type=auto
recent.sketches=C:\Users\user\Documents\Arduino\zbzu_waga_pasieczna_3_1\zbzu_waga_pasieczna_3_1.ino,C:\Users\user\Documents\Arduino\zbzu_waga_pasieczna_3\zbzu_waga_pasieczna_3.ino,C:\Users\user\Documents\Arduino\zbzu_waga_pasieczna_3_ver2\zbzu_waga_pasieczna_3_ver2.ino,C:\Users\user\Documents\Arduino\zbzu_waga_pasieczna_3\zbzu_waga_pasieczna_3\zbzu_waga_pasieczna_3.ino,C:\Users\user\Documents\Arduino\zbzu_waga_pasieczna_2_skrypt_do_kalibracji\zbzu_waga_pasieczna_2_skrypt_do_kalibracji.ino,C:\Users\user\Documents\Arduino\zbzu_waga_oryginal_2_skrypt_do_kalibracji\zbzu_waga_oryginal_2_skrypt_do_kalibracji.ino,C:\Users\user\Documents\Arduino\Arduino_waga_dzialajacy_skrypt\Arduino_waga_dzialajacy_skrypt.ino,C:\Users\user\Documents\Arduino\zbzu_waga_pasieczna_1\zbzu_waga_pasieczna_1.ino,C:\Users\user\Documents\Arduino\zbzu_waga_pasieczna\zbzu_waga_pasieczna.ino,C:\Users\user\Documents\Arduino\zbzu_waga_psieczna_3\zbzu_waga_psieczna_3.ino,C:\Users\user\Documents\Arduino\waga_oryginal_kalibracja\waga_oryginal_kalibracja.ino,C:\Users\user\Documents\Arduino\zbzu_kurs\zbzu_kurs.ino,C:\Users\user\Documents\Arduino\zbzu2222\zbzu2222.ino,C:\Users\user\Documents\Arduino\libraries\HX711_ADC-1.2.12\examples\Calibration\Calibration.ino,C:\Users\user\Documents\Arduino\zbzu_kurs1_sygnalizacja_swietlna_LED_plus__LCD\zbzu_kurs1_sygnalizacja_swietlna_LED_plus__LCD.ino,C:\Users\user\Documents\Arduino\zbzu_kurs1\zbzu_kurs1.ino,C:\Users\user\Documents\Arduino\zbzu_pomiar_temperatury_na_DS18B20_z_LCD\zbzu_pomiar_temperatury_na_DS18B20_z_LCD.ino,C:\Users\user\Documents\Arduino\zbzu_pomiar_wiatru\zbzu_pomiar_wiatru.ino,C:\Users\user\Documents\Arduino\zbzu_pomiar_temp_na_dwaczujniki_testowo\zbzu_pomiar_temp_na_dwaczujniki_testowo.ino,C:\Users\user\Documents\Arduino\zbzu_pomiar_temp_na_dwa_czujnikiDS18B20\zbzu_pomiar_temp_na_dwa_czujnikiDS18B20.ino,C:\Users\user\Documents\Arduino\zbzu_pomiar_temperatury_na_DS18B20_dwa_czujniki\zbzu_pomiar_temperatury_na_DS18B20_dwa_czujniki.ino,C:\Users\user\Documents\Arduino\zbzu_2_czujniki_temp_testowy\zbzu_2_czujniki_temp_testowy.ino,C:\Users\user\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\examples\CustomChars\CustomChars.pde,C:\Users\user\Documents\Arduino\libraries\Arduino-Temperature-Control-Library-master\examples\Multiple\Multiple.pde,C:\Users\user\Documents\Arduino\libraries\DS18B20\examples\ds18b20_framework\ds18b20_framework.ino,C:\Users\user\Documents\Arduino\libraries\DS18B20\examples\ds18b20_multiple_sensors\ds18b20_multiple_sensors.ino,C:\Users\user\Documents\Arduino\libraries\DS18B20\examples\ds18b20_read_temperature_one_sensor\ds18b20_read_temperature_one_sensor.ino,C:\Users\user\Documents\Arduino\zbzu_pomiar_wiatru_i_kierunku\zbzu_pomiar_wiatru_i_kierunku.ino,C:\Users\user\Documents\Arduino\zbzu_pierwszy_szablon_na_LCD_16x4\zbzu_pierwszy_szablon_na_LCD_16x4.ino\zbzu_pierwszy_szablon_na_LCD_16x4.ino.ino,C:\Users\user\Documents\Arduino\libraries\DS18B20\examples\search_ds18b20_addresses\search_ds18b20_addresses.ino,C:\Users\user\Documents\Arduino\zbzu_i2c-scanner_adresow\zbzu_i2c-scanner_adresow.ino,C:\Users\user\Documents\Arduino\zbzu_pomiar_temperatury_na_DS18B20\zbzu_pomiar_temperatury_na_DS18B20.ino,C:\Users\user\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\examples\SerialDisplay\SerialDisplay.pde,C:\Users\user\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\examples\HelloWorld\HelloWorld.pde,C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\examples\HelloWorld\HelloWorld.ino,C:\Users\user\Documents\Arduino\zbzu_pierwszy_szablon_na_LCD_16x4\zbzu_pierwszy_szablon_na_LCD_16x4.ino,C:\Users\user\Documents\Arduino\libraries\OneWire\examples\DS18x20_Temperature\DS18x20_Temperature.pde,C:\Users\user\Documents\Arduino\libraries\DS18B20\examples\ds18b20_sensor_address_in_flash_memory\ds18b20_sensor_address_in_flash_memory.ino,C:\Users\user\Downloads\8706f2f7ae5dbfe6498e04bf1cbfde4a-7262bc7919dcd6a8127a9d177007cb71533c20cd\8706f2f7ae5dbfe6498e04bf1cbfde4a-7262bc7919dcd6a8127a9d177007cb71533c20cd\zbzu_i2c-scanner_adresow\zbzu_i2c-scanner_adresow.ino,C:\Users\user\Downloads\8706f2f7ae5dbfe6498e04bf1cbfde4a-7262bc7919dcd6a8127a9d177007cb71533c20cd\8706f2f7ae5dbfe6498e04bf1cbfde4a-7262bc7919dcd6a8127a9d177007cb71533c20cd\i2c-scanner\i2c-scanner.ino,C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\examples\Display\Display.ino,C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\examples\Blink\Blink.ino,C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\examples\Autoscroll\Autoscroll.ino,C:\Program Files (x86)\Arduino\examples\06.Sensors\ADXL3xx\ADXL3xx.ino,C:\Program Files (x86)\Arduino\examples\01.Basics\Blink\Blink.ino
run.display=1
run.options=
run.options.memory=false
run.options.memory.initial=64
run.options.memory.maximum=256
run.present.bgcolor=#666666
run.present.exclusive=false
run.present.stop.color=#cccccc
serial.databits=8
serial.debug_rate=9600
serial.line_ending=3
serial.parity=N
serial.port=COM3
serial.port.file=COM3
serial.port.iserial=8573130353335190C172
serial.stopbits=1
sketchbook.path=C:\Users\user\Documents\Arduino
software=ARDUINO
target_package=arduino
target_platform=avr
update.check=true
update.id=-8417772871944476370
update.last=1677095534080
upload.using=bootloader
upload.verbose=false
upload.verify=true

 
Dodane : 23/02/2023 8:04 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

Tak ma być.

if (mySerial.available()){ //komunikacja z ESP  
  String waga = String(scale.get_units(), 3);
  mySerial.print("TaskValueSet,3,1," + waga); //podstawiłem ręcznie 1111111
}

Masz podłacone tx z rx i rx z tx?

 
Dodane : 23/02/2023 8:04 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

nie, mam tylko w jedną stronę czyli w arduino TX a w ESP RX

 
Dodane : 23/02/2023 8:08 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

czyli brakowało {} po wstawieniu kompilacja przechodzi ale na ESP bez zmian nic nie ma

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

tak brakowało. tylko że ja źle spojrzałem i ten "if" działa przy odbieraniu. Po prostu usuń tego całą linie z "IF" oraz klamrę na końcu.

Zostaw tylko

  String waga = String(scale.get_units(), 3);
  mySerial.print("TaskValueSet,3,1," + waga); //podstawiłem ręcznie 1111111
 
Dodane : 23/02/2023 8:13 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

zrobiłem, jest bez zmian na esp nic się nie pojawia

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

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


String waga = String(scale.get_units(), 3);
mySerial.print("TaskValueSet,3,1," +waga);


lcd.setCursor(0,0);

 

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

A dummy devices masz tak ustawione:

as1
 
Dodane : 23/02/2023 8:27 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

u mnie to wygląda tak:

image
 
Dodane : 23/02/2023 8:31 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

Chyba nie jest to najnowsza wersja ESPEasy?

Mogę sprawdzić tylko podaj jaką wersję używasz. Ja testowałem na najnowszym ESPEasy.

 
Dodane : 23/02/2023 8:34 pm
 zibi
(@zibi)
Wpisów: 159
Pomocny
Autor tematu
 

na pewno nie jest to najnowsza bo musiałem dopasować taką która obsługuje czujniki wilg i temp SHT3X (nie wszystkie to obsługują)

IDX'a na razie mam wyłączonego bo mi w tej chwili nie jest potrzebny

ja mam wersję ESP_Easy_v2.0-20180218_test_ESP8266_4096.bin

czyli z 2018 roku

 
Dodane : 23/02/2023 8:36 pm
Strona 2 / 9
Udostępnij: