ESP8266 a millis misto delay

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: ESP8266 a millis misto delay

Příspěvek od kiRRow » 19 říj 2022, 15:48

Piny můžeš např od relátek oddělit pomocí obvodů 7404 nebo 7407, pokud zvolíš DIP provedení tak můžeš spálený obvod jen vytáhnout z patice a vyměnit během minuty. Jinak tranzistor, či optočlen je taky řešení ... Na zdroji je vhodné proti přepětí použít transil a pojistku.

peterple
Příspěvky: 156
Registrován: 22 zář 2021, 20:20
Reputation: 0

Re: ESP8266 a millis misto delay

Příspěvek od peterple » 19 říj 2022, 18:58

Ak si na 3,3V napájaní nameral 0,9V môže to mať viacero príčin. Ako poslednú by som videl zničený stabilizátor. Tieto chrobáky majú zvyčajne ochranu proti skratu, nadprúdovú ochranu, prípadne aj tepelnú ochranu. Toto vyzerá na aktivovanú nadprúdovú či tepelnú ochranu. Pri skrate by si nameral 0V. Tá vzniká nadmerným odberom. Ten môže mať veľa príčin a nakoľko sa elektrike veľa nerozumieš ľahko si niečo preťažil. Prvá vec je odpojiť všetky pripojené zariadenia. Ak problém pretrváva tak príčinou vysokého odberu sú potom už len IO na doske. Môže to byť samotné ESP ak je zničené napríklad prepolovaním alebo ESD alebo aj trvalým preťažovaním jeho výstupov (k čomu si sa priznal). Osobne si myslím že 3*20mA by mohlo vydržať dlho, ale pri číne človek nikdy nevie. Tu sa dá orientovať podľa toho či sa tam niečo hreje alebo nie. Ak sa MCU nadmieru hreje a je všetko odpojené tak už tomu niet pomoci.

unyhhox
Příspěvky: 41
Registrován: 19 bře 2018, 11:11
Reputation: 0

Re: ESP8266 a millis misto delay

Příspěvek od unyhhox » 19 říj 2022, 19:03

Došly mi další dva ESP. Momentálně nemám čas ten porouchany rozebirat. Je to Čína a občas to prostě odejde. Dost možná právě tím přetížením pinu SSRkem. Udělám ovládání ssrek dvěma tranzistorama spínací 5V na svorky ssrka. Snad to už bude v pohodě. Nemohlo to být třeba i tím, ze jsem mel nastavené neustále posílání dat přes wifi, tzn nepřetržitý vysoký odběr čipu? Stabilizátor je sice dimenzovany na 1A, ale člověk nikdy neví.

peterple
Příspěvky: 156
Registrován: 22 zář 2021, 20:20
Reputation: 0

Re: ESP8266 a millis misto delay

Příspěvek od peterple » 19 říj 2022, 22:45

Ako som už písal, odísť mohlo čokoľvek. Máš dve možnosti. Buď sa obrátiš sem

https://www.orisio.cz/vesteni/333_vesteni-po-telefonu

Mi technici používame druhú možnosť a to je meranie + postupné vylučovanie OK vecí. Je to náročné na čas a vedomosti a skúsenosti. Tak hlavne aby ti nezdochli aj tie nové kusy. Veľa zdaru.

unyhhox
Příspěvky: 41
Registrován: 19 bře 2018, 11:11
Reputation: 0

Re: ESP8266 a millis misto delay

Příspěvek od unyhhox » 20 říj 2022, 10:20

peterple píše:
19 říj 2022, 22:45
Ako som už písal, odísť mohlo čokoľvek. Máš dve možnosti. Buď sa obrátiš sem

https://www.orisio.cz/vesteni/333_vesteni-po-telefonu

Mi technici používame druhú možnosť a to je meranie + postupné vylučovanie OK vecí. Je to náročné na čas a vedomosti a skúsenosti. Tak hlavne aby ti nezdochli aj tie nové kusy. Veľa zdaru.
Je potřeba také vyhodnotit čas x přidaná hodnota. ESP stojí 60 Kč, což mi za hodiny pájení a měření nestojí, i když bych to samozřejmě udělat mohl. Jistě vím, že jsem překročil zatížitelnost pinu, který teď vyřeším a budu dále pozorovat. Pokud by to odešlo opět stejným způsobem a nevěděl bych proč, tak už mi nezbyde nic jiného, než měřit a zkoušet, co odešlo. Do nového ESP jen nahraju kód, napájím pár vodičů a jedeme dál. S věcí za pár stovek nebo tisíc už bych nešel na blind.

