- gban: Ingyen kellene, de tegnapra
- Argos: Szeretem az ecetfát
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- Magga: PLEX: multimédia az egész lakásban
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- Szoszo94: Xiaomi Mi Router 3G - Padavanra fel!
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Parci: Milyen mosógépet vegyek?
-
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
senior tag
Na, elegetve par nap szabadidot. (Khm, asszony leszalajtott szappanert. Nem mentem. Mondtam, ott a tusfurdom
Ti megertitek ezt.)
Mukodik. Marmint amit kiprobaltam:
Arduino Nano ESP32-n az OTA-t es az Arduino IoT-t. Most hogy az oktoberi fejleszteskor kep komponens is belekerult, lehet feltolteni a kameram kepet. 2.5 eurot havonta meger a dashboard.Egy feltetelem volt: mukodjon FreeRTOS alatt.
Mukodik, viszont be kell allitani a stack-et neki. Sima C++ thread-eket hasznaltam. Elotte crash-elt, de a stack miatt, mint kiderult. Nem volt egyszeru, mert amit el lehetett szurni, azt igazi profihoz melton elszurtam, hogy aztan profihoz melton kikalapaljam
Rossz particionalas miatt 1 napig kinlodtam mire firmware mode-ban visszaallitottam a cuccot. Aztan rosszul masoltam a "secret"-et, space az elejen bennemaradt, aztan a stack... ilyesmi.
Orom-bodotta, megyek szappanert + kaja.#include "arduino_secrets.h"
#include <thread>
#include <esp_pthread.h>
#include "thingProperties.h"
void iot_task() {
initProperties();
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
while(1) {
ArduinoCloud.update();
}
}
void setup() {
Serial.begin(11500);
delay(1500);
auto cfg = esp_pthread_get_default_config();
cfg.thread_name = "iot_task";
cfg.stack_size = 32000;
cfg.pin_to_core = 1;
esp_pthread_set_cfg(&cfg);
auto task = std::thread(iot_task);
task.detach();
}
void loop() {
Serial.println("H");
delay(10000);
}
void onTempHallChange() {
// Add your code here to act upon TempHall change
Serial.print("Value changed: ");
Serial.println(String(temp_hall));
}
void on_enable_alarm_change() {
Serial.print("Value changed: ");
Serial.println(String(enable_alarm));
} -
cog777
senior tag
Ha valaki van olyan elvakult, hogy WSL2-ben akar PlatformIO-t hasznalni es feltolteni a mikrokontrollerbe a firmware-t, itt vannak a lepesek.
0. VSCode es platformIO, telepitese Windows alatt. Linux telepitese WSL-ben
1. usbipd telepitese: winget install usbipd
2. Windows alatti soros port osszekapcsolasa a futo WSL-hez: https://github.com/dorssel/usbipd-win/wiki/WSL-support
Bovebben:
- A BUSID megjegyzese "usbipd list" paranccsal
- Megosztani az eszkozt az admin joggal futtatott "usbipd bind --busid X-Y" utasitassal
- Osszekapcsolni a futo WSL-el: "usbipd attach --wsl --busid 4-4"
3. Telepitsuk a python-t es a python3-venv WSL alatt. "sudo apt install -y python3-venv"
4. UDEV szabalyokat adjuk hozza: https://raw.githubusercontent.com/arduino/ArduinoCore-mbed/refs/heads/main/post_install.sh
4.1 Restart WSL (wsl --shutdown)
5. Megnyitjuk a PlatformIO projektet WSL alatt
6. Forditjuk es feltoltjuk -
cog777
senior tag
válasz
Gergosz2 #23227 üzenetére
Miert, milyen erzekelo kell ha szeretnem tudni hogy ha valami langra kap a lakasban es fust keletkezik?
@Postas99: meg nem vettem semmit, eloszor kerdezek!
Kalibracio? Arra gondoltam, ha mar a gyari riasztok gyarilag kalibralva vannak, akkor talan tudok venni olyat amivel nem kell vacakolni, kimeregetni kulonbozo tavolsagokbol az egest es azt detektalni. Tehat egy kulcsrakesz megoldast szeretnek I/O-val az ESP32-hoz. Mintha regebben lattam volna talan 20-30 euroert de most nem talalom.Amugy BUEK!
-
cog777
senior tag
Valaki hasznalt mar MQ-2 fusterzekelot vagy mas alternativat? Kell kalibralni ezeket a szenzorokat vagy egybol tudom hasznalni? Megbizhatoak ezek a szenzorok?
Jo lenne ha kuldene uzenetet a telefonomra az ESP32 ha valami "gaz" van a konyhaban, amikor valamelyik csaladtag foz. ESP32-hoz mar sikeresen kapcsoltam kamerat, meg tudnam nezni mi a helyzet.
A szomszed srac veszettul jatszott a konyhajukban a gepen "sutott" valami kajat, amikor megszolalt a fusterzekelo, a felesege bement es latta hogy vagni lehet a fustot, de a srac total nem eszlelte a kulvilagot jatek kozben...
-
cog777
senior tag
Esetleg "Reset bootloader Mode" szeruseg ami Arduino-n van? En ezzel kinlodtam hogy feltoltsem a bootloadert, lehet hogy annak az ESP32-nek is van hasonlo modja amivel fel lehet eleszteni.
Meg B1-et GND-re kellett rakni es ugy megnyomni a reset gombot. -
cog777
senior tag
válasz
.-..-. #22866 üzenetére
Nekem az Arduino Esp32 valami nem jol mukodo boot loaderrel jott, esett kelt, mindenfele ritualet kellett csinalnom hogy valtogassak feltoltes es alkalmazas mod kozott. Aztan frissitettem a boot loadert es minden out of box kezdett mukodni. Nem volt szukseg gombokat nyomogatni. Probald frissiteni a bootloaderet.
-
cog777
senior tag
válasz
Janos250 #22856 üzenetére
Koszi az infot! Jo tudni.
Ettol fuggetlenul nem lattam garantaltnak, hogy egy-egy ficsor egy adott procin rendesen implementalva van-e, vagy rendesen konfiguralva leforditva.
Pl elozo munkahelyen par dolog le volt tiltva: exception-ok, RIIA
Illetve Arduino IDE-be bedrotozott gcc-vel problemaim voltak C++17-et engedelyezve, nem fordult par cucc - nekem ugy tunt hogy nem kompatibilis, warning problemak miatt - letiltani nehezen tudtam oket.+ FreeRTOS-t hasznalva nehezen hittem el, hogy rendesen implementaltak a multiszalas dolgokat. Hat, rendesen implementaltak.
Most PlatformIO-t hasznalva, sokkal jobb a helyzet. -
cog777
senior tag
Hianyoltam az egyszeru kommunikaciot a szalak kozott, regebben Qt-t es Boost signal-t hasznaltam. Aztan kiderult hogy tok egyszeru a promise-al kuldeni adatot a belole kinyert future-be.
Itt van egy masik pelda adatcserere, a producer megvarja amig a consumer elindult, majd kuldi az adatot. Az egyik direkt async-et hasznal, a masik thread-et. FreeRTOS alatt a Thread ugyanugy FreeRTOS utasitasokat hasznal csak el van rejtve a stack meg egy csomo minden. De a Promise-future paros tenyleg nagyon jo. Ha megvan irva a move constructor es assignment operatora a struct-nak, akkor nincs nagy adatmozgas ha promise-t hasznalsz.
Gyakorlatilag: konstruktor hivas, majd move konstruktor.#include <iostream>
#include <future>
#include <thread>
#include <chrono>
/*
Ez tortenik a struct keszitesekor:
ctor2
move ctor
move ctor
Received signal: 42
*/
struct data_s
{
data_s() { std::cout << "ctor1" << std::endl; }
data_s(int v) : data(v) { std::cout << "ctor2" << std::endl; }
data_s(data_s &&rhs) : data(std::move(rhs.data)) { std::cout << "move ctor" << std::endl; }
data_s &operator=(const data_s &rhs)
{
std::cout << "copy operator" << std::endl;
if (this == &rhs)
return *this;
data = rhs.data;
return *this;
}
data_s &operator=(data_s &&rhs)
{
std::cout << "move operator" << std::endl;
data = std::move(rhs.data);
return *this;
}
int data{0};
};
void task_consumer_fnc(std::future<data_s> &&f, std::promise<void> &&ready_signal)
{
ready_signal.set_value();
while (true)
{
if (f.wait_for(std::chrono::milliseconds(100)) == std::future_status::ready)
{
auto d = f.get();
std::cout << "Received signal: " << d.data << std::endl;
break;
}
}
}
void task_producer_fnc(std::promise<data_s> &&signal, std::shared_future<void> &&ready_slot)
{
ready_slot.get();
// std::this_thread::sleep_for(std::chrono::milliseconds(1000));
signal.set_value({42});
}
int main()
{
std::promise<data_s> signal;
auto slot = signal.get_future();
std::promise<void> ready_signal;
std::shared_future<void> ready_slot(ready_signal.get_future());
std::packaged_task<void(std::promise<data_s> &&, std::shared_future<void> &&)> task_producer(task_producer_fnc);
auto future_producer = std::async(std::launch::async, std::move(task_producer), std::move(signal), std::move(ready_slot));
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
std::packaged_task<void(std::future<data_s> &&, std::promise<void> &&)> task_consumer(task_consumer_fnc);
std::thread thread(std::move(task_consumer), std::move(slot), std::move(ready_signal));
thread.join();
return 0;
} -
cog777
senior tag
Leteszteltem, FreeRTOS alatt rendben mukodnek a C++ szalak: Future, Promise, Thread.
Az elso kettovel az adatcsere is mukodik!
Nem kell hasznalni a queue-kat...Szal inditas:
void thread_worker()
{
while (1)
{
auto thread_id = std::this_thread::get_id();
Serial.printf("Thread ID: %d", thread_id);
Serial.println(F(""));
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}
...
// 2 szal inditasa:
auto th = std::thread(thread_worker);
th.detach();
auto th2 = std::thread(thread_worker);
th2.detach();Adat csere:
void task_producer_fnc(std::promise<data_s> &&signal)
{
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
Serial.println(F("SIGNAL from thread"));
signal.set_value({.data = 42});
}
...
std::promise<data_s> signal;
auto slot = signal.get_future();
std::packaged_task<void(std::promise<data_s> &&)> task_producer(task_producer_fnc);
auto future_producer = std::async(std::launch::async, std::move(task_producer), std::move(signal));
// Var az szignalra
auto value = slot.get();
Serial.printf("Data_s Value: %d", value.data);Bocsanat, ha trivialis, talan FreeRTOS kezdoknek jol johet. Engem is meglepett hogy hogy ezek a C++ ficsorok mukodnek.
-
cog777
senior tag
Na, meglepodtem, le tudom forditani az std::future-t es a std::promise-t ESP32-re.
Ma nincs idom, de majd megnezem hogy tenylegesen mukodik-e az adatcsere ket feladat kozott... ha mukodik, akkor nem kell queue-t hasznalni. -
cog777
senior tag
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
senior tag
-
cog777
senior tag
válasz
Tankblock #22705 üzenetére
Attol tartok nem lesz olyan egyszeru, a ChatGPT ezt irta:
...
Configure Memory Allocation: In FreeRTOSConfig.h, set the following macros:
#define configSUPPORT_STATIC_ALLOCATION 0
#define configSUPPORT_DYNAMIC_ALLOCATION 1
Use heap_3.c: heap_3.c doesn’t rely on configTOTAL_HEAP_SIZE. Instead, it uses the heap allocated by the linker. Ensure that heap_3.c is included in your build.
heap_3.c-t meg lehet talalni a letoltott forraskodban.Most ezt probalom. NewLib kavarast is meg kell meg neznem.
"Az általad említett ArduinoJSON könyvtár leírása szerint hacsak nem több szálból szeretnél 1 JSON t írni nem lesz gond..."
Nincs problemam ezzel, a malloc es free multiszalas eleressel van. Remelem a fenti megoldja."kérdés h megéri e, kell e, jó ez a SW arhitektúra.... kell e több szál vagy sem."
Ez nem kerdes, minden ceg hasznal RTOS-t a komolyabb mikrokontrollereken, es most ezen a teruleten dolgozom. 10 ev beagyazott linux tapasztalat mellett ezt is meg akarom tanulni. -
cog777
senior tag
Sok helyen olvastam, illetve a cegnel ki lett debuggolva.
"When using FreeRTOS, malloc() and free() are not considered thread safe. As a result, it’s recommended that you use pvPortMalloc() and vPortFree() instead."Steps to use FreeRTOS with newlib reentrant Memory Allocation
Szoval 100%-ban hiszem.
A problema hogy sok kulso portolt library csak sima mallocot hasznal pvPortMalloc helyett (tehat ki kell cserelni), illetve ami meg nem tiszta, hogy neha ez sem eleg, ezert kell a newlib-et hasznalni, de ez meg nem tiszta nekem. -
cog777
senior tag
válasz
cog777 #22701 üzenetére
Exception-ok mukodnek, bena voltam.
Amugy megtalaltam hogy a heap3 memoria allokacios strategia thread safe-et csinal a malloc-bol es a free-bol:
heap_3
– simply wraps the standardmalloc()
andfree()
for thread safety.
platformio.ini-be tettem ezt:
board_build.freertos.heap_model = heap_3 -
cog777
senior tag
Hasznal valaki exception-oket ESP32-on FreeRTOS alatt, kivancsi vagyok tamogatja-e, mert sok stl megoldas exception-t dob ha problema van.
Kiprobaltam egy egyszeru try catch blokkot, es boot loop-ba kerult az ESP32-om.
Lehet engedelyezni az exception-okat? -
cog777
senior tag
válasz
Tankblock #22696 üzenetére
Termeszetesen a TCP socket sajat Task-ban mukodik, mikozben mas thread/task ugyanugy hivja a malloc-ot. A C library malloc _NEM_ thread safe. Ez a problema. Tehat barmilyen ket Task, amibol malloc van hivva egyszerre, az problemas.
"Kérdés embedded környezetben miért szeretnél folymatosan memóriát foglalni"
Azert, mert szamtalan kulso library dinamikusan memoriat foglal memoriat, pl TCP socket vagy ArduinoJSON. Ez ellen nem lehet mit csinalni, hacsak nem lesznek megirva statikus allokaciora, ezt pedig a ceg altalaban nem fogja megengedni mert rengeteg ido, hacsak nem szuper kritikus helyen, nagyon celzottan keszul a rendszer, ahol a Misra C-nek megfelelo szabvanyt kovet a fejlesztes. Ami draga lesz. -
cog777
senior tag
válasz
Tankblock #22694 üzenetére
Hat, azert van par library ami biztosab dinamikus memoria allokaciot hasznal, pl. ArduinoJson, TCP socket stb, siman hasznalnak malloc-okat parhuzamosan, amig a hardvert en kezelem manualisan, gyakorlatilag minden hardveren egy azt mukodteto forraskod/task/driver ul es az fel van keszitve a tobbszalas eleresre.
Atomic jo otlet, nem jutott eszembe, hogy mar azt is lehet hasznalni...Amugy kivancsi vagyok, hogy a memoria toredezettseg nagy problema-e, mert hozzaszoktam a johoz desktop-on
pl optional-ba csomagolt variant ertekeket kuldok at a queue-on egyik task-bol a masikba ...
-
cog777
senior tag
válasz
Tankblock #22689 üzenetére
Ha az ember hasznal egy csomo library-t, akkor azok valoszinuleg hasznalnak dinamikus memoria allokaciot. Ha csak a sajat kodot kellene lekezelni, akkor egyszerubb lenne, de ugye az ember probal idot sporolni es felhasznalni mas lib-eket. Mas megoldast annyira nem ismerek mint megcsinalni a malloc-ot es a free-t thread safe-re.
-
cog777
senior tag
Hasznal valaki FreeRTOS alatt thread safe memoria allokaciot? Valamit modositani kell hogy thread safe legyen, azt probalom kiokoskodni.
Itt olvastam, ez eleg?extern "C" void __malloc_lock(struct _reent *REENT)
{
vTaskSuspendAll();
}
extern "C" void __malloc_unlock(struct _reent *REENT)
{
xTaskResumeAll();
}
Irnak vallami newLib-rol is, nem tudom ez kell-e? -
cog777
senior tag
Ismer valaki mozgas detektalast segito library-t vagy algoritmust ami ESP32-on mukodik? Az ArduCam kamera kepet szeretnem felhasznalni. Gondolom valamennyi pixel valtozast eszlelnek.
Ha nincs semmi otlet, akkor a kovetkezot probalom meg:
kis felbontasban (VGA) eltarolom az elso kepet, majd a kovetkezot osszehasonlitom az elozovel mennyi pixel valtozast eszlelt. Lehetne pl a pixelvaltozast is hangolni, pl RGB ertekeknel csak ha 10 feletti a valtozas, az jelenti az igazi pixelvaltozast, kulonben figyelmenkivul hagyom.
A kis PIR-em nem igazan megbizhato, volt hogy semmit nem erzekelt. Mikrohullamuhoz mozgaserzekeleshez most jelenleg nincs idom.
A kameras mozgaserekelesnek a nagyobb energiafogyasztas a hatranya a PIR-hez kepest... -
cog777
senior tag
Na, mukodik az ArduCam Mini OV2640 kepkeszites, erdemes az Arducam Mini LowPowerMode peldat megnezni. Egesz jo kepet keszit! Orulok ennek a kameranak.
Telegram-ra feltolteshez pedig egy olyan peldat erdemes nezni ahol 1KB-onkent tolti fel a telegramra. A beepitett pelda nekem crash-t okoz.
A ket peldat ossze kellett mixelnem, mert az utobbi telegrammos nem hasznalja az SPI-t.
Problemak voltak:
- Arduino Nano ESP32 bootloader nelkul jott (1.5 het, kabel problemat gyanitottam)
- telegrammos peldaban nem zartam le az atvitelt, igy nem is erkezett meg egy beepitett pelda kep
- soros porton atvitelkor az egy szamjegyu ertekek hexaban ervenytelenek voltak pl 0x00 helyett csak 0x0 lett atkuldve, igy a konvertalo progi ami lementette binarisban ervenytelen kepet mentett le.
- teszt kep meretet hasznaltam fel a rendes kamera kep merete helyett.Na, kb 3 het utan el kezdett mukodni
Fejlesztem tovabb FreeRTOS alapokon az okos otthoni rendszeremet. -
cog777
senior tag
Valakinek mukodik a kep kiolvasasa az ArduCam Mini-bol? OV2640-os modul van meg.
Valamilyen adathalmaz jon ha elinditom a kiolvasast, de az nem JPEG kep.UHhh, bena vagyok. Valaki mondja meg hogyan kell a programkod formazast hasznalni?
A kivalasztom es beillesztem modszer nem mukodik.
Inicializalas:myCAM.set_format(JPEG); myCAM.InitCAM(); myCAM.OV2640_set_JPEG_size(OV2640_1600x1200); delay(1000); myCAM.clear_fifo_flag(); Serial.println(F("Camera initialized."));
Capture inditasa:
// Start capture myCAM.flush_fifo(); myCAM.clear_fifo_flag(); vTaskDelay(1000 / portTICK_PERIOD_MS); myCAM.start_capture(); vTaskDelay(1000 / portTICK_PERIOD_MS); while (!myCAM.get_bit(ARDUCHIP_TRIG, CAP_DONE_MASK)) { vTaskDelay(100 / portTICK_PERIOD_MS); }
uint32_t length = myCAM.read_fifo_length(); image_size = length; Serial.print(F("Captured image size: ")); Serial.println(String(length)); image_buffer = (unsigned char *)ps_malloc(length * sizeof(unsigned char)); myCAM.set_fifo_burst(); uint8_t temp = 0, temp_last = 0; int idx = 0; myCAM.set_bit(ARDUCHIP_GPIO, GPIO_PWDN_MASK); vTaskDelay(100 / portTICK_PERIOD_MS);
while ((temp != 0xD9) | (temp_last != 0xFF)) { temp_last = temp; temp = myCAM.read_fifo(); Serial.print(String(temp, HEX)); image_buffer[idx++] = temp; delayMicroseconds(10); }
myCAM.clear_fifo_flag(); -
cog777
senior tag
válasz
cog777 #22640 üzenetére
Na mit szivtam... mar a vegere rajottem hogyan kell feltolteni egy programot, de zavart hogy ki-be kellett huzkodni a csatlakozot, reset gombot nyomogatni stb hogy feltoltsek barmit.
Egyszer csak bevillant, toltsem fel a BOOTLOADER-t! Es voala, el kezdett mukodni a debugger is, nem csak a feltoltes es futtatas.
Almomban sem gondoltam hogy bootloader nelkul jon
Most tokeletesen mukodik! -
cog777
senior tag
válasz
Janos250 #22629 üzenetére
Kozben tortent elorelepes: ha ESP32 board-okbol valasztom ki az Arduino Nano ESP32-t akkor lefordul, de nincs debug. Ha Arduino Boardok kozul valasztom ki, akkor egy csomo error-t ir ki a warningok miatt az ArduCam library-ra. pl ez miatt: -Wno-error=unused-variable
Lehet modositani a platform.txt-t?Esetleg hasznalom az altalanos ESP32-t es akkor nem hasznalom a debug-ot ...
"Lehet, csak újabb verzióval kellene fordítani, azaz az Arduino keretrendszer újabb verzióját használni!"
Hm, hogyan tudom upgradelni?
**************
Mas problema. Eredeti Arduino Nano ESP32-ot hasznalva nem mukodik a soros port. Nem ertem. Ha mindenfele szinben villog a mikrokontroller LED-je, akkor nincs soros port a Windows alatt, ha dupla reset gomb megnyomasaval csak zolden, akkor fel tudom tolteni a firmware-t, de nem mukodik a mikrokontroller.
NAGYON furcsa, mert egy klon Lilygo ESP32-vel nem volt ilyen keveres, egybol mukodott feltoltes utan a soros port, igaz - linux alatt probaltam. Most Windows alatt nem mukodik. Azt hiszem, telepithetek linuxot kiprobalni hogy ott mukodik-e. -
cog777
senior tag
Megcsinaltam a programomat, kivalasztottam az Arduino esp32 board-ot, engedelyeztem a c++17-et, letoltottem az Arducam library-t, majd kaptam egy csomo forditasi hibat a konyvtaron pl inicializalatlan valtozo stb. Valahogy nem szereti az Arducam konyvtar a c++17-et, igy viszont irhatom at a progimat. Lehet bizonyos konyvtarakra letiltani warning-okat Arduino Ide-t hasznalva?
-
cog777
senior tag
válasz
ViZion #22582 üzenetére
Koszi a valaszt es az okos otthon topik ajanlast, elsiklottam felette. Arra is gondoltam hogy a homerseklet, esetleg fust erzekeloket nem DIY keszitem, mert allandoan toltogetnem kell az aksikat, hanem gyarit veszek tobb eves mukodesi idovel, viszont a "kozpont"-ot en csinalom esp-vel
, teszek ra telegram-ot, jo kis freertos/c++ gyakorlasnak. Persze integralhatnam valahogy HA rendszerbe, illetve valamilyen okos otthoni, google, amazon stb rendszerbe, de ... meg itt nem tartok, illetve szeretnem a freertost jobban megismerni.
Megnezem a linkeket, koszi megegyszer.Mas.
Valaki meg tudna mondani mi ez a "Matter" az Arduino Matter uj mikrokontrollerevel kapcsolatban? Meg egy Zigbee-hez hasonlo protokol? -
cog777
senior tag
Ha van egy zigbee-s PIR, akkor azt ossze tudom kapcsolni az esp32 mikrokontrolleremmel? Persze egy zigbee modulon keresztul. Nagyon vonzo a PIR tobb eves mukodese elemmel, az esp32 pedig ugy is 220-rol es tapegysegrol mukodik.
-
cog777
senior tag
Talatam egy esp32-hoz passzolo kamerat: ArduCam Mini 2mp
Viszont a lencset le szeretnem cserelni nagyobb latoszogure. Ha valaki ert hozza, megnezhetne hogy milyen adaptert es lencset kell kivalasztanom ... elvileg lehetseges a csere, CS-mount / M12.
Masik webshop, talan par Euroval olcsobb.
Amazon.de-n talaltam lencset, de nem vagyok biztos hogy melyik megfelelo. -
cog777
senior tag
Masik kerdesem: nem tudom a flash-t hasznalni. Arduino IDE-ben kivalasztottam az ESP32 Dev Module-t, 4MB flash-t kette osztottam 2MB App-ra es 2MB SPIFFS-re. Itt van a kod. Mi lehet a problema?
Mindog a "- failed to open file for reading" uzenetet latom, tehat nem kesziti el a fajlt.if (!SPIFFS.begin(true))
{
Serial.println("An Error has occurred while mounting SPIFFS");
return;
}
...
File file = SPIFFS.open("/startup.txt");
if (!file || file.isDirectory()) {
Serial.println("- failed to open file for reading"); //<<-- MINDIG EZT LATOM.
global_repo.startup_counter = 1;
}
...
file = SPIFFS.open("/startup.txt");
counter_str = String(global_repo.startup_counter);
Serial.print("Startup counter: ");
Serial.println(counter_str.c_str());
file.write((const uint8_t*)counter_str.c_str(), counter_str.length());
file.close();
Tehat valami startup szamlalot akarok kesziteni, beolvassa a szamlalot a fajlbol, megnoveli 1-el, majd kiirja. Ha nem sikerul beolvasni, akkor kiirja az 1-et.Mas. Szegyen, nem szegyen, valaki leirhatna hogyan lehet a kod formazot hasznalni, mert ha beillesztek programkodot, akkor 1-2 sorba rakja az osszes sort.Nekem kell shift+enter-eket utogetve + tabozni. Linux es Windows alatt is probaltam, kb bongeszo fuggetlenul nem tudok beilleszteni.
-
cog777
senior tag
Lattam az egyik uzletben okos riasztorendszert, a PIR erzekelo pl 6 honapot megy elemrol.
Ez elegge tetszetos, leteznek szenzorok amelyekhez az ESP32 tud csatlakozni? Tehat a protokollja nem zart? Igy az ESP32-m mint kozponti vezerlohoz todnam csatlakoztatni ezeket a cuccokat. FreeRTOS-t tanulom, igy szeretnem ezt a reszt magam csinalni.
En is epithetek PIR szenzoros riasztot, de az nem fog fel evig mukodni elemrol, vagy 5V-os tapra kotom, de azert jo lenne az elemes megoldas...
Total nem vagyok kepben a mostani okos otthoni rendszerekkel kapcsolatban, hogy mind kompatibilis-e egymassal, vagy vannak zartak... passz. -
cog777
senior tag
Keresek egy eredeti Arduino-s board-ot, amit bluetooth BLE kommunikaciora akarok hasznalni, es tul sok reszelgetes es forrasztgatas nelkul is tud jo deep sleep aramot, kb <100uA
Van valakinek tapasztalata? Nano 33 BLE vagy mas esetleg?
-
cog777
senior tag
Telegramos vezerles tok jo, ingyenes. Remekul mukodik
-
cog777
senior tag
Ahogy latom, Arduinosok kihoztak egy uj board-ot: Arduino Nano Matter
Doksija szerint ultra low power-t igernek 16 mA mukodes kozben, illetve jumpert rovidrezarva 5Vin-en taplalva deep sleep-et.Amire kivancsi vagyok hogy milyen meglevo library-val kompatibilis, hiszen teljesen mas CPU, osszehasonlitva az esp32-vel...
-
cog777
senior tag
Talatam SPI-s kamerat, 3-5Mpx, lehet beizzitom az esp32-met.
EU-s link
I2C LCD kijelzo, statusz adatoknak
Telegram-on vezerelni a cuccot, karmerat lekerdezni.
Ezeket osszekombinalva csinalok egy okos rendszert, tanulasi cellal
Tudom, meg lehet csinalni RPi-vel is, de most a mikorkontrollerek jobban erdekelnek... -
cog777
senior tag
Van egy uj projektem. Egy kezi radio audio kimenetet kellene monitoroznom, es szamolnom hanyszor nyitott ki a zajzar. Szerintem egy meglevo esp32-ot hasznalok fel, annak van kijelzoje, fogyasztas mindegy, mert usb-rol taplalom.
Kerdes hogy hogyan kossem ossze fizikailag az esp32-vel, talan vezetekekkel es proba panellal?
Mekkora lehet a max feszultseg egy kezi radio audio jack csatlakozojan? (Quansheng k5-k6-rol lenne szo) Szerintem az ESP32 3V-ot visel el, asszem...Az egesznek az a lenyege, hogy ha nem vagyok radiokozelbe, akkor is tudjam kesobb, hogy valaki kereshetett (amolyan nem fogadott hivas szamlalo).
-
cog777
senior tag
Ha valakit erdekel hogy telepitsuk vscode szervert RPi4-re (vagy PC-re): [link]
PlatformIO-t is sikerult raspberry pi-re, eloszor cpptools-t kellett letoltenem a marketplace-rol es telepitenem manualisan, majd ugyanazt a platformio-val.
Forditas mar mukodik, feltoltest meg nem probaltam, illetve a PIO Home nem jelenitodik meg, de lehet hogy csak a raspberry pi miatt van.
VPN-en keresztul tavolrol, akar egy tablettel is lehet kodolni az esp32-t. -
cog777
senior tag
Valaki probalt PlatformIO-val hasznalni Adafruit_ST7789.h?
hianyolja az mbed-et, mikozben Arduino IDE-vel tokeletes.
.pio/libdeps/esp32dev/Adafruit_ST7789/Adafruit_ST7789.h:21:10: fatal error: mbed.h: No such file or directory -
cog777
senior tag
válasz
lanszelot #21080 üzenetére
Elvileg az Arduino IDE-ben vannak esp32-hoz kapcsolodo "camera" peldak.
Azokat probald meg feltolteni ugy hogy beirod a wifi azonositot es jelszot. Remelhetoleg szabvanyosan kotottek ossze a kameraval a esp32-t.En a Lilygo valtozatot fogom megvenni, azt legalabb latom a neten, hogy valaki mar kiprobalta.
Ha telepitesz egy VPN klienst, akkor Interneten keresztul is meg tudod nezni. [link]
-
cog777
senior tag
Pushover tokeletesen mukodik FreeRTOS alatt is. [link]
-
cog777
senior tag
Valaki hasznalt mar Arduino Cloud-ot?
Ugy tunik csak a Web Editorban lehet legeneralni a cloud kodot.
Kicsit nehezkes egy letezo projekthez hozzaadni a cloud source fajlokat. -
cog777
senior tag
Talaltam egy 5 eszkozig ingyenes VPN szolgaltatot, esp32-re is
https://husarnet.com/
-
-
cog777
senior tag
válasz
Undoroid #20969 üzenetére
Jelen pillanatban a szerver egy esp32 es TCP szerverkent is funkcional. Tehat az esp8266 felebred, elkuldi az homersekletet a kertbol es a padlasrol es elalszik. A szerver folyamatosan mukodik es kijelzi a korabban vett adatokat. Ha bizonyos ideig nincs frissites akkot kitorli az adott szenzorhoz tartozo adatot. Igy tudom meg ha kifogyott az elem ha nincs kijelzes az adott szenzorhoz.
Amugy ezt a valtozatot micropythonban irtam, tuti egyszeru volt.
Most c++-ra irom at es FreeRTOS-t hasznalva. Akarok hasznalni pushovert es arduino cloud-ot. -
cog777
senior tag
Na, eloszedtem egy TTGO ESP32 modult, siman mukodik a FreeRTOS + a WiFi. Meg a rajta levo 3 gomb egyiket sem kell megnyomnom feltolteskor. Arduinos sracok egesz jo okoszitsztemat hoztak letre.
-
cog777
senior tag
Na, hal istennek fagy a wifi ha freertos-t hasznalok raspberry pico-n.
Keresek valamilyen Arduino-s megoldast ami stabil es tamogatja a wifi-t, freertos-t.
Talan Arduino Nano ESP32? Gondolom az van vele egy ligaban es tamogatja az Arduino Cloud-ot. -
cog777
senior tag
Hasznal valaki Arduino IDE 2.x-et Raspberry Pi Pico W-vel?
Ujbol kedvet kaptam az Arduino IDE hasznalatahoz, viszont problema van a leforditott binaris feltoltesevel.Amikor BOOTSEL modban van, tehat megjelenik a drive a szamitogepen, akkor kivalasztom azt mint port es remekul feltolti. Viszon csinal egy reboot-ot es onnantol nem lehet feltolteni semmit sem, hiaba valasztottam ki a portot. Tehat ujbol ki kell hoznom es nyomva tartani a gombot amikor csatlakoztatom. Ami gaz.
Lehet hogy valamit kihagyok? Linuxot hasznalok amugy. -
-
cog777
senior tag
Nagyszeru, megnezem, koszi.
Tovabba ezt talaltam: https://blynk.io/ ingyenes 2 eszkozig, 7 dollar/ho 10 eszkoz.
Tovabba van mobil app-ja is, gondolom ertesitesekkel. -
cog777
senior tag
Keresgeltem, de nem talaltam topikot a kerdesemre, remelem maradhat. Szoval, elhataroztam hogy ujraszervezem a hazi homeros projektemet, jelen pillanatban van egy ESP32 amely szerverkent funkcional megjeleniti egy LCD-n a kulonbozo ESP8266-ok altal kuldott adatokat, homerseklet, paratartalom.
Ezt a felallast szeretnem kivaltani egy okosabb rendszerrel. Elsosorban kellene riasztas vagy emal-ra, vagy telefonra ha a benti homerseklet eler egy kuszoberteket.
Amit most kigondoltam hogy az RPi lesz a szerver, es pythonnal kuldhetek email. Viszont vannak okosabb IoT rendszerek de ezeket nem ismerem. Van valami otletetek hogyan tudnam megoldani?
Talaltam IoT dashboard-okat de azok kb 10 dollartol kezdodnek havonta, nemelyiknek mobilos app-ja is van.
IFTTT-t nem ismerem, lehet hogy ez segit? pl email notification?
https://anthscomputercave.com/tutorials/ifttt/using_ifttt_web_request_email.htmlTovabba egy IoT dashboardot is keresek, aminek van mobilos app-ja, regebben volt ingyenes par eszkozig, de most nem talalok. Korabban csinaltam magam, bereltem egy szervert es domain nevet, grafana-t futtattam, de erre mar nincs idom, valami kulcsrakeszebb kellene.
Talan ti is hasznaltok ilyen IoT riaszto/dashboard szeruseget. Elore is koszi a tanacsokat.
-
cog777
senior tag
Vannak itt ott a lakasban es a kertben ESP8266 moduljaim, 4xAA aksival, dobozozokban. Ezek merik a homersekletet es kuldik egy ESP32-nek, amelyik megjeleniti az ertekeket.
A kertiek fel orakra elalszanak, 70uA-t fogyasztanak igy, kb 4-6 honapot siman mennek aksiva. Probapanelokra raktam az procikat es az alkatreszeket.
Par eve remekul mukodnek, de mosnanatba vettem eszre hogy nemelyik nem kapcsol be, pedig frissen toltott aksikat raktam be. Szerintem eselyes hogy a probapanelok korrodalodtak. A benti modul rendben mukodik.
A kinti homerseklet szenzorokat akarom valami megbizhato megoldasra cserelni.
Tud valaki kesz homerseklet modulokat (zart, kintit, elemmel v aksival mukodo), amelyek valamilyen ismert protokollon kuldik az adatokat es azokat tudnam feldolgozni?A szervert szivesen epitem en tovabbra is, nem kifejezetten konyhakesz rendszerben gondolkodom.
-
cog777
senior tag
válasz
Harcipocok84 #19330 üzenetére
Ha fontos az adat amit elmentesz, lehet hogy mentenek melle egy CRC/checksum whatever extra meta adatot es azzal ellenoriznem a beolvasott adatot. Ha hibas, akkor egy alapertek hasznalnek. (esetleg naploznam ezeket az esemenyeket egy sd kartyara, de ez mar nagyon extra)
-
cog777
senior tag
válasz
skun76 #18858 üzenetére
Legegyszerubb ha mered az eltelt idot es ha tulhalad, akkor kilepsz a ciklusbol.
valami ilyesmi:
unsigned long startT = millis();
bool timeout = false;
bool wifiConnected = false;
while (!timeout && !wifiConnected)
{
wifi kezeles; (wifiConnected = true ha sikerult kapcsolodni)
if (millis() - startT > 5000)
timeout = true;
}
Igy megkapod a kulonbozo dolgok statuszait is es az szerint tudod eldonteni mi legyen.
wifiConnectedStatus, internetStatus, serverStatus, serverResponseStatusNalam is igy mukodik az altalam csinalt homerok, ha nincs wifi vagy nem erik el a szervert, akkor elmennek aludni (deep sleep).
-
cog777
senior tag
válasz
ViZion #18631 üzenetére
Nekem az ESP 12 wemos van meg. Asszem az 5v-os tap bemenetkent is szolgal, talan meg a stabilizatort is megkeruli? Nem emlekszem, mert evek ota mennek az esp8266-os moduljaim 4xAA aksival honapokat, ugy hogy elaltatom 30 percre oket es a belso szamlalo ebreszti fel egy gyors homerseklet meresre. 70uA-t fogyaszt deep sleepben.
Az ESP-01-el valami varialas volt, talan nem lehetett megkerulni a stabilizatort??? Nem emlekszem.
Új hozzászólás Aktív témák
Hirdetés
- Asus ROG Phone 9 Pro 16GB/512GB - 3 ÉV GARANCIA - MAKULÁTLAN!
- Thrustmaster TS -Pc bázis
- Eladó egy Asus g751j Dobozzal gyári tőltővel
- HP 13"FullHD IPS,i5 8265u(8x3,9Ghz)Villágító billentyűzet,8GB Ram,256-512SSD,jó akku,Szép állapot
- Újszerű Asus,játékra is,17,3"FullHD,i7 8550(8X4Ghz)GT920mx 2/4GB DDR5 VGA16GB RAM,SSD+HDD,
- iKing.Hu - Honor Magic 7 Pro - Black - Használt, karcmentes
- Kaspersky, McAfee, Norton, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Samsung Galaxy A5 32GB Kártyafüggetlen 1Év Garanciával
- AKCIÓ! Lenovo Thinkpad P15 Gen1 15 FHD notebook - i7 10750H 16GB RAM 512GB SSD Quadro T1000 W11
- Újszerű Apple Macbook Air 13 - M2 - 30 Ciklus - 100% Akkumulátor - 8GB/256GB SSD - MAGYAR - Éjfekete
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest