Skocz do zawartości

jakub51996

Użytkownicy
  • Zawartość

    8
  • Rejestracja

  • Ostatnio

Reputacja

1 Neutralna

O jakub51996

  • Ranga
    2/10

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Dziękuję za pomoc. Osiągnąłem wystarczającą dokładność. Mam ostatnie pytanie w sprawie czujników czy podłączenie ich dwóch pod zasilanie 3.3V w ESP32 nie spali płytki?
  2. Znów był problem z podłączeniem znaczy podłączyłem pod pin 32 oraz zasilanie pod 3,3V masę oczywiście miałem podłączoną. Teraz mam pytanie jak dobrać odpowiedni zakres aby wilgotność była wyświetlana w %? Wiem że służy do tego rozkaz output_value = map(output_value,550,0,0,100) czy jaką maksymalną wartość ma dać 4095?
  3. Dzięki za odpowiedz. Dodałem konfiguracje pinu i jeszcze raz wszystko podłączyłem i zadziałał. Teraz mam problem z czujnikiem wilgotność gleby FC-28 który wskazuje wynik 4095 i nie reaguje na wodę. Podłączam do pinu 35 oraz zasilanie 5v. Czy powinnem zastosować jakąś bibliotekę? int sensor_pin = 35; int value ; void setup() { Serial.begin(115200); Serial.println("Reading"); delay(2000); pinMode(sensor_pin, INPUT); } void loop() { value= analogRead(sensor_pin); Serial.print("Moisture : "); Serial.print(value); Serial.println("%"); delay(1000); }
  4. Witam. Mam problem z czujnikami a dokładnie wyświetlają fikcyjne dane. Na razie opisze problem z DS18B20 wgrałem przykład z biblioteki ale wyniki na porcie wynoszą -127.00ºC oraz -196.60ºF. Mam esp32 devkit v1 i podpinam do pinu 4 z rezystorem. Może ktoś miał podobny problem? #include <OneWire.h> #include <DallasTemperature.h> // GPIO where the DS18B20 is connected to const int oneWireBus = 4; // Setup a oneWire instance to communicate with any OneWire devices OneWire oneWire(oneWireBus); // Pass our oneWire reference to Dallas Temperature sensor DallasTemperature sensors(&oneWire); void setup() { // Start the Serial Monitor Serial.begin(115200); // Start the DS18B20 sensor sensors.begin(); } void loop() { sensors.requestTemperatures(); float temperatureC = sensors.getTempCByIndex(0); float temperatureF = sensors.getTempFByIndex(0); Serial.print(temperatureC); Serial.println("ºC"); Serial.print(temperatureF); Serial.println("ºF"); delay(5000); }
  5. Witam. Chciałem zrobić serwer tcp na esp32 który by miał odbierać dane z esp32 (wysyła mu dane wilgotność i temperaturę) do celowo ma być dwa takie esp32 z czujnikami. Tutaj ma problem bo serwer odbiera dane od czujników tylko ,że odbiera je po kolej i na wyświetlaczu mogę wyświetlić tylko wartość np temperatury z czujnika pierwszego( chciałbym aby można wyświetlać wilgotność i temperaturę z czujnika 1 na raz a po naciśnieciu przycisku nastąpiła zmiana na wartość czujnika 2). Nie wiem jak mogę to zrobić liczę na każdą pomoc, proszę też o jakieś podobne przykłady. #include <WiFi.h> #define SLEEP_TIME_SECONDS 10 const char* ssid ="xxx"; const char* password ="xx"; WiFiServer server(8088); void setup() { Serial.begin(115200); Serial.print("Connecting to "); Serial.println(ssid); /* connecting to WiFi */ WiFi.begin(ssid, password); /*wait until ESP32 connect to WiFi*/ while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected with IP address: "); Serial.println(WiFi.localIP()); /* start Server */ server.begin(); } void loop() { /* listen for client */ WiFiClient client = server.available(); uint8_t data[30]; if (client) { Serial.println("new client"); /* check client is connected */ while (client.connected()) { if (client.available()) { int len = client.read(data, 30); if(len < 30){ data[len] = '\0'; }else { data[30] = '\0'; } Serial.print("client sent: "); Serial.println((char *)data); } } } }
  6. Stworzyłem program jak mi podpowiadałeś ale dalej są dwa problemy pierwszy to Hello world wyświetla tylko sekunde ( chciałem aby był do ponownego naciśnięcia przycisku) oraz Home come wyświetla się wtedy kiedy jeszcze jest hello world. #include <LiquidCrystal_I2C.h> // set the LCD number of columns and rows int lcdColumns = 16; int lcdRows = 2; LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows); int buttonpin = 26; volatile bool pressed; int buttonState = 0; int last = digitalRead(26); void setup() { lcd.init(); // turn on LCD backlight lcd.backlight(); pinMode(buttonpin, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(26), button, FALLING); } void loop() { if (pressed) { pressed = false; lcd.setCursor(0, 0); // print message lcd.print("Hello, World!"); delay(1000); }else{ lcd.setCursor(0, 0); // print message lcd.print("Home, come!"); delay(1000); // clears the display to print new message lcd.clear(); }} void button(void) { pressed = true; }
  7. Dzięki za pomocą. Macie chyba rację, że w moim przypadku najlepszą opcją będą przerwania bo program ma działać że wyświetla cały czas hello World aż do przycisku i przełączania na Home come i tak w kółko. Mam pytanie do przerwan co powinnem wpisać funkcji button aby działało to na przemianie? void setup (){ attachInterrupt(digitalPinToInterrupt(26), button, RISING); } void loop(){ } void button (){ }
  8. Witam. Mam zamiar stworzenia wyświetlacza który ma wyświetlać dwie różne informacje z wykorzystaniem przycisku. Czyli naciśnięcie (i puszczenie) przycisku powoduje zmianę tekstu na drugi. Tylko mój program na zmianę wyświetla obie opcje(nie w równych ostępach czasu) . W czym może być problem? Wyświetlacz pracuje z esp32. #include <LiquidCrystal_I2C.h> // set the LCD number of columns and rows int lcdColumns = 16; int lcdRows = 2; LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows); int buttonpin = 26; int buttonState = 0; void setup() { lcd.init(); // turn on LCD backlight lcd.backlight(); pinMode(buttonpin, INPUT); } void loop() { buttonState = digitalRead(buttonpin); if (buttonState == LOW) { lcd.setCursor(0, 0); // print message lcd.print("Hello, World!"); delay(1000); // clears the display to print new message lcd.clear(); } else { lcd.setCursor(0, 1); // print message lcd.print("Home, come!"); delay(1000); // clears the display to print new message lcd.clear(); } }
×
×
  • Utwórz nowe...