ESP byl napájen 5V2A zdrojem MeanWell. Na A0 pinu bylo připojeno napětí baterie přes napětový dělič, který napětí snižuje na 2,7V (původně jsem měl v plánu použít ESP32, který je v měření méně lineární a proto jsem zvolil 2,7 místo plných 3,3V). Piny D5, D6 a D7 ovládají 3 channely SSR, které jsou primárně napájeny 5V zdrojem, ale ovládany dig pinem ESP. Poslední, co bylo k ESP připojeno, bylo právě zmíněné SSR FOTEK. Nic víc k ESP připojeno nebylo. Nenapadají mě žádné jiné vnější vlivy mnou způsobené, proč by to mohlo odejít. Buď to bylo přetížením pinu nebo to mohl být šmejd kus. ESP bylo objednáno přímo z Číny.

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: ESP8266 a millis misto delay

Příspěvek od kiRRow » 20 říj 2022, 14:41

Co na tom chceš hodiny dělat, při napájení z 5V se neděje nic. Takže buď odešel stabilizátor, nebo je za ním něco ve zkratu (většinou kondík) a stabilizátor se nespustí kvůli proudové ochraně. Tohle zjistit je práce na 2minuty. Jestli se to pak rozběhne a USB to nerozezná, je odpálený i převodník USB TTL. Výměna je práce na 2minuty. Pokud ani to nepomůže, tak je v háji mikrokontrolér a deska letí do hrobečku na náhradní díly.

Nejcennější věc, kterou získáš z takovéto opravy a to i když se nepovede, tak jsou zkušenosti. Jako bonus si pak můžeš připočítat, že zjistíš odkud to tam a co prásklo a čeho se vyvarovat.

unyhhox
Příspěvky: 41
Registrován: 19 bře 2018, 11:11
Reputation: 0

Re: ESP8266 a millis misto delay

Příspěvek od unyhhox » 27 říj 2022, 14:08

Menší update. Delay s milis, kdy sepl prvni stykač a 10s na to další dva stykače, funguje. Jenže s tímto millis delay mi pro změnu špatně updatuje Blynk. Pokud je měřená hodnota pod 50,5 tak v pořádku, ale pokud je nad 50,5 tak blynk neupdatuje, ale serial monitor který je ve stejném kódu funguje. Není tam nic, co by to mohlo blokovat a já už fakt nevím. Hodiny jsem to zkoušel s millis a pak zkusil, dle doporučení webu, blynk timer, ale výsledek stejný. Pokud delay s millis nahradím klasickým delay, tak update Blynku funguje ve všech případech.

Prosím o radu. Díky

Kód: Vybrat vše

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "xxxxxx";
const char *ssid     = "xxxxxxx";
const char *password = "xxxxxxxxxx";
BlynkTimer timer;
const int numReadings = 30;
float readings[numReadings];      
int readIndex = 0;              
float total = 0;                 
float average = 0;               


void setup() {
 Serial.begin(115200);
 timer.setInterval(2000L,Blynkmereni);
 for (int thisReading = 0; thisReading < numReadings; thisReading++) {
    readings[thisReading] = 0;
  }
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
      }
  pinMode(13,OUTPUT); //13 D7 (DS stykač)
  pinMode(14,OUTPUT); //14 je D5 (FV stkyač)
  pinMode(12,OUTPUT); //12 je D6 (měnič)
  pinMode(16,OUTPUT); //16 je D0 (bojler 1)
  pinMode(15,OUTPUT); //15 je D8 (bojler 2)
  digitalWrite(15,LOW);
  Blynk.begin(auth, ssid, password);
}


void batteryvoltagerele(){
  static unsigned long lastExecutedMillis = millis();
  unsigned long currentMillis = millis();
    total = total - readings[readIndex];
    readings[readIndex] = analogRead(A0)* 3.3 / 1023*19.244684;
    total = total + readings[readIndex];
    readIndex = readIndex + 1;
    average = total / numReadings+54; // battery voltage measurement with sampling of 30
     if (readIndex >= numReadings) {
      readIndex = 0;
    }
   
  if (average>54.1) {
  digitalWrite(12,HIGH);
  if (currentMillis-lastExecutedMillis>10000){
  lastExecutedMillis = currentMillis;
  digitalWrite(13,HIGH);
  delay(40);
  digitalWrite(14,HIGH);
 }}
  else if (average<50.5){
  digitalWrite(14,LOW);
  delay(40);  
  digitalWrite(13 ,LOW);
  digitalWrite(12 ,LOW);
  }
}


void Blynkmereni(){
    Serial.println(average,2);
    Blynk.virtualWrite(V5, average); 
  }

 
void loop() {
  timer.run();
  Blynk.run();
  batteryvoltagerele();
   }

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 14 hostů