Skocz do zawartości

Cykliczne resetowanie się ESP01-S


karolkarolski25

Pomocna odpowiedź

Cześć. Od jakiegoś czasu bawię się ESP01-S, które zakupiłem na aliexpress. Jego zadaniem jest odczytywanie temperatury z dwóch czujników DS18b20 i odsyłanie w formacie JSON gdy RaspberryPi puści GET. Wszystko działa poprawnie, ale ESP potrafi się co jakiś zresetować i być niedostępne przez kilka sekund przez co RPi nie może otrzymać danych. Czy może być to spowodowane przez problem z RAM'em? ESP jest podłączone w następujący sposób: VCC-3.3v, GND-GND, Ch_PD-3.3v, GPIO0-Termometry, GPIO1-Wewnętrzy LED. Tak prezentuje się kod:

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#ifndef STASSID
#define WifiSsid "SSID"
#define WifiPassword "WifiPassword"
#endif

#define LED_PIN 1

#define ThermometerInputPin 0

OneWire ThermometerCommunication(ThermometerInputPin);
DallasTemperature Thermometers(&ThermometerCommunication);
ESP8266WebServer WaterTankApi(80);

void BlinkGetLed(int delayBetweenChangeLedState)
{
  digitalWrite(LED_PIN, LOW);  // On
  delay(delayBetweenChangeLedState);
  digitalWrite(LED_PIN, HIGH);  //Off
}

String GetWaterTemperatureJson() {
  Thermometers.requestTemperatures();
  return "{\"rear\":" + String(Thermometers.getTempCByIndex(1), 2) + ",\"front\":" + String(Thermometers.getTempCByIndex(0), 2) + "}";
}

void HandleGetWaterTemperatureRequest()
{
  WaterTankApi.send(200, "text/plain", GetWaterTemperatureJson());
  BlinkGetLed(100);
}

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

  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, HIGH);  //Off

  WiFi.mode(WIFI_STA);
  WiFi.begin(WifiSsid, WifiPassword);
  Serial.println("");

  Thermometers.begin();

  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(WifiSsid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
  Serial.print("WiFi RSSI: ");
  Serial.print(WiFi.RSSI());
  Serial.println(" dBi");

  WaterTankApi.on("/", HandleGetWaterTemperatureRequest);

  WaterTankApi.begin();

  Serial.println("HTTP WaterTankApi started");
}

void loop(void)
{
  WaterTankApi.handleClient();
}

Dodam, że mam też drugie, takie samo esp z podobnym kodem. Różnica jest taka, że jedno GPIO jest używane tylko HIGH, LOW (sterowanie przekaźnikiem) i potrafi się tak samo zachować.

Czy może być to spowodowane przez Serial?

Czy to nie jest zbyt duże zadanie dla tego esp? Czy powinienem użyć jakiegoś innego?

Mam nadzieję, że nie zapomniałem czegoś umieścić w poście. POZDRO!

Edytowano przez karolkarolski25
Link do komentarza
Share on other sites

(edytowany)

Nie ukrywam, że nie mogę sprawdzić co wypisuje, bo nie jest podłączone do kompa, tylko jest na takiej podstawce. IMG_20211030_132756.thumb.jpg.b0f827d236cce8140c708eabbf70a705.jpg  Jeżeli chodzi o zasilanie, to jest zasilacz 12v 1A, a samo esp bierze zasilanko z takiej rzeczy. IMG_20211030_132955.thumb.jpg.d1a3a9a2eaccc0421cfc8b32caa1241c.jpg

 

Edytowano przez karolkarolski25
Link do komentarza
Share on other sites

@karolkarolski25 spróbuj wlutować kondensatory blisko linii zasilania ESP jak @ethanak  radzi, np/ elektrolityczny 100uF i ceramiczny 100nF. Miałem podobny problem jak zaprojektowałem układ zasilania do ESP, który miał za mocno ograniczoną wydajność - często pojawiał Brownout i układ się resetował.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

- sprawdziłem ten twój program na terminalu rs.

- bootloader , debugger oraz sam program zachowują się poprawnie.

- testowałem około 2 godzin, restartu nie było.

- ciekawe czy juz problem namierzyłeś.

ESP01S-http.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.