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;
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
}
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);
ale jak było +waga to się burzył przy kompilacji
Co napisał?
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
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);
no to jest :
String waga = String(scale.get_units(), 3);
mySerial.print("TaskValueSet,3,1," +waga);
a i tak wywala ten błąd przy kompilacji co zamieściłem wyżej
Pokaż cały log z błędami.
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
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?
nie, mam tylko w jedną stronę czyli w arduino TX a w ESP RX
czyli brakowało {} po wstawieniu kompilacja przechodzi ale na ESP bez zmian nic nie ma
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
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);
Chyba nie jest to najnowsza wersja ESPEasy?
Mogę sprawdzić tylko podaj jaką wersję używasz. Ja testowałem na najnowszym ESPEasy.
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




