Hard resetting via RTS pin... Temat rozwiązany

Espresiffe ESP32 Dual Core 32bit Tensilic Xtensa LX6 ,
Combo WIFI and Bluetooth 4 , BLE
Awatar użytkownika
SunRiver
Użytkownik
Posty: 1051
Rejestracja: 08 paź 2017, 11:27
Lokalizacja: Festung Oppeln
Kontakt:

Re: Hard resetting via RTS pin...

Post autor: SunRiver »

RTS to sygnał generowany przez UART , uzywane są 2 sygnały RTS i CTS do wprowadzenia układu w tryb bootloadera
a potem RTS żeby wykonać reset układu ESP

to się dzieje poniekąd automatycznie przez USB ...
Do resetowania i właczania bootloadera służą 2 tranzystory widoczne za układem CP21xx
Awatar użytkownika
Gacek
Użytkownik
Posty: 10
Rejestracja: 22 maja 2021, 14:40

Re: Hard resetting via RTS pin...

Post autor: Gacek »

Dziękuję. Krótko, rzeczowo i na temat.
Dzisiaj będę wgrywał błonka. Dam znać!
Awatar użytkownika
foreste
Administrator
Posty: 38
Rejestracja: 08 paź 2017, 5:32
Lokalizacja: Vault 13

Re: Hard resetting via RTS pin...

Post autor: foreste »

Obrazek
Awatar użytkownika
SunRiver
Użytkownik
Posty: 1051
Rejestracja: 08 paź 2017, 11:27
Lokalizacja: Festung Oppeln
Kontakt:

Re: Hard resetting via RTS pin...

Post autor: SunRiver »

jak coś gdzieś sie tu kręcę w okolicy kompa :)
Awatar użytkownika
Gacek
Użytkownik
Posty: 10
Rejestracja: 22 maja 2021, 14:40

Re: Hard resetting via RTS pin...

Post autor: Gacek »

Witajcie.
Wgrałem przed chwilą LED BLINK.
Komunikat wyskoczył taki sam jak zwykle, ale dioda wystartowała od razu, bez żadnych kombinacji i resetów.
Teraz mam gwoździa. Zastanawiam się czy przy samym wgrywaniu programu muszę mieć od razu podpięte termometry ds18b20 aby to zaczęło działać?
Myślałem że gdy wgram soft to blynk zacznie działać normalnie i tylko pokaże się błąd temperatury lub -127*C.

