Hirdetés
- eBay-es kütyük kis pénzért
- gban: Ingyen kellene, de tegnapra
- Lalikiraly: Kaáli Autó-Motor Múzeum
- Luck Dragon: Asszociációs játék. :)
- Brogyi: CTEK akkumulátor töltő és másolatai
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Magga: PLEX: multimédia az egész lakásban
- GoodSpeed: KLINTHOLM 3 fiókos fekete, acél, zárható kiegészítő elem
- sziku69: Fűzzük össze a szavakat :)
- ldave: New Game Blitz - 2025
-
LOGOUT
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
cog777
őstag
válasz
Istv@n
#22799
üzenetére
"A freertos takokból meg lehet egyáltalán hívni egy "sima" függvényt?"
Hello, persze. Szerintem probald ki elorol felepiteni a programot, nem mindent atmasolva. Sok a hibalehetoseg es igy nehez segiteni.A setup-ban latom a Wifi csatlakozast, az jol mukodik, ido beallitas stb.
Az MQTT, adatbazis kapcsolodas, szenzorok kezelesehez hozzarendelhetsz egy-egy orokke mukodo FreeRTOS feladatot. Ezekbol nem kell kilepni, mert futhatnak folyamatosan.Itt van egy FreeRTOS pelda, probald eloszor ki, ket feladatot futtatva:
Ha ez mukodik, akkor elkezdheted megirni a programodat, pl MQTT. A kliensnek itt a library-ja, letoltod es megnezed az mqtt_basic peldat.
Latod hogy meg kell hivni a loop-ot:if (!client.connected()) {
reconnect();
}
client.loop();Szoval az egesz MQTT kezelest beleteheted egy FreeRTOS task-ba. Tehat:
void mqtt_task(void *param)
{
EthernetClient ethClient;
PubSubClient client(ethClient);
while(1)
{
if (!client.connected()) {
reconnect();
}
client.loop();
}
}Szenzor feladatnak is keszithetsz sajat feladatot, es elindithatod akar a masik CPU magra is teheted.
Az adatokat megoszthatod atomic-al a szenzor es az MQTT feladatok kozott:
std::atomic<float> homerseklet;Komolyabb kommunikaciot a feladatok kozott queue-val szoktak (xQueueCreate-ra keress ra).
Tovabba erdemes a feladatokat kulon .cpp es .h fajlokba tenni, igy szetvalasztva logikailag a programot.
Most ennyi idom van, esetleg irhatnal par szot mire kell az MQTT es az adatbazis?
FreeRTOS programozasnal figyelj a stack beallitasra. Erdemes lepesrol lepesre felepiteni es tesztelni a programot mert nagyon nehez megtalalni a hibat ha egybol mindent beleteszel. Asszem debuggolni lehet ha eredeti Arduino ESP32-t vasarolsz. -
cog777
őstag
-
Tankblock
aktív tag
válasz
Istv@n
#22765
üzenetére
Szia,
ez így nem lesz hatékony segítség, tedd fel gitre a kódot publicra és oszd meg kérlek, mert ez így vak vezet világtalant.
szedd szét taskokra, figyeld hogy van -e Wifi (eventgroup pl) ha megszakad akkor csatlakozz, ugyanígy tudod nézni h jön e válasz a adatbázistól ill MQTT megy e.....
Hőmérő külön szál abból Message Queue tudod küldeni a többi taskba az utolsó mért értéket, vbagy megállítani a mérést ha nincs értelme - nincs kapcsolat a külvilággal.
Itt még eldöntheted h gyűjtöd e az adatokat egy darabig..... -
-
válasz
Istv@n
#21932
üzenetére
Akkor a saját cuccokat át kell programozni, MQTT az egyszerűbb.
HA sem bonyolult, ha kicsit elmerül benne az ember. És ott mindenre találni megoldást, nagy a közösség mögötte. De ha a saját cuccok nem kommunikálnak a külvilággal, akkor nem a világ fog hozzájuk alkalmazkodni... Ha nem nagyon speciális kütyük, ritka szenzorokkal, akkor ESPHome jó eséllyel kiválthatja az egyedi progit, az meg fut HA alatt. -
válasz
Istv@n
#21921
üzenetére
Tailscale a minimum, amivel kintről elérhető és biztonságos.
Home-made dolgokat senki nem fogja megmondani, h hogy integráld gugli alá, esetleg a google maga.
Ha MQTT-t tudsz hozzáadni, akkor jobb a helyzet. Még jobb, ha telepítesz egy Home Assistant-ot, amivel összefogod a mindenféle kütyüidet. Ezt meg már mindenhez IS lehet kapcsolni, távolról elérni, stb... csak idő kérdése, h mennyit szánsz rá.
A programjaidnál van vmi keretrendszer, vagy csak a "nyers" arduino cuccok? Mert sok minden ESPHome-ra átrakható, ami gyönyörűen fut HA alatt. Bonyolultabbaknak MQTT, de itt is jobb az ESPEasy, ami biztosan működik. Nem mindegy, h csak a Te kódodban kell a hibát keresni, vagy a teljes kódban, ha nem működik vmi. -
ekkold
Topikgazda
válasz
Istv@n
#15187
üzenetére
A legbiztosabb egy átfolyásmérő, mert biztos, hogy csak akkor ad jelet, ha megy a szivattyú.
Az átfolyó áram érzékelése is informatívabb mint a szivattyún megjelenő feszültség érzékelése. Ha az áram bizonyos határok közötti, az utalhat a normál működésre, ha a határokon kívül van akkor nem működik vagy rendellenesen működik. Arduinohoz kaphatók hall érzékelős áram szenzorok, amivel leválasztott módon mérhető az áram (bár nem túl pontosan, de erre a feladatra elegendő). [pl. ACS712 szenzor, vagy arra épülő modul]
Illetve létezik kicsi nyákba ültethető áramváltó is, amivel szintén leválasztott módon mérhető az áramfelvétel.
Szintén közvetett módszer, de a motorra szerelt kontakt piezo érzékelő (piezo mikrofon) is érzékelheti a szivattyú motor üzem közbeni rezgését.
-
gyapo11
őstag
-
Janos250
őstag
válasz
Istv@n
#13743
üzenetére
Hát, az nagyon függ attól, hogy milyen kontrollert használsz.
Én pl. használtam a "Tickert.h"-t ESP8266-on, amikor még nem volt ESP32.
Létrehozol belőle egy (vagy több) példányt, és megadod, hogy mennyi idő múlva melyik rutin fusson le.
https://github.com/sstaub/TickerValaki emlegette a "Scheduler.h"-t is.
"Scheduler.start(loop2);
Scheduler.start(loop3);"
Az extrán létrehozott loopokban külön témánként adhatsz időzítést delay()-ekkel, mert amíg várakozik, addig fut a többi loop.
https://www.arduino.cc/en/Tutorial/MultipleBlinksÉn ugyanezt a módszert használom ESP32-n, mert ott lehet külön szálakat, taskokat indítani.
http://arduinouser.hu/esp32/AszalakEsAzESP32.pdf -
Tankblock
aktív tag
válasz
Istv@n
#12745
üzenetére
Szia,
Pontosan mire is gondoltál?
A
relayStateglobális változót módosítja az ütemezés függvényében, bitenkénti operációval. Nézd meg acheckSched()függvényt, ahol 1 re állítja a adott relé bitjét....
Oda bele tudod rakni azt ha pl nedvesség érzékelő alapján kell-e öntözni.... -
-
-
Janos250
őstag
-
gyapo11
őstag
Az első kérdés, hogy akarod-e elérni az adatokat a weben? Ha igen, akkor blynk és hasonló ioT társai, ehhez viszont kell az arduinora az ethernet, mert azon át tudja eljuttatni a serverre az adatokat.
Ha nem kell a netre tenni, csak a pc-den akarod látni, akkor nem kell ethernet, legegyszerűbb a virtuális soros porton átvenni az adatokat, és a pc-n rajzolni pl. javascripttel. Persze a pc akár fel is töltheti valahova a netre, és akkor mégis elérhető akárhonnan.
link, link, de php is van link
Új hozzászólás Aktív témák
- Kínai és egyéb olcsó órák topikja
- Battlefield 6
- Miért fárad gyorsabban az iPhone akku, mint az androidos?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Szigorúan titkos dokumentumokkal a kezében távozott az Intel egyik mérnöke
- Synology NAS
- 3D nyomtatás
- Arc Raiders
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Samsung Galaxy A54 - türelemjáték
- További aktív témák...
- Asus TUF Gaming A15 AMD Ryzen 5-7535H/16GB RAM/512GB SSD/RTX3050VGA/15,6" 144Hz kijelző
- Samsung Galaxy S25 Ultra 256GB fekete garanciával
- Iphone 13 128gb Midnight 81% + töltő + füles + tok
- -ÚJ,2 ÉV GAR- DDR5 GAMER PC: RYZEN 5 8400F/9600X +RX 9060XT/9070/9070XT +16-64GB DDR5! SZÁMLA!
- DJI Mini 4 Pro Fly More Combo (DJI RC 2) (GL) (Bontatlan)
- GYÖNYÖRŰ iPhone 13 mini 128GB Green -1 ÉV GARANCIA -Kártyafüggetlen, MS3898, 100% Akkumulátor
- Apple iPhone 15 128GB,Újszerű,Dobozával, 12 hónap garanciával
- Honor 200 256GB,Újszerű,Dobozával, 12 hónap garanciával
- Azonnali készpénzes AMD Radeon RX 6000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- Azonnali készpénzes AMD Ryzen 1xxx 2xxx 3xxx 5xxx processzor felvásárlás személyesen / csomagküldés
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő



ekkold
