Mam ESP8266 i ESP32. Robiąc różne rzeczy IoT natrafiłem na problem z małą ilością pamięci Heap (ESP8266). Wielokrotnie zdarzało się, że pamięci Heap było za mało, co powodowało crash ESP i ponowne jego uruchomienie.
Mam zatem pytanie do osób korzystających z ESP8266 oraz ESP32.
Robiłem przed chwilą test tej pamięci poprzez komendę ESP.getFreeHeap() i moje wyniki są następujące: ESP8266 = 50KB, ESP32 = 307KB. Pytanie mam, czy wartości te (KB) są stałe
Jeśli mówisz o esp32 i esp8266 to nie mają takiego kształtu. Ale nie mam pewności czy nie masz na myśli przypadkiem dev boardów z procesorami esp32 i 8266
Zrobiłem aplikację na telefon do sterowania bramą wjazdową na NodeMCU. Z pilota usunąłem microswich i wlutowałem kable. Wykorzystałem tranzystor NPN C547B, pomiędzy Emiter i Kolektor daję pola z microswich'a a Bramę zasilam z pinu Nodemcu. Problem jest taki że jak zwieram kable ręcznie to dioda w pilocie miga błyskawicznie i pilot działa. A jak zwiera go tranzystor to dioda na pilocie miga 3 razy wolniej i nie działa. Nie znam się na
GrubyGrubiutki - Zrobiłem aplikację na telefon do sterowania bramą wjazdową na NodeMC...

źródło: temp_file7785580928389199184

Pobierz
@GrubyGrubiutki: Najprościej i naszybciej rozwiążesz to stosując przekaźnik - odizolujesz układ i będzie problem rozwiązany. Mógłbyś to jeszcze rozwiązać przy pomocy optoizolatora który ma dwa plusy w tym przypadku: jest dużo mniejszy i nie zużywają się styki. Z tym miałbyś więcej zabawy jeżeli nie siedzisz w elektronice.
@henk to co mam w głowie obsłuży mi 2 przyciski jednym silnikiem i nie muszę się ograniczać do konkretnej aplikacji. Mogę np sterować nim za pomocą telegrama
Mam drobny problem - chciałbym rozszerzyć swojego ESP8266 o dodatkowe porty, użyłem w tym przypadku ekspandera MCP23017, niestety on pozwala na użycie na wyjściu zbyt małego natężenia (bodajże ok. 9 mA na każdy port). Potrzebuję sterować elementami jak np. SSR, które potrzebują nawet 25mA. Jak mogę zatem zwiększyć te natężenia z 9mA? Słyszałem, że może są jakieś moduły zwiększające natężenia, ale jak się zwą, jak brzmi ich fachowa nazwa?
Chyba, że są
@MisiekD: nie jestem w 100% bo kitajce na ali piszą jak piszą, a ja jestem automatykiem, a nie typowy elektronikiem (jak już to hobbysta).

Zauważ że tam są małe tranzystory (na płytce z ali). Wydaje mi się że te moduły uruchamiają się przy 2.5VDC i pobierają 2mA- z punktu widzenia twoich wyjść (prąd bazy tranzystora na tej płytce).
Te tranzystory dopiero włączają triaka, robią za "wzmacniacze sygnału prądowego".
Łącznie jeden kanał
RobBobb - @MisiekD: nie jestem w 100% bo kitajce na ali piszą jak piszą, a ja jestem ...

źródło: kitajcowyopis

Pobierz
Mam takie elektroniczne pytanie. Chciałbym zastosować przykładowo tranzystor 2N2222 do sterowania obwodem. Załóżmy, że chciałbym zasilić układy, które w sumie potrzebują 800mA. Napięcie bazy dałem 3.3 (sterowanie NodeMCU). Natomiast co z voltage drop? Ile powinna wynosić ta wartość dla 2N2222? Czy ona (voltage drop) zmienia się w zależności od podania napięcia/natężenia?

#nodemcu #elektronika #elektryka #elektronikadiy #mikrokontrolery #arduino #esp #esp8266
MisiekD - Mam takie elektroniczne pytanie. Chciałbym zastosować przykładowo tranzysto...

źródło: 4da9f1486d

Pobierz
Mam w domu bramę otwieraną skrzydłowo. Potrzebuję mierzyć ile % bramy jest już otwarte (i czy w ogóle się ona otwiera). Kiedyś wpadłem na pomysł, że na zawiasie bramy zamontuję enkoder. Enkoder działać działa, ale jest bardzo nieprecyzyjny. Moja brama ma kąt rozwarcia 90*, a enkoder przy danym ułożeniu pokazuje tylko 3 wartości - to niestety za mało. Szukałem czy jest jakiś enkoder z przekładnią, ale znaleźć nie mogę. Być może ktoś
  • 1
enkoder liniowy absolutny


@mag_zbc: no powiem Ci, że tym to się jeszcze nie bawiłem. Ale cholerstwo jest dokładne. Tylko czy ta linka wytrzymałaby śniegi? Tak czy siak, ewentualnie myślę jeszcze nad potencjometrem, z uwagi na niskie koszty. Ten enkoder absolutny raczej drogi :)
Mam problem z ogrzewaczem wody, który naprawiam. Wykorzystuję ESP8266 do sterowanie trzema grzałkami 400V (przy użyciu 3 SSR-ów). Do odczytu temperatury wykorzystuję sensor DS18B20. Problemem jest natomiast czujnik temperatury DS18B20, który "wstrzymuje" działanie ESP8266 w celu odczytu temperatury (na ok. 100ms). Czas ten jest dość duży i uniemożliwia mi częstsze włączanie/wyłączanie SSR-ów w celu lepszej kontroli temperatury grzałek. Z innego posta otrzymałem informację, że można odczytywać temperaturę ze scratchpada, a nie czekać
@Jarek_P no ja to zrozumiałem właśnie, że to przepływ 20kw a nie zbiornik. Stąd pomysł z komparatorem, zawsze to jakieś zabezpieczenie. Również nie wiem czy bym się podjął mając podejrzewam większe doświadczenie niż op. Nie bez powodu do dzisiaj w takich konstrukcjach stosuje się asicy albo stare pic kodowane w c czy nawet asemblerze. Bezpośrednie sterowanie grzałki przez procki diy pokroju ESP, Tiny czy megi328 to proszenie się o kłopoty.
edit. @
Mam problem z tranzystorem 2N3904. Chciałem przy użyciu ESP8266 (napięcie 3.3V) wysterować 3 SSR-y (łącznie potrzebują natężenia 75mA do funkcjonowania).
Do bazy tranzystora podpiąłem rezystor 3.3K Ohm (tak wyszło mi z kalkulatora), jednak na wyjściu otrzymuję tylko 2.2V zamiast 3.3V. Ktoś może mi powiedzieć co robię źle? :/