Dodano po 20 minutach 27 sekundach:
Nie wiem czy tak mogę ale wrzucam kod:
  1. /*
  2.    ZAPISY DO BLYNK
  3. V1 led1 OK
  4. V2 zapamiętaj temperaturę dnia
  5. V3 temperatura dnia
  6. V4 grzałka 2
  7. V5 grzałka 3
  8.  
  9. V11 led2 EZ
  10. V12 led3 AWARIA
  11. V13 led4 KONIEC
  12.  
  13. V20 SSR_time
  14.  
  15. V25 EZ_time
  16.  
  17. V30 praca
  18.  
  19. V50 zbiornik
  20. V51 bufor
  21. V52 10p
  22. V53 OLM
  23. V54 UFO
  24. V55 woda
  25.  
  26.  
  27.  
  28.  
  29. */
  30.  
  31.  
  32.  
  33.  TaskHandle_t Task1;
  34. //#define BLYNK_PRINT Serial
  35. #include <DallasTemperature.h>
  36. #include <OneWire.h>
  37. #include <WiFiClient.h>
  38. #include <BlynkSimpleEsp32.h>
  39. #include <WiFi.h>
  40.  
  41.  
  42. #define EZPin 12 // EZ
  43. #define RelayPin 14 // grzałka 1
  44. #define RelayPin2 4 // grzałka 2
  45. #define RelayPin3 25 // grzałka 3
  46.  
  47. #define ONE_WIRE_BUS 5 // temperatura
  48. OneWire oneWire(ONE_WIRE_BUS);
  49. DallasTemperature sensors(&oneWire);
  50.  
  51.  
  52. int SSR_time=0;
  53. int EZ_time=0;
  54. int EZ_time2=0;
  55. unsigned long windowStartTime=0;
  56. unsigned long windowStartTime1=0;
  57.  
  58.  
  59. char auth[] = "**********";
  60. char ssid[] = "*******";
  61. char pass[] = "*********";
  62.  
  63.  
  64. WidgetLED led1(V1);//ok
  65. WidgetLED led2(V11);// EZ
  66. WidgetLED led3(V12);//awaria
  67. WidgetLED led4(V13);//koniec
  68.  
  69. BlynkTimer timer;
  70.  
  71. float temp_zbiornik = 0;
  72. float temp_bufor = 0;
  73. float temp_10p = 0;
  74. float temp_OLM = 0;
  75. float temp_UFO = 0;
  76. float temp_woda = 0;
  77. float temp_dnia = 80;
  78.  
  79. int grzalka_2=0;
  80. int grzalka_3=0;
  81.  
  82.  
  83. int koniec=0;
  84. int awaria=0;
  85. int praca=0;
  86. int x=0;
  87. int skok=0; // skok na 10p
  88. int EZ=0; // stan EZ
  89. int EZstop;
  90. int a=0;
  91. int b=0;
  92. int c=0;
  93.  
  94. //**************************************************
  95. BLYNK_WRITE(V20)
  96. {
  97.  SSR_time = param.asInt();
  98. }
  99. //***************************************************
  100. BLYNK_WRITE(V25)
  101. {
  102.  EZ_time = param.asInt();
  103. }
  104. //**************************************************
  105. BLYNK_WRITE(V30)
  106. {
  107.  praca = param.asInt();
  108. }
  109. //*******************************************************
  110. BLYNK_WRITE(V2)
  111. {
  112.  c = param.asInt();
  113.  if (c==1){Blynk.setProperty(2,"color","#66ff33");Blynk.setProperty(2,"offLabel",temp_10p);temp_dnia=(temp_10p+0.125);}
  114. }
  115. //*******************************************************
  116.  
  117. BLYNK_WRITE(V4)
  118. {
  119.  grzalka_2 = param.asInt();
  120. }
  121. //*******************************************************
  122.  
  123. BLYNK_WRITE(V5)
  124. {
  125.  grzalka_3 = param.asInt();
  126. }
  127. //*******************************************************
  128.  
  129.  
  130.  
  131.  
  132. void blinkLedWidget() //co 1 sek
  133. {
  134.      
  135.     sensors.requestTemperatures();
  136.    
  137.     temp_zbiornik = sensors.getTempCByIndex(0);
  138.     temp_bufor = sensors.getTempCByIndex(1);
  139.     temp_10p = sensors.getTempCByIndex(2);
  140.     temp_OLM = sensors.getTempCByIndex(3);
  141.     temp_UFO = sensors.getTempCByIndex(4);
  142.     temp_woda = sensors.getTempCByIndex(5);
  143.  
  144.    
  145.    
  146.     Blynk.virtualWrite(50,temp_zbiornik);
  147.     Blynk.virtualWrite(51,temp_bufor);
  148.     Blynk.virtualWrite(52,temp_10p);
  149.     Blynk.virtualWrite(53,temp_OLM);
  150.     Blynk.virtualWrite(54,temp_UFO);
  151.     Blynk.virtualWrite(55,temp_woda);
  152.  
  153.     Blynk.virtualWrite(26,SSR_time);
  154.     Blynk.virtualWrite(11,EZ);
  155.     Blynk.virtualWrite(30,praca);
  156.     if(praca==0){Blynk.setProperty(30,"color","#D3435C");}
  157.     if(praca==1){Blynk.setProperty(30,"color","#66ff33");}
  158.  
  159. //*******************Słabe chłodzenie****************************
  160.  
  161.  
  162.  
  163. if(temp_UFO>=60)
  164.   {
  165.   praca=0;
  166.   led3.on();
  167.   if(a<3)
  168.    {
  169.    Blynk.notify("AWARIA!UFO za gorące!!!STOP!");
  170.    a++;
  171.    }
  172.   }
  173.  
  174.  
  175. if(temp_woda>=60)
  176.   {
  177.   praca=0;
  178.   led3.on();
  179.   if(b<3)
  180.    {
  181.    Blynk.notify("AWARIA!Woda za gorąca!!! STOP!");
  182.    b++;
  183.    }
  184.   }
  185.  
  186.  if(temp_UFO<58&&temp_woda<60&&awaria==0){led3.off();}
  187.  if(temp_UFO<58){a=0;}
  188.  if(temp_woda<58){b=0;}
  189. //******************Błąd temperatury**************************************
  190.     if
  191.     (
  192.     (temp_zbiornik<=0)||(temp_zbiornik>=110)
  193.     ||(temp_bufor<=0)||(temp_bufor>=110)
  194.     ||(temp_10p<=0)||(temp_10p>=110)
  195.     ||(temp_OLM<=0)||(temp_OLM>=110)
  196.     ||(temp_UFO<=0)||(temp_UFO>=110)
  197.     ||(temp_woda<=0)||(temp_woda>=110)
  198.     )
  199.     {
  200.      awaria=1;
  201.      praca=0;
  202.     }
  203.     if(awaria==1&&x==0)
  204.     {
  205.      led3.on();
  206.      Blynk.notify("AWARIA!  Błąd pomiaru temperatury!!!");
  207.      x=1;
  208.     }
  209.    
  210.  
  211.    //****KONIEC PROCESU**************************************************************
  212.    if((temp_zbiornik>=98)&&(temp_bufor>=96)&&(praca==1)&&(koniec==0))
  213.     {
  214.      koniec=1;
  215.      praca=0;
  216.      digitalWrite(RelayPin, LOW);Blynk.virtualWrite(10,0);led4.on();
  217.      Blynk.notify("KONIEC! Temperatura bufora osiągnięta!!!");
  218.     }
  219.  
  220.   if (led1.getValue())
  221.   {
  222.     led1.off();
  223.     //Serial.println("LED on V1: off");
  224.   }
  225.   else
  226.   {
  227.     led1.on();
  228.     //Serial.println("LED on V1: on");
  229.   }
  230. }
  231.  
  232.  
  233. void setup()
  234. {
  235.  
  236.  
  237.   xTaskCreatePinnedToCore(Task1code,"Task1",10000,NULL,0,&Task1,0);
  238.  
  239.   Blynk.begin(auth, ssid, pass);
  240.  
  241.  
  242.    pinMode(RelayPin, OUTPUT);
  243.    pinMode(RelayPin2, OUTPUT);
  244.    pinMode(RelayPin3, OUTPUT);
  245.    pinMode(EZPin, OUTPUT);
  246.    digitalWrite(RelayPin, LOW);
  247.    digitalWrite(RelayPin2, LOW);
  248.    digitalWrite(RelayPin3, LOW);  
  249.    digitalWrite(EZPin, LOW);
  250.  
  251.   sensors.setResolution(12);
  252.   sensors.begin();
  253.  //sensors.setWaitForConversion(false);
  254.  
  255.   timer.setInterval(1000L, blinkLedWidget);
  256.  
  257.   windowStartTime = millis();
  258.   windowStartTime1 = millis();
  259.  
  260.   led1.off();
  261.   led2.off();
  262.   led3.off();
  263.   led4.off();
  264.   Blynk.virtualWrite(30,0);
  265.   Blynk.setProperty(30,"color","#D3435C");
  266.   Blynk.virtualWrite(20,0);
  267.   Blynk.virtualWrite(25,0);
  268.   Blynk.virtualWrite(4,0);
  269.   Blynk.virtualWrite(5,0);
  270.   Blynk.setProperty(2,"offLabel","USTAW ALARM");
  271.  
  272.  
  273. }
  274.  
  275. void loop()
  276. {
  277.  
  278.   Blynk.run();
  279.   timer.run();
  280.  
  281.  //**************skok na 10 półce*******************
  282.   if(temp_10p>temp_dnia&&EZ_time>0&&EZstop==0){digitalWrite(EZPin, LOW); EZstop=1; Blynk.notify("10p skok temperatury!  Odbiór STOP!");}
  283.   if(temp_10p<=(temp_dnia-0.1)&&EZstop==1){EZstop=0; EZ_time -=5;Blynk.notify("KOREKTA 5% ODBIÓR START!");Blynk.virtualWrite(25,EZ_time);}
  284.  
  285.  
  286.  //*************sterowanie grzałek dodatkowych
  287.  
  288.    if(grzalka_2==1&&praca==1&&koniec==0&&awaria==0){digitalWrite(RelayPin2,HIGH);}
  289.    else {digitalWrite(RelayPin2,LOW);}
  290.  
  291.    if(grzalka_3==1&&praca==1&&koniec==0&&awaria==0){digitalWrite(RelayPin3,HIGH);}
  292.    else {digitalWrite(RelayPin3,LOW);}
  293.  
  294. }
  295.  
  296.  
  297. void Task1code( void * pvParameters )
  298. {
  299.  // polecenia wykonywane jak w funkcji setup()
  300.    pinMode(RelayPin, OUTPUT);
  301.    pinMode(EZPin, OUTPUT);
  302.    digitalWrite(RelayPin, LOW);  
  303.    digitalWrite(EZPin, LOW);
  304.  
  305.    windowStartTime = millis();
  306.    windowStartTime1 = millis();
  307.  
  308.  
  309.   for(;;)
  310.     {
  311.       // polecenia wykonywane jak w funkcji loop()
  312.        //*****PWM*********************************
  313.  
  314.  
  315.   if ((millis() - windowStartTime) >1000)
  316.   {
  317.     windowStartTime += 1000;
  318.   }
  319.  
  320.   if ((SSR_time*10) < (millis() - windowStartTime))
  321.   {
  322.     digitalWrite(RelayPin, LOW);
  323.   }
  324.   else
  325.   {
  326.     if (koniec==0 && awaria==0 && praca==1)
  327.     {
  328.     digitalWrite(RelayPin, HIGH);
  329.     }
  330.   }
  331.  
  332.   //***************EZ**********************************
  333.  
  334.  
  335.  if ((millis() - windowStartTime1) >5000)
  336.   {
  337.     windowStartTime1 += 5000;
  338.   }
  339.  
  340.   if ((EZ_time*50) < (millis() - windowStartTime1))
  341.   {
  342.     digitalWrite(EZPin, LOW);EZ=0;
  343.   }
  344.   else
  345.   {
  346.    if (koniec==0 && awaria==0 && praca==1 && EZstop==0)
  347.    {
  348.     digitalWrite(EZPin, HIGH);EZ=255;
  349.    }
  350.   }
  351.     }
  352. }

