Skocz do zawartości

Dane UART z Arduino Promini na serwer www ESP8266 mini D1


jaro18

Pomocna odpowiedź

Witam wszystkich

Jestem nowy na tym forum.  Dlatego proszę o przeczytanie całego opisu problemu.

Zbudowałem na arduino Promini i VL53I0 (laserowy czujnik odległości) urządzenie do pomiaru poziomu szamba na mojej działce. Na chwilę podłączyłem wyświetlacz, który jest odzwierciedleniem portu com. Docelowo chciałem odczytywać "poziom" na arduino 8266 mini które połączyłem przez UART (Rx,Tx) z arduino. I tu poległem a wujek Google nie potrafi mi pomóc . dlatego proszę was o pomoc. Jak napisać program do "ESP" żeby wyświetlało to co wysyła arduino po "com" (strona www, serwer http).

Zamieszczam kod z arduino mini pro:

#include "VL53L0X.h"
#include <Wire.h>

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
#define OLED_RESET     4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

VL53L0X sensor;
#define LONG_RANGE


#define HIGH_SPEED
#define HIGH_ACCURACY

void setup()
{
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(115200);
  Wire.begin();
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.display();
  delay(700);
  display.clearDisplay();
  display.display();
  delay(500);
  display.setTextSize(2);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0,0);
  display.print("Polaczono");
  display.display();
  delay(2500);
  display.clearDisplay();
  display.display();
  
 
 

  sensor.init();
  sensor.setTimeout(500);

 
 #if defined LONG_RANGE
  // lower the return signal rate limit (default is 0.25 MCPS)
  sensor.setSignalRateLimit(0.1);
  // increase laser pulse periods (defaults are 14 and 10 PCLKs)
  sensor.setVcselPulsePeriod(VL53L0X::VcselPeriodPreRange, 16);
  sensor.setVcselPulsePeriod(VL53L0X::VcselPeriodFinalRange, 14);
#endif

#if defined HIGH_SPEED
  // reduce timing budget to 20 ms (default is about 33 ms)
 // sensor.setMeasurementTimingBudget(20000);
#elif defined HIGH_ACCURACY
  // increase timing budget to 200 ms
  sensor.setMeasurementTimingBudget(2000000); 
#endif

}

void loop()
{

int distancemm = sensor.readRangeSingleMillimeters();

  distancemm = distancemm +1; //Ustawienie zera
  
  display.display();
  display.clearDisplay();
  delay(500);
  display.setTextSize(2);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0,0);
  display.print("odleglosc");
  display.display();


if ( distancemm >= 2000)   
{
  digitalWrite(LED_BUILTIN, LOW);
}

else
{
  Serial.println(distancemm);
  digitalWrite(LED_BUILTIN, HIGH);
  display.setCursor(0,15);
  display.print(distancemm);
  display.display();
}
}

Chciałbym na stronie www mieć tylko odczyt pomiaru czyli to czytam na porcie com. Tak np: po wpisaniu adresu ip na stronie miało by być wyświetlana tylko odległość (cyfry z portu com).

Całość zasilana z paneli solarnych i lokalnej stacji akumulatorów. Z której również zasilone będzie 2 kamery ip online oraz jedna "obrotowa". Jeśli ktoś zainteresowany to podpowiem co i jak.

 

IMG_20201024_193156.jpg

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.