#mikrokontrolery #elektronika #nodemcu #esp8266 #arduino #elektryka
MisiekD - Mam problem z tranzystorem 2N3904. Chciałem przy użyciu ESP8266 (napięcie 3...

źródło: temp_file.png3802249832772341306

Pobierz
@MisiekD: zasadniczą. Tranzystor bipolarny włączasz prądem, płynącym w obwodzie baza-emiter, a ten zależy od napięcia, które przykładasz na bazę względem emitera. Jeśli emiter masz wprost na masie, to podanie napięcia >0,6V (w skrócie temat traktując) włączy tranzystor. Przy obciążeniu w emiterze, prąd płynący przez to obciążenie spowoduje, że napięcie na emiterze się podniesie, Ube zmaleje i tranzystor się częściowo zatka.
@MisiekD proste obliczenie - prąd kolektora (czyli 3x prąd twojego SSR) dzielony przez wzmocnienie beta tego tranzystora (strzelam że coś między 200 a 500?) musi być prąd bazy.
powiedzmy 10mA na SSR, 30mA sumarycznie prąd kolektora, beta 300, to masz 0.1mA prądu na bazie

rezystor obliczasz: - zasilanie bazy to będzie 3v z esp, minus 0.7v spadku na bazie = 2.3v , i to dzielisz przez prąd 0.1mA = wychodzi rezystor 23kohmy
@MisiekD tak. ale jeśli tranzystor ma pracować jako włącznik a nie regulowany rezystor to dajesz znacząco większy prąd bazy niż wynikałby z prądu kolektora, oczywiście w granicach przyzwoitości czyli zamiast 0.1mA to powiedzmy 0.5mA, a nie 10 miliamper na bazę.
dzięki temu tranzystor jest nasycony czyli przewodzi maksymalnie mocno jak się da , i najmniej się grzeje.
Siemka, mam duży problem ze swoim ESP8266, chodzi o wypisywanie danych z mikrokontrolera (duża ilość danych) wprost do przeglądarki.
No więc, chciałbym zmodernizować moją funkcję, aby zbierać dane z logów i następnie wysłać je wszystkie do przeglądarki. Najpierw próbowałem funkcji beginResponseStream, ale moja tablica jest zbyt duża, aby można ją było wysłać raz (tablica ma 300 wierszy i każdy wiersz ma 100 wartości typu char). W efekcie tym, do przeglądarki trafia
@zobq: a to fakt, często trzeba go naprawadzić na dobrą odpowiedź. Ja najczęściej korzystam z niego do pisania prostych skryptów i wyjątkowo dobrze to działa - chociaż to myślę, że przez "opensourcowość" softu do którego robię skrypty, rzadko muszę doprecyzować o co chodziło, albo raz mi się zdarzyło, że dałem mu gdzie program wypluł błąd i się poprawił.
Poza skryptami używam go tylko do zadawania pytań, tak jak w tym przypadku,
Hej, chciałem ukończyć funkcję logującą do ESP8266, ale mam głupi problem, a zarazem pewnie jest bardzo prosty do rozwiązania. Niestety nie mam już pomysłów i nawiasem mówiąc, nie mam pojęcia, dlaczego końcówka danych z końca jednej statycznej tablicy (originalStringToCharArray) nakłada się na początek danych w pustej tablicy (logs).
Może ktoś mnie oświeci.

Fragment kodu, którego dotyczy problem:

const int iloscLogow = 10;
const int dlugoscJednegoLogu = 100;
static
@MisiekD: to jedna z cech biblioteki standardowej w językach C/CPP - strcpy kopiuje zawartość nie zwracając uwagi na długość (tzn czy się zmieści do bufora czy nie), jest odpowiednik który zwraca na to uwagę, strncpy. W twoim przypadku twój ciąg znaków ma długość 110 znaków, co jest większe niż 100. Ze względu na to jak przechowywane są zmienne w pamięci, znaki kopiowane są dalej, nadpisując zawartość kolejnej zmiennej.
Hej poszukuję danego rozwiązania (płytki bądź gotowego układu), który będzie działał tak jak przekaźnik, jednak będzie zbudowany w oparciu np. tranzystory/optocoupery w celu zapewnienia dużej ilości przełączeń napięcia 230V sterując sygnałem napięcia np. 3V.

A może istnieje jakiś gotowy układ (coś jak optocouper) Urządzenia jakie potrzebowałbym zasilić są z mocą rzędu max 100W (np. pompa obiegowa 80W).

Na Chinach znalazłem taką płytkę jak poniżej, natomiast z wysyłką potrafi kosztować i 4-5$, a
MisiekD - Hej poszukuję danego rozwiązania (płytki bądź gotowego układu), który będzi...

źródło: temp_file.png2665755280210799782

Pobierz
Hej,
jak utworzyć obiekt (coś jak tablicę albo po prostu tablicę) dla Arduino (ESP8266), w której zarezerwuję 50 miejsc w pamięci RAM (by uniknąć fragmentacji) wraz z zarezerwowaniem 20 znaków (char) dla każdej pozycji w tabeli?
Nigdy takiego czegoś nie robiłem (nie miałem potrzeby), ale z racji niewielkiej pamięci w ESP8266 i chęci uniknięcia fragmentacji w RAM, chciałbym z tym poeksperymentować :)

#mikrokontrolery #nodemcu #esp8266 #esp #elektronika #programowanie #iot #arduino
  • 0
