Powiadomienia
Wyczyść wszystko
UWAGA: Strona 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
Domoticz
170
Wpisów
3
Użytkownicy
3
Reactions
7,033
Wyświetleń
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
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).
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 }
Dodane : 23/02/2023 7:09 pm
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
Autor tematu
ale jak było +waga to się burzył przy kompilacji
Dodane : 23/02/2023 7:36 pm
Co napisał?
Dodane : 23/02/2023 7:40 pm
Autor tematu
jak jest
mySerial.print("TaskValueSet,3,1," +waga);
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
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
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
Autor tematu
a i tak wywala ten błąd przy kompilacji co zamieściłem wyżej
Dodane : 23/02/2023 7:57 pm
Pokaż cały log z błędami.
Dodane : 23/02/2023 8:00 pm
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
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
Autor tematu
nie, mam tylko w jedną stronę czyli w arduino TX a w ESP RX
Dodane : 23/02/2023 8:08 pm
Autor tematu
czyli brakowało {} po wstawieniu kompilacja przechodzi ale na ESP bez zmian nic nie ma
Dodane : 23/02/2023 8:10 pm
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
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
A dummy devices masz tak ustawione:
Dodane : 23/02/2023 8:27 pm
Autor tematu
u mnie to wygląda tak:
Dodane : 23/02/2023 8:31 pm
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
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