Esp32 obsługuje 6 termometrów, 3 przekaźniki SSR, jeden elektrozawór. Ale to na pewno już wiecie...
Do komunikacji jest platforma blynk.
Autorem kodu jest kolega robert4you.
Awatar użytkownika
SunRiver
Użytkownik
Posty: 1051
Rejestracja: 08 paź 2017, 11:27
Lokalizacja: Festung Oppeln
Kontakt:

Re: Hard resetting via RTS pin...

Post autor: SunRiver »

czyli ci działa prawidłowo układ resetowania ..
komunikat brzmi jasno :

Leaving - Opuszczanie / wyjście
Hard Reset via RTS pin -- wykonuje reset sprzętowy z użyciem sygnału RTS

i ... musi się procek zresetować i uruchomić program , czasem jednak się tak nie dzieje ....

Z reguły tak jest , jednakże nie używałem blynka wiec ....
Awatar użytkownika
Gacek
Użytkownik
Posty: 10
Rejestracja: 22 maja 2021, 14:40

Re: Hard resetting via RTS pin...

Post autor: Gacek »

I już jestem mądrzejszy :D a jednocześnie głupi, że nie spróbowałem od razu wgrać pipka mrugacza dla sprawdzenia płytki oraz układu resetowania.
Dziękuję wszystkim za pomoc i poświęcony mi czas.
Pozdrawiam serdecznie Bartek.
Awatar użytkownika
SunRiver
Użytkownik
Posty: 1051
Rejestracja: 08 paź 2017, 11:27
Lokalizacja: Festung Oppeln
Kontakt:

Re: Hard resetting via RTS pin...

Post autor: SunRiver »

Niema problemu właśnie po to mamy forum by sobie pomagać :)
ODPOWIEDZ

Wróć do „ESP32”