@sorek: nie rozumiem jak :D Nie da się jakoś zdefiniować tablicy, aby odgórnie zdefiniować, że ma zarezerwować X pozycji w tablicy o wielkości 20 znaków (jakichkolwiek)?
Siemka,
czy istnieje jakiś sposób, aby w ESP8266 utworzyć zmienną globalną, która będzie zmienną String i po np. 5 sekundach zmienna ta za pomocą polecenia (nie wiem jakiego, czy to możliwe?) będzie usuwana z pamięci RAM i w miejsce niej będzie tworzona zmienna o takiej samej nazwie i typie, jednak w pełni pusta bez zajętej pamięci RAM? Czy taka operacja jest możliwa?
Potrzebuję opracować mechanizm do logowania danych, jednak danych niekiedy w
@MisiekD:

1. podejście ala "c" - dwywymiarowa tablica charów o stałej wielkości (static char log_buffer[MAX_LEN][MAX_LOGS]) Zaleta to szybkość i brak alokacji pamięci w trakcie pracy. Wada, to na stałe zajęty fragment pamięci. Logi zapisujesz do tablicy cyklicznie - nadpisujesz najstarszy wpis.
2. podejście ala c++ - fifo złożone z std::string
3. podejście sieciowe - wysyłaj logi jaki pakiety UDP w sieci lokalnej.
Mirki, czy jest możliwe przesyłanie danych integer z pythona(klient) na esp8266 nodemcu(serwer)? Bo w internecie nie mogę znaleźć takich przykładów. Robię projekt gdzie zdalnie sterowany pojazd na bazie Arduino będzie przesuwał się według danych wyliczanych na komputerze w pythonie. Python będzie wysyłał te dane integer do ESP, które to będzie następnie te dane wysyłać po TX RX na arduino do którego będą podłączone silniczki od pojazdu.
#arduino #elektronika #esp32 #esp8266 #nodemcu #
Hej, mam mega głupi problem ze swoim ESP8266. Mój moduł znajduje się na zewnątrz (pod dachem), mam do niego podłączone 3 przyciski, które są połączone z rezystorami 10kOhm (jak to w arduino). W okolicy zimy (tak od ok. 3 tygodni) zdarza się, iż przycisk "sam się naciska" i przekazuje sygnał taki jakby ktoś ręcznie go wcisnął. Zastanawiam się jak to rozwiązać, czy to normalne, czy może komuś się to już udało, a
MisiekD - Hej, mam mega głupi problem ze swoim ESP8266. Mój moduł znajduje się na zew...

źródło: comment_1670622820Cifyqe9QfutTmuMBOuQQPh.jpg

Pobierz
via Wykop Mobilny (Android)
  • 0
@echelon_: a co by dał ten kondensator? W sensie jak to miałoby działać? Chciałbyś zrobić odpowiednik tej metody software'owej, ale hardware'owo?
Siemka, czy istnieje jakiś sposób, by na czas grzania bufora ciepła kotłem na węgiel odłączyć pompę ciepła, by ta nie mogła się włączyć? Coś jak fotokomórka przy bramie wjazdowej (sygnał przerwany - brama automatycznie się zatrzymuje). Coś na zasadzie, że np. sterują przekaźnikiem:
- obwód zamknięty - pompa ciepła może się włączyć,
- obwód otwarty - pompa ciepła nie może się włączyć?
Nie wiem dokładnie jak działa pompa ciepła, ale zakładam, że
MisiekD - Siemka, czy istnieje jakiś sposób, by na czas grzania bufora ciepła kotłem ...

źródło: comment_1668200279gB7P0iBb8tnN8TkP7DUMNx.jpg

Pobierz
@MisiekD: już nie pamietam jak to sie tam robiło, ale zobacz na intrukcje aristona od ruskich oni lubia tam grzebać, byc może chodzi o algorytm tego g.na mega prymitywny, raczej żeby zabezpieczyć przez rozwaleniem układu lub jego zatkaniem, norma to wyłączanie sie w petli wszystkiego po chyba 5 próbie uruchomienia..

w takich urządzeniach to się robi seryjnie, nie przeskoczysz tego sam..

słyszałem o gościu co swoim rodzicom do pieca gazowego starego