Hirdetés
- Luck Dragon: Asszociációs játék. :)
- Lalikiraly: Kinek milyen setupja van?
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- LordAthis: RETRÓnia - RETRÓ Mánia - Úton van hozzám egy csodás történelmi darab!
- Elektromos rásegítésű kerékpárok
- GoodSpeed: KLINTHOLM 3 fiókos fekete, acél, zárható kiegészítő elem
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Meggyi001: Kórházi ellátás: kuka vagy finom?
-
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
-
Janos250
őstag
válasz
Wolfram
#18822
üzenetére
Ahogy most megnéztem a jo..-on, valóban 50-80 ezer között vannak a használt nyomtatók, Anett A6 már nincs is. Hiába no, infláció volt.
Egyébként csak akkor éri meg nyomtatni, ha saját magadnak csinálod, mert bizony egy ilyen doboz, ha 0.4-es düznivel csinálod, akkor mondjuk 2 óra, de ha vékonyabbal, és vastagabb falvastagsággal, hogy szebb, strapabíróbb, eladható legyen, akár egy nap is lehet. Ezt ha az ember magának csinálja, bekapcsolja, és megy, de bérmunkában ezekkel a régi, viszonylag lassú nyomtatókkal nem érné meg dolgozni.
Mellesleg ez is nagyon közel van az Arduino témához, az alaplapja miatt.
Van FB csoport, akik saját maguk gyártanak maguknak nyomtatót, szintén nagyrészt nyomtatott alkatrészek felhasználásával. Itt persze előjön a tyúk, vagy a tojás probléma.
Egyébként vannak, akik bérmunkában nyomtatnak. Pár éve egy volt kollégám csináltatott egy alkatrészt. Vitte a CAD tervet USB sticken, és kinyomtatták. Az árát óradíj+anyag alapján számolták. Mivel neki elég nagy, tömör alkatrész kellett, erős anyagból, nem lett olcsó. -
Janos250
őstag
válasz
#70211840
#18814
üzenetére
Én 3D nyomtatóval készítem a dobozaimat.
Előnye:
Olcsó. Bármilyen soklyukú, alakzatú formát egyszerű megcsinálni, a siftekkel, és a bennük lévő lyukkal együtt, amibe majd a csavarok kerülnek.. A doboz külsejére a doboz anyagából feliratot is lehet csinálni. Az alapanyag kilója 5-10 eFt, fajtától, bolttól függően, de egy ilyen doboz pár gramm.
Hátránya:
Csak akkor olcsó, ha van saját nyomtatód, és saját magad megrajzold a térbeli mintát valami ingyenes tervező programmal. Egy doboz megtervezése egy óra alatt megtanulható.
Nekem a legolcsóbb, legegyszerűbb, lenézett Anet A8 nyomtatóm van, de ilyesmikre nekem bevált. Használtan már 20-30 ezerért is meg lehet manapság kapni, mert cserélik le az emberek újabbakra, jobbakra. Én még régebben vettem újan, kínai WEBshopból, valahol 40-50 ezer Ft között volt akkor az ára. Az újabbak, jobbak viszont már 150-200 ezer, vagy még több. -
Janos250
őstag
Én is a sodrott pártján állok, mert az nem törik. A merev kábel (fali UTP-ből, kidobott régi telefonkábelekből) régen én is próbáltam használni, de letettem róla, mert nagyon nehezen kideríthető alkalomszerű hibákat okozott, amikor a szigetelésen belül eltört, és hol érintkezett, hol nem. Volt többtíz méter leszerelt, 20 eres telefonkábelem, erre szántam. Aztán inkább kidobtam.
-
Janos250
őstag
Most, hogy a hardware SHA-nál megszivatott az ESP32 egy nem dokumentált bit (DPORT_PERI_EN_SECUREBOOT) miatt, kicsit belenéztem a CLK engedélyezések lelkivilágába. Azt már az RMT-nél is láttam, hogy egyes perifériák csak akkor működnek, ha számukra engedélyezzük a CLK-ot, mert alapból le vannak tiltva, talán energiatakarékossági, melegedési okokból.
Most viszont látom, hogy ez gyakorlatilag az összes perifériára igaz, csak a gyakrabban használt perifériáknál a boot után alapból beállítja a CLK engedélyezést.
Ha valakit valamikor érdekel, a dport_reg.h-ban van róla némi infó.
Korábban itt valaki kérdezte, hogy le lehet-e tiltani a WiFi-t, a fogyasztás csökkentése érdekében. Igen, le. A CLK-ja engedélyezését kell visszavenni. -
Janos250
őstag
-
Janos250
őstag
válasz
Wolfram
#18774
üzenetére
Nekem is van/volt egy csomó fake 18650 akkum, olyan is, amire reálisnak tűnő kapacitás volt írva, aztán tudott 250-300 mAh-t.
Jöttek azok mindenhonnan. ebay, Ali, Józsefvárosi Piac, Gyál piac.
Később már csak ilyeneket vettem:
https://www.aliexpress.com/item/32324914059.html
Ezek bírják a 2500-3000mAh-t mérve.
A baj az, hogy nem lehet tudni, melyik eladó milyet fog küldeni.
Amit linkeltem, az nekem jót küldött, de látva ezt a nagy leértékelést, elgondolkodtam, hogy vajon most is jót küldene-e?
Ha meg ilyenkor reklamálgatsz, akkor egy idő után kitilt az Ali. -
Janos250
őstag
Na, ez az év nálam szívatással kezdődött. :-(
setup előtt egy fgv definíciója.
leegyszerűsítve ilyesmi:uint8_t upLoad ( uint8_t valami){
Serial.println("elindult a fgv");
delay(1000);
} ;
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println ("setup indul");
delay(100);
upLoad ( 5);
Serial.println ("upload utan");
} ;
void loop() {
} ;
Hol újraindult a fgv. hívásakor, hol meg a fgv. hívása után ráment újra setupra, és végtelen ciklusba került.Hogy én mennyit kínlódtam vele, mire rájöttem, hogy a fgv. egyik logikai ágában lemaradt a return, az okozta a gondot

-
Janos250
őstag
válasz
t72killer
#18765
üzenetére
Én továbbra is Aliról rendelek.
Nagy előny, hogy általában futár hozza, ezért nem kell a posta sarcát külön fizetni. Ebay esetén az eladókkal állsz szemben, eléggé kiszolgáltatottan. Nekem megjönnek a dolgok. Régebben sokat rendeltem ebayról, de a mostani VÁM-os dolog ennek betett. Az Ali meg elintézi a VÁM-ot. Volt persze, ami nem teljesen úgy működött, ahogy elképzeltem, de ezt úgy tekintettem, hogy ez a "rezsi". Olyan, mint a villanyszámla. Még így is NAGYON sokkal olcsóbb, mint itthon. Mert megértem én, hogy a kereskedő munkáját is meg kell fizetni, de minek fizessek olyan munkáért, amire nekem nincs szükségem?!
Sajnos sok magyar visszaél a vásárlóvédelemmel, és azt mondja, hogy nem jött meg, és visszakéri az árát. A futárosnál a nyomkövetésnél az is látszik, hogy hány óra hány perckor kézbesítette a futár, így nem lehet bizonytalanság.
Persze mostani rendelésnél iparkodni kell, mert jön az ő ünnepük, és olyankor jó darabig a fű se nő Kínában. -
Janos250
őstag
válasz
ReFleXx
#18732
üzenetére
Az ESP32 WiFi-vel kapcsolatban nekem - érthetetlenül - különböző tapasztalatom van. A régebbi példányok teljesen megbízhatóan kapcsolódnak, de egy újabb, USB C csatis, már a vékony fal túloldalán lévő routerhez is csak bizonyos állásban tud kapcsolódni. :-( Lehet, hibás példány, nem tudom, mert abból jelenleg csak egy van.
-
Janos250
őstag
válasz
ViZion
#18679
üzenetére
Én ESP32-n 48 V-al optocsatoló nélkül használom gyakorlatilag ugyanezt, eddig nem volt vele probléma.
Se opto, se ellenállás, direktbe kötöm az ESP lábára a FET G-t.
Igaz, én az ILZ44Z-nél kissé jobb FET-et használok, de nem gondolnám, hogy ez probléma lenne.
Az ESP32, és a FET (így a terhelés is, ami egy kb. 1 méteres madzag végén egy fűtő ellenállás) GND-je azonos. Viszont más nincs rajta, mert a hőmérséklet mérőt ha rátettem, nagyon zavarérzékeny lett, ezért az külön lapon van, és WiFi-n küldi át az értékeket.
Persze - gondolom én - az általad javasolt megoldás korrektebb. -
Janos250
őstag
válasz
tibi-d
#18479
üzenetére
"Lehet, hogy rosszul tettem fel a kérdést."
Lehet, hogy rosszul tettem fel a választ![;]](//cdn.rios.hu/dl/s/v1.gif)
Ár/érték arányt írtál. Egy régi, másra már nem használható, gyakorlatilag ingyen régi telefon, vagy tablet beleapplikálása a dobozába. Ennél olcsóbb, azaz ingyenes megoldást keveset találsz.
Persze vannak más verziók is, itt valaki éppen mostanában küzd grafikus kijelzővel, mert egy általános könyvtárat használ, amin mindent be lehet ( sőt, kell!! ) állítani, ezért macera. -
Janos250
őstag
válasz
janohi
#18370
üzenetére
Akinek írtam, annak ESP32-je van, és azon van printf, a Te Megádon nem tudom, van-e. :-(
De - ha jól emlékszem - a Serial.printf ugyanezt teszi, de rég volt már a kezemben Mega. Ha hülyeséget írtam, majd javítanak, akik jobban ismerik a Megát.
A printf a szabványban benne van, és az ESP32 a szabványos fordítót használja, tapasztalatom szerint mindent lefordít, ami szabványos a C++11-ig. -
Janos250
őstag
válasz
#70211840
#18319
üzenetére
Ha mindenféléket tudni akarsz a lapodról, akkor futtasd le:
void setup() {
Serial.begin(115200);
delay(3000);
printf("Internal RAM:\n");
printf("HeapSize = %d , 0x%08X \n",ESP.getHeapSize(),ESP.getHeapSize());
printf("FreeHeap = %d , 0x%08X \n",ESP.getFreeHeap(),ESP.getFreeHeap());
printf("MinFreeHeap = %d , 0x%08X \n",ESP.getMinFreeHeap(),ESP.getMinFreeHeap());
printf("getMaxAllocHeap = %d , 0x%08X \n\n",ESP.getMaxAllocHeap(),ESP.getMaxAllocHeap());
printf("SPI PSRAM:\n");
if(psramInit()){
printf("PsramSize = %d , 0x%08X \n",ESP.getPsramSize(),ESP.getPsramSize());
printf("FreePsram = %d , 0x%08X \n",ESP.getFreePsram(),ESP.getFreePsram());
printf("MinFreePsram = %d , 0x%08X \n",ESP.getMinFreePsram(),ESP.getMinFreePsram());
printf("MaxAllocPsram = %d , 0x%08X \n\n",ESP.getMaxAllocPsram(),ESP.getMaxAllocPsram());
}else{
Serial.println("PSRAM not available");
} ;
printf("ChipRevision = %d \n",ESP.getChipRevision());
printf("ChipModel = %s \n",ESP.getChipModel());
printf("ChipCores = %d \n",ESP.getChipCores());
printf("CpuFreqMHz = %d \n",ESP.getCpuFreqMHz());
printf("SdkVersion = %s \n",ESP.getSdkVersion());
printf("FlashChipSize = %d, 0x%08X \n",ESP.getFlashChipSize(),ESP.getFlashChipSize());
printf("FlashChipSpeed = %d \n",ESP.getFlashChipSpeed());
printf("FlashChipMode = %d \n",ESP.getFlashChipMode());
printf("SketchSize = %d, 0x%08X \n",ESP.getSketchSize(),ESP.getSketchSize());
printf("FreeSketchSpace= %d, 0x%08X \n",ESP.getFreeSketchSpace(),ESP.getFreeSketchSpace());
printf("EfuseMac = %d, 0x%08X \n",ESP.getEfuseMac(),ESP.getEfuseMac());
printf("SPI_FLASH_SEC_SIZE = %d, 0x%08X \n\n",SPI_FLASH_SEC_SIZE,SPI_FLASH_SEC_SIZE);
printf("\nPartition table:\n");
esp_partition_iterator_t it;
esp_partition_t *pPart;
it = esp_partition_find(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_ANY, nullptr);
while (it != nullptr)
{
pPart = (esp_partition_t *) esp_partition_get(it);
printf("main: partition type = %d.\n", pPart->type);
printf("main: partition subtype = %d.\n", pPart->subtype);
printf("main: partition starting address = %x.\n", pPart->address);
printf("main: partition size = %x.\n", pPart->size);
printf("main: partition label = %s.\n", pPart->label);
printf("main: partition subtype = %d.\n", pPart->encrypted);
printf("\n");
it = esp_partition_next(it);
}
it = esp_partition_find(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_ANY, nullptr);
while (it != nullptr)
{
pPart = (esp_partition_t *) esp_partition_get(it);
printf("main: partition type = %d.\n", pPart->type);
printf("main: partition subtype = %d.\n", pPart->subtype);
printf("main: partition starting address = %x.\n", pPart->address);
printf("main: partition size = %x.\n", pPart->size);
printf("main: partition label = %s.\n", pPart->label);
printf("main: partition subtype = %d.\n", pPart->encrypted);
printf("\n");
it = esp_partition_next(it);
}
esp_partition_iterator_release(it);
}
void loop() {
} -
Janos250
őstag
válasz
Szancsó
#18307
üzenetére
Most dicsekedsz, vagy panaszkodsz? :-) :-)
Nem tudok jobb megoldást, de azt azért megnézném, hogy egyesével kihagynám a dolgokat, hogy kiderüljön, melyik nyomja meg annyira a memóriát.
A világon valahol valakik által megírt programok néha elképesztő pazarlók.
Ilyen lehet például a TFT kezelő, ha nincs megfelelően ifdef-ezve, hogy már a fordítás során tudja, hogy mit fordítson be, és mit ne, hanem mindent befordít, mindenféle TFT-hez, akár szükséges, akár nem.BT-t nem használom, így azt nem tudom.
WiFi, ha a szokásos WiFi.h-t használod, nem szabad, hogy sokat fogyasszon.Én a mindenféle UI-k esetében csak egyszerű HTML lapot használok. Ha kell websockitot használok, amire itt tanítottak meg a fórumtársak. :-)
-
Janos250
őstag
válasz
Wolfram
#18252
üzenetére
Ha úgy rendeled, ahogy Aryes írta, az esetek 95 százalékában nem a postán keresztül jön, hanem futár hozza.
Nem mindenütt adható meg a standard, de általában a többi is futárral jön. Ha nem, akkor szívás: Posta küld egy üzenetet, hogy 400 Ft-ot ha átutalsz, hozza a postás. Ha adott idő alatt nem fizeted be, akkor is hozza a postás, de akkor már 800-at fizetsz.
A feladó kifizette az ÁFÁT-t, azzal nem kell foglalkozni, de a Magyar Posta időnként mégis foglalkozik vele, és mégegyszer elkéri az ÁFA-t. Ekkor persze vissza lehet kérni, de általában nem éri meg a macera.
Standarddal kell rendelni, és a problémák megúszva.Lapok?
Pl. most is van itt, aki STM32 bluepillt használ. Régebben én is használtam, szerettem.
https://www.aliexpress.com/item/1005003880238896.htmlÉn meg ezeket használom:
https://www.aliexpress.com/item/1005001636295529.html
Valamivel kétezer Ft fölött vannak, de nagyon sok mindent tudnak.
Sok memória, nagy sebesség, két mag, rengeteg hardver periféria kezelés. -
Janos250
őstag
válasz
Wolfram
#18248
üzenetére
Nekem Aliról mostanában 10-15 nap alatt jönnek be a cuccok. Ami nem, az meg másfél hónap múlva :-(
Arduino panelt nem rendeltem mostanában, csak egyebeket.
Itt van pl. Uno:
https://www.aliexpress.com/item/1005001621923182.htmlAzt azért úgy csendben megkérdezném, hogy miért éppen Uno-t akarsz, hiszen nagyjából hasonló áron már sokkal korszerűbb, lapok is vannak. Ha ragaszkodsz a formához, ennyiért már Wemos D1-et is kapsz. Vagy STM32-t
-
Janos250
őstag
válasz
#70211840
#18223
üzenetére
Közben még más is eszembe jutott:
a ILI9225 , az ahogy a neten nézem, egyértelműen SPI. Rosszul nézem?
Mert, ha SPI, akkor az soha nem fog menni párhuzamos porttal.
Rosszul látom?http://www.lcdwiki.com/2.2inch_Arduino_SPI_Module_ILI9225_SKU:MAR2201
-
Janos250
őstag
válasz
#70211840
#18223
üzenetére
Ha lefordul, akkor sehol.
a gpio_def.h-ban van más néven gyakorlatilag ugyanaz a struktúra:
typedef struct gpio_dev {
gpio_reg_map *regs; /**< Register map */
rcc_clk_id clk_id; /**< RCC clock information */
/**
* @brief (Deprecated) External interrupt port.
* Instead of dev->exti_port, use gpio_exti_port(dev).
*/
exti_cfg exti_port;
} gpio_dev;És a gpio_reg_map is az STM32F4 sorozathoz.
(Én az STM32F1 sorozathoz néztem korábban)Vagyis ő ugyanezt a struktúrát gpio_dev -nek nevezi
Továbbá:
extern const gpio_dev gpioa;
#define GPIOA (&gpioa)Vagyis ez valóban a helyes címe lesz, nem kell a GPIO_TypeDef.
Viszont, hogy haArduino_STM32PAR8(int8_t dc, int8_t cs, int8_t wr, int8_t rd, GPIO_TypeDef* port)
-ban aGPIO_TypeDef* portszerepel, akkor miért fogadja el szintaktikailag a
GPIOA-t, mint címet is, az számomra nem világos, ehhez a C++ -t jobban ismerők kellenének.
Én úgy tudom, hogy ha a "GPIO_TypeDef* port"szerepel a konstruktorban, akkor nem kéne elfogadnia csak úgy, egy mással definiált címet, de ezek szerint rosszul tudom.Miért üres a képernyő?
Hát ezt hardver nélkül meg nem mondom.
Itt jön elő az a technika, amit mindenkinek javasolni szoktam:
https://www.aliexpress.com/item/4000192339928.html
Kár, hogy az ára felment a csillagos egekbe, mert én még 2000 Ft alatt vettem, ma már háromszorosa. :-(Közben ebay-en találtam olcsóbbat is:
https://www.ebay.com/itm/393578549978
Tehát ilyenkor az ember a következőt teszi:
Ráakasztja ezt a szerkentyűt a használt lábakra, és megnézi, mi jön ki/megy be. Szépen grafikusan is, meg dekódolva is látszik. Aztán összehasonlítja a dokumentációban leírtakkal, hogy minek kellene, és akkor már tudja igazítani. -
Janos250
őstag
válasz
#70211840
#18129
üzenetére
Most volt egy kis időm, és ismét belenéztem ebbe az óra programba, ami le se fordult.
Lefordulni lefordul, de hardver hiányában persze kipróbálni nem tudom.
A tapasztalatok:A programban a legelején ki kell választani valamelyik stm32-t.
#define ARDUINO_ARCH_STM32F1
nem jó, mert a Arduino_STM32PAR8.h elején csak azARDUINO_ARCH_STM32 szerepel
ezért:#define ARDUINO_ARCH_STM32includolni kell a Arduino_STM32PAR8.h-t
#include <databus\Arduino_STM32PAR8.h>Az Arduino_STM32PAR8.h-ban szerepel a GPIO_TypeDef típus, de sehol nincs megadva. Meg kell adni!
typedef struct
{
__IO uint32_t CRL;
__IO uint32_t CRH;
__IO uint32_t IDR;
__IO uint32_t ODR;
__IO uint32_t BSRR;
__IO uint32_t BRR;
__IO uint32_t LCKR;
} GPIO_TypeDef;A .ino-ban:
#define ARDUINO_ARCH_STM32
#include <Arduino_GFX_Library.h>
#include <databus\Arduino_STM32PAR8.h>
#define GFX_BL DF_GFX_BL // default backlight pin, you may replace DF_GFX_BL to actual backlight pin
#if defined(DISPLAY_DEV_KIT)
Arduino_GFX *gfx = create_default_Arduino_GFX();
#else /* !defined(DISPLAY_DEV_KIT) */
;
GPIO_TypeDef * ENPORTOM = (GPIO_TypeDef *) 0x42010800 ;
//ENPORTOM=0x42010800 ez az STM32 A portja
Arduino_DataBus* bus = new Arduino_STM32PAR8(1, 2, 3, 4, ENPORTOM);
// csak probara 1, 2, 3, 4,-et irtam be
/*
Az egyes portok kezdőcímei:
#define PERIPH_BB_BASE ((uint32_t)0x42000000)
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)
#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00)
#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000)
#define GPIOD_BASE (APB2PERIPH_BASE + 0x1400)
#define GPIOE_BASE (APB2PERIPH_BASE + 0x1800)
#define GPIOF_BASE (APB2PERIPH_BASE + 0x1C00)
#define GPIOG_BASE (APB2PERIPH_BASE + 0x2000)
*/
Arduino_GFX *gfx = new Arduino_ILI9341(bus, DF_GFX_RST, 0 /* rotation */, false /* IPS */); -
Janos250
őstag
válasz
#70211840
#18160
üzenetére
Van, aki Eclipse alatt használja az Arduinot. Én egyszer - régen - próbáltam, de úgy láttam, hogy ahhoz legalább 4K, és méteres monitor kell, hogy az ember lássa is a dolgokat, ezért nem is foglalkoztam vele. A mostani meg - ha jól rémlik - csak win10 alatt megy, de amíg nem nagyon muszáj, nem akarok 8.1-ről átállni arra a túl kíváncsi verzióra.
Nekem nem okoz nagy gondot az Arduino IDE."Régóta Eclipse-t használok már és nagyon megszoktam"
"Még erősen kezdő vagyok"
A kettő együtt elég ritka társulás! :-) -
Janos250
őstag
válasz
#70211840
#18155
üzenetére
Akkor miért nem rakod össze csak C-t, és a hivatkozott libraryt használva Arduino IDE-ben.
Megtanulsz egy csomó dolgot STM32-re, ami máshol nem úgy lesz? Ezért jó ez az Arduino, hogy a C/C++ fölött egy egységes "szabványt" ad, hogy mit hogyan használj.
A C dolgok teljes egészében mennek Arduino alatt is. Nekem legalábbis az ESP32-n, de gondolom máson is, bár mást már jó ideje nem használtam.
Régebben, mikor STM32-t használtam, akkor még nem merült fel bennem ilyen kérdés, így nem próbáltam.
Én - ha épp olyan kedvem van - pl. simán használom a C fájl kezelését. Ha az alapokra kell leennem valamiért, az interneten (WiFi) keresztüli kezelést is C fájlként oldom meg.
Igaz, hogy a Cube-ban grafikusan látod, hogy mit hova, de az holt tudás lesz, ha másra akarsz áttérni. -
Janos250
őstag
válasz
#70211840
#18120
üzenetére
Hát, ez így nehéz lesz, ha én mondom, mert már rég használtam STM32-t, nem nagyon emlékszem már rá, és nincs is már nekem itthon, csak vidéken.
Így megint a már említett libák esete jön, hogy mikor fogynak el. :-)
Most már én is a G alapján nézem, persze annyi az előnyöm, hogy én tudom, hogy mit keressek, de kipróbálni nem tudom.Az STM32 Bluepill elvileg F103C8T6
A GPIO_TypeDef például itt van leírva:
http://stm32.kosyak.info/doc/stm32f10x_8h_source.html
/opt/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.htypedef struct
{
__IO uint32_t CRL;
__IO uint32_t CRH;
__IO uint32_t IDR;
__IO uint32_t ODR;
__IO uint32_t BSRR;
__IO uint32_t BRR;
__IO uint32_t LCKR;
} GPIO_TypeDef;A portok kezdő címei (szerintem):
port cím
A 0x40010800
B 0x40010C00
C 0x40011000
D 0x40011400
E 0x40011800Port configuration register low (GPIOx_CRL) (x=A..G) Address offset: 0x00
Port configuration register high (GPIOx_CRH) (x=A..G) Address offset: 0x04
Port input data register (GPIOx_IDR) (x=A..G) Address offset: 0x08h
Port output data register (GPIOx_ODR) (x=A..G) Address offset: 0x0C
Port bit set/reset register (GPIOx_BSRR) (x=A..G) Address offset: 0x10A sorrend egyezik a GPIO_TypeDef-ben lévő sorrenddel.
Így (talán) portnak a
0x40010800 címre definiált GPIO_TypeDef típus. -
Janos250
őstag
válasz
vegyszer
#18114
üzenetére
K tanácsért meg R-hez: R, döglenek a libáim, mit csináljak?
R: Hol legelteted? K: a domb északi oldalán. R:legeltesd a keletin.
Pár nap múlva: R, tovább döglenek, már csak x libám van. R: akkor legeltesd a ....
.
.
.
Végül: K: R, minden libám megdöglött.
R: Kár, mert még lenne pár öletem. -
Janos250
őstag
válasz
Janos250
#18113
üzenetére
Mellesleg az jutott eszembe, hogy ha párhuzamos porton használod a kijelzőt, akkor határozottan jó választás az STM32, mert ott egyetlen utasítással tudod írni a 8 bites portra az egész bájtot:
*((volatile uint32_t *)0xaaaaaaaa) = X;
Az aaa a port címe, amit így fejből nem tudok, de az STM32-n van ilyen lehetőség, X meg amit írni akarsz rá (8 bites byte)
-
Janos250
őstag
válasz
#70211840
#18112
üzenetére
Most már értem a problémát. :-)
Én kipróbálni nem tudom, mert nincs ilyen buszos LCD-m, ezért csak ötletelek. (amíg lesznek még libák, mint a viccben)
A HelloWorld.ino
https://github.com/moononournation/Arduino_GFX/blob/master/examples/HelloWorld/HelloWorld.inotartalmaz ilyet:
/* More data bus class: https://github.com/moononournation/Arduino_GFX/wiki/Data-Bus-Class */
Arduino_DataBus *bus = create_default_Arduino_DataBus();A linken van párhuzamos busz is:
"
This is very slow but it works.RD pin is optional (Arduino_GFX not yet have any features read from display), but you still need pull-up RD pin if not connect to a GPIO
Arduino_DataBus *bus = new Arduino_SWPAR8(TFT_DC, TFT_CS, 25 /* WR */, 32 /* RD */, 23 / ....... stb. "
Én ezzel próbálnám ki. -
Janos250
őstag
válasz
#70211840
#18110
üzenetére
Én valahogy nagyon nem vagyok képben.
Az Arduino alatt van két könyvtár:
GFX Library for Arduino
és a másik:
TFT_22_ILI9225
Miért nem ezeket használod, miért akarsz mindenféle, kontrollerenként speciális drivert tartalmazó könyvtárat használni? Ezeket kipróbáltad, és nem futnak, nem felelnek meg az igényeidnek, vagy valami egyéb - általam ismeretlen - oka van?
Belenéztem az egyik linkelt librarybe, amire hivatkoztál. Az egy csomó különböző kontrollerre megadja a lábak kezelését.
Minek?
Az Arduinoban pont az a jó, hogy nem kell foglalkoznunk azzal, hogy az egyes lábakat hogyan kezeli a rendszer. Oldja meg, az ő gondja, nem a miénk.
Ha leírom azt, hogy digitalWrite() , nem érdekel, hogy az Arduino azt azon a kontrolleren, amit kijelöltem a Boards Manageren, hogyan oldja meg.
Beírtad az Arduino IDE File/Preferences/Additional Boards Manager URLs mezőbe, hogy:
http://dan.drown.org/stm32duino/package_STM32duino_index.json
Utána a Boards Manageren installáltad az STM32F1xx/GD32F1xx boards kezelőt?
Utána kiválasztottad a (talán) STM32F103C boardot?File/examples/TFT_22_ILI9225/Basic Demo
Ez nem fordul le nálad, vagy nem jól kezeli, vagy a Te elvárásaidnak nem felel meg?Megannyi kérdés, amire ha nem tudjuk a választ, nem tudunk (én legalábbis így gondolom) tovább lökdösni a megfejtés felé.
Bocs, hogy értetlenkedek, de ezek számomra tényleg nem világosak az eddig leírtakból. -
Janos250
őstag
válasz
Gergosz2
#18066
üzenetére
Mindenkinek mások a szempontjai, ezért ajánlani nemigen lehet. Én utoljára ezeket rendeltem:
https://www.aliexpress.com/item/1005004268911484.html
Szállítással együtt a 2 db. 3730 Ft volt, és nagyjából két héten belül hozta a futár.
(Persze van olyan Alis más rendelésem is, amire már majdnem két hónapja várok)
Csináltattam az Easyedán eléggé univerzális panelt, amin elég sok minden rajta van, és olcsó volt, általában ezeket a kész modulokat dugom bele akkor is, ha a panelon lévő dolgok zöme éppen nem kell az adott dologra. Sokkal kényelmesebb, mint fehér panelon dugdosni.
Ha akarod, hogy két mag legyen benne, akkor ne az - alig olcsóbb - S verziót vedd!
Mivel minimális az árkülönbség, szerintem nem érdemes az S-et venni. -
Janos250
őstag
Majdnem beleszaladtam ismét, szerencsére most már utánanéztem a neten:

kinaiwebaruhaz pont hu/
azsiacenter pont com/
mikroelektronik pont hu/
aliexpress pont hu/Majdnem rendeltem a mikroelektroniktól, de szerencsére írják, hogy soha nem érkezik meg a megrendelt, kifizetett áru, és a pénznek is annyi. Korábban az azsiacenterrel már buktam pár ezret, mert azt hittem, hogy az ilyen nevű magyar társaság.

Vajon hányan dőlnek be az aliexpress pont hu -nak?

-
Janos250
őstag
válasz
Tomika86
#17942
üzenetére
Ez csak egy elképzelésem, nem biztos, hogy így van, csak a névből próbálok következtetni.
Először is:
Mitől lesz http szabványú egy elküldött karaktersorozat? (A http mindig karakteres!)
Attól, hogy legelőször egy http headert küld.
Például:HTTP/1.1 200 OK
Content-type:text/html
Connection: closeUtána jönnek az egyebek, azaz a tényleges html kód.
Elsőként a html header, pl.:<!DOCTYPE html>
<html lang = hu >
<head>
<meta charset="UTF-8">
<title>minta WEB szerver</title>
</head>Utána a html body, pl.:
<body>
Ide jön a lap tényleges html kódja
</body></html>Ha a sima WiFiServer osztályt használjuk, akkor saját magunknak el kell küldenünk a http headert is. Aztán van pár féle webserver, httpserver, miegymás osztály, ami elvileg elsőként el kell küldje automatikusan a http headert, ezért elég már csak a tényleges html kódot küldeni. html header + body
Én régebben már számos alkalommal belezavarodtam abba, hogy a különböző emberkék által elkészített webserverek másként, és másként működtek, ezért én leálltam a használatukról, hanem csak a WiFiServer osztályt használom, és saját magam elküldöm a http headert is.Mivel te a WebServer osztály példányát hozod létre,
WebServer nextion_update_server(100);ezért én úgy gondolom, hogy ennek automatikusan el kellene küldeni a http headert is.
De mint írtam, ezek csak elképzelések.
-
-
Janos250
őstag
válasz
Tomika86
#17919
üzenetére
Én be szoktam rakni a programba, mégpedig általában "R" típusú stringgel, mert akkor a sorváltás, szóköz, stb. is jól látszik.
Itt egy minta az R stringre:
https://prohardver.hu/tema/arduino/hsz_17542-17542.html
Ha kész WEBszervert használsz, akkor persze csak a htmlHeadertől kell.
És ami a loopban a mintában van, az neked nem kell, egész más lesz. -
Janos250
őstag
válasz
Tomika86
#17890
üzenetére
Hát, én külön task-be tenném a két külön feladatot, ami globális változókon keresztül tartaná egymással a kapcsolatot. Ha nincs tennivalója az adott task-nek, azonnal adja is tovább a vezérlést, így nem foglal le lényeges időt. Ha mellesleg még másik magra is teszed, akkor meg végképp nem!
Ha az ESP32 mellett döntöttél, érdemes megtanulni, amit nyújt a két mag, és a C++11 ! Vagy még a FreeRTOS, ha sok az időd, de ennek zöme a C++ -al megoldható. -
Janos250
őstag
Már megint bajban vagyok ezzel az Arduino könyvtárakkal :-(
Ha ezt így mindenestül beírom:#include <C:\Arduino\arduino-1.8.19Proba01\portable\sketchbook\libraries\vfs\include\esp_vfs.h>
Akkor jó.
De nem akarom mindig a teljes elérési utat beírni. Mit írjak be, hogy megtalálja a vfs könyvtárat, annak az include könyvtárában az esp_vfs.h fájlt? -
Janos250
őstag
válasz
vegyszer
#17800
üzenetére
Írtam választ, de - úgy látszik - elfelejtettem elküldeni, mert nem látom.
Most röviden:
https://prohardver.hu/tema/arduino/hsz_17346-17346.htmlHa nem boldogulsz, írj, és segítek.
-
Janos250
őstag
válasz
autrcsab
#17796
üzenetére
Nekem a fő gondjaim a következők voltak, ami miatt végül el is akadt egy időre a dolog.
A bázis állomás.
Az egyik videóban mutatja is, hogy 8 cm a visszatérési pontosság, vagyis aznap pontosan tartja magát egy adott útvonalhoz, de másnapra ugyanez az útvonal már 8 cm-el arrébb lesz.
Ezért én úgy gondolom, hogy muszáj saját bázis állomást üzemeltetni. Ha elég közel van a célhoz - pl. egy fűnyírónál ez simán megoldható - akár WiFi-vel is mehet, nem kell internet se. Én jelenleg a fűnyíróm akkujával bajlódok, még a kipróbálásig sem jutottam, de valószínűleg nem is az AgOpenGPS-t fogom használni, a Windows igénye miatt. Pedig az tényleg nagyon sok mindent tud.
Elérhető ugyan Magyarországon hivatalos, pontos RTK korrekció, de elég drága, és nem tudja mind a négy rendszert.
Nem is mertem használni, mert féltem, hogy ha valamit elrontok, vagy feltörik, akkor hó végén százezres, vagy milliós használati díjat fizetek, mert nincs náluk "prepaid" lehetőség, hogy csak a fizetett korlátig lehessen elmenni.
A bázis állomást egy ISMERT koordinátájú pontra kell tenni. Ilyet úgy tudunk szerezni, hogy vannak nyilvánosan elérhető pontok, amiknek megtudható (persze pénzért) a pontos koordinátái. Ha a bázisunkat ideiglenesen erre a pontra helyezzük, akkor pontosan be tudunk mérni egy saját bázis helyet a roverrel. A GPS-EOV konverzió elvégezhető, ha - szintén némi pénzért - regisztráltunk.
Én úgy gondolom, célszerűbb EOV alapon dolgozni, mert az derékszögű, metrikus koordináta-rendszer. Már csak azért is, mert itt a következő probléma:
Honnan veszed a föld táblád koordinátáit? Én erre a Földhivataltól - szintén pénzért - megszerezhető helyrajzot tartom célszerűnek, ami némi tornamutatvány után, már használható adatokat ad.
Én másik típusú GPS chipet használok, nem elvi okokból, hanem így alakult az idők folyamán.
Mindenképpen célszerű olyan chipet használni, ami a nálunk elérhető mind a 4 hold rendszert (amerikai, orosz, kínai, EU) tudja használni, és mindkét freki tartományt.
Ezek az én tapasztalataim, de persze mindenki a saját bejárt útját választja, én is. -
Janos250
őstag
válasz
Undoroid
#17788
üzenetére
"Még akkor is, ha kendácsolt! "
Nem annyira kendácsolt módszer. Például az autó ablaküveg mozgató is így működik. Nem azt figyeli, hogy felment-e teljesen, hanem, hogy elakadt-e. Ezzel az is megoldódik, hogy ha a gyerek keze ottmaradt, attól is megszoruljon, és megálljon. -
Janos250
őstag
válasz
gordonfreemN
#17756
üzenetére
Én a hasonló dolgokat úgy oldottam meg, hogy olyan kész mikrokontrolleres panelt tervezek rá az én panelomra, amin minden szükséges dolog rajta van. Mivel én csak ESP32-t használok praktikus ok miatt, nem teszek fel panel képet, de korábban párat már tettem fel. Ha megnézzük az Easyedán lévő megosztott panelokat, többnyire ott sincsenek a kontrollerek egyedileg ráforrasztva, hanem kész panel van beleillesztve a user panelbe.
-
Janos250
őstag
válasz
Undoroid
#17768
üzenetére
Én Aryes javaslata mellett vagyok! Hirtelen jött áramszünet, stb. miatt bármikor előfordulhat, hogy ismeretlen lesz a helyzete. A végálláskapcsolót én mindenképpen betenném. Vagy egy egyszerű mikrokapcsolót, ami például a 3D nyomtatóknál is prímán működik, vagy egy szintén könnyen kezelhető opto kaput. Persze lehet nélküle is megoldani, ha nagyon akarod, de akkor, ha valami miatt elvész a szinkron, bajlódni kell vele.
-
Janos250
őstag
válasz
Dißnäëß
#17712
üzenetére
Ha profi megoldást akarsz, akkor persze még a napot is dimmelhetővé kell tenned, de kérdés, akarsz-e ilyen profi, méregdrága megoldást, vagy maradsz az egyszerűbb, olcsóbb, de kevesebbet tudó megoldásnál. Ez utóbbi az Arduino! :-) Ezért (is) szeretjük! :-) Nagyon sokszor elegendő az, amit az Arduino tud! Én ennél maradnék.
Csatlakozásokra én azt csinálnám, hogy a szenzorokhoz valami kis panelka, ami vagy vezetéken, vagy WiFin kapcsolódik össze. A router hibája kiküszöbölhető az ESPNOW megoldással, mert ott nem igazi WiFi kapcsolat van, csak a WiFi hardverrel az egyes egységek MAC címmel tartják egymással a kapcsolatot, nincs pl. IP cím. (Ezt is csak elméletből tudom, még jutottam odáig, hogy kipróbáljam.) Ennél a megoldásnál az Espressif elég kevés információt tesz közzé, nem nagyon lehet vele variálni, csak azt lehet, és úgy, ahogy ők leírták. Például az ESP32-nél az egyes perifériakezelések regiszterei, és azok használata is elég jól le van írva, a WiFinél még azt sem tudjuk, melyik címtartományban van. -
Janos250
őstag
válasz
Undoroid
#17706
üzenetére
Szia!
Megnéztem, töltöttem le ilyen fájlt, de sokra nem jutottam.
Esetleg az Alin a panel képe alulról?
https://www.aliexpress.com/item/1005002740079191.html
vagy felülről?
https://www.aliexpress.com/item/4001276857056.htmlVagy erről a képről:
https://sensorkit.joy-it.net/de/sensors/ky-023Esetleg erről a képről, itt vannak mértek, lehetne arányosítani.
https://lastminuteengineers.com/joystick-interfacing-arduino-processing/Aztán persze az is elgondolkodtató, hogy ha VÁM-mal, ÁFA-val, szállítással 500 forintért bejön Kínából, érdemes-e sajátot csinálni.
-
Janos250
őstag
válasz
fpeter84
#17678
üzenetére
Van egy "tanító" oldal, ahol kipróbálhatod, mi mit csinál. Itt ugyan printf van, de ha sprintf-et használsz, bármire kiírathatod.
https://en.cppreference.com/w/cpp/io/c/fprintf
Az Example résznél van olyan, hogy "Run", és láthatod az eredményt. Hogy teljes legyen az élvezet, bármit javíthatsz is a programkódban, a Run hatására a megváltoztatott program fog futni!
Astd::printf("Rounding:\t%f %.0f %.32f\n", 1.5, 1.5, 1.3);
jól mutatja, hogy mit csinál. Ehelyett ott az oldalon átírogathatod próbára a Te tetszőleges adataiddal, és látod, mi az eredmény.Ezt az oldalt egyébként másnak is ajánlom, aki nem profi a témában!
-
Janos250
őstag
válasz
greekpietro
#17647
üzenetére
Lehet, de minek!
Ehhez az Arduino main.c programjába kell belenyúlnod, de értelmetlen, mert ugyanott vagy - bonyolultabban - mint amit ekkold javasolt, azt kövesd! -
Janos250
őstag
Nem tudom mennyire ismert, én most vettem csak észre, és egész jó leírás az ESP32-Arduino témában.
https://docs.espressif.com/_/downloads/arduino-esp32/en/latest/pdf/ -
Janos250
őstag
válasz
razorbenke92
#17622
üzenetére
Annyit emlegettétek ezt a PROMICROt, hogy megnéztem. Tényleg jó

-
Janos250
őstag
"Melyik Ardunio-t vegyem meg"
A legolcsóbbat, ami tudja. Aryes hozzászólása alapján megnéztem, tényleg benne van a könyvtárban a HID kezelés. Ezt se tudtam eddig.
"Elég csak így a fent említett módon"
Attól függ, hogyan olvasod be. Ha adott számú byte-ot, akkor nem kell végjel, de olvashatod végjellel is. Ahogy számodra szimpatikusabb. -
Janos250
őstag
Ezért írtam, hogy "Ha konvertálni kell, arra bármelyik "Arduino" megfelel, a legolcsóbb is."
De megírhatod assemblyben is, valami tinyre![;]](//cdn.rios.hu/dl/s/v1.gif)
Én mindenre ESP32-t használok, nem keverem :-)
Minden más a padláson, vidéken. :-)
Egyébként soha nem gyártottam HID-et, lehet sokkal egyszerűbben is megoldható, hátha van valakinek ötlete.
BT?
Na, én azt ne ismerem :-(
Ha ismered, írd le neki.
"Arduino pro micro" Hogy lesz belőle USB HID? -
Janos250
őstag
Senki ne rendeljen az
azsiacenter.com
kinaiwebaruhaz.hu
mikroelektronik.hu
aliexpressz.huoldalakról!
"Hires és hírhedt magyar csalók (Banszki Szilvia es Stalter Balazs)" (Angliában) A különféle csalások széles palettáját használják, ez csak egy picinyke, a WEB áruház.
https://groups.google.com/g/elektro-lista/c/GraS3sRrkVk?pli=1Semmi közük a magyar Ázsiacenter áruházhoz!
-
Janos250
őstag
válasz
vegyszer
#17612
üzenetére
Jobb későn, mint soha.
Most utána néztem Google segítségével:"Javaslom mindenki tegyen feljelentést, nem sok idő, csak e-papíron be kell küldeni a Rendőrségnek. Az ilyen suttyó bűnözők ne ússzák már meg... Ez mind ugyanaz a bűnszervezet oldala:
kinaiwebaruhaz.hu
mikroelektronik.hu
azsiacenter.com
aliexpressz.hu
Viszont az Ázisa Center, mint valós bevásárló központ nem ugyanaz. Ők is hadban állnak velük, mert visszaélnek a védjegyükkel/nevükkel:"
https://www.gyakorikerdesek.hu/uzlet-es-penzugyek__egyeb-kerdesek__10628184-azsiacentercom-velemenyek -
Janos250
őstag
Az Ázsiacenteres ESP32 rendelés:
Május 10-én érkezett az email:******** referenciaszámú rendelésed kiszállításra átadtuk. Szállítási idő 7-50 munkanap a posta függvényében.
Írtam levelet, hogy mikor kapom meg:
Kedves Vásárló,
Levelét rendszerünk iktatta, Munkatársaink 1-9 munkanapon belül válaszolni fognak.
Szállítási idő 7-75 munkanap a nemzetközi posta függvényében.
Előfordulhat, hogy több termék rendelése esetén különböző raktárakból postázzuk, így több levélben érkezhetnek! A szállítási időt a szállításra adástól kell számolni.
Szíves türelmét kérjük.
Üdvözlettel
AzsiacenterHát............... !
-
Janos250
őstag
Ja, és van hozzá library:
https://www.arduino.cc/reference/en/libraries/ch9328-keyboard/ -
Janos250
őstag
Mindenki más típust fog javasolni, én (természetesen
) az ESP32-t preferálom, bár ilyen célra még soha nem használtam.
Egyébként kaphatók USD HID panelkák, amik ezt csinálják, de még soha nem próbáltam.
http://wch-ic.com/products/CH9328.html
https://www.aliexpress.com/item/4000262510300.html
https://www.aliexpress.com/item/32894865422.html
Biztosan meg lehet persze szoftverből is oldani, hátha valaki azt is ismeri.Ha konvertálni kell, arra bármelyik "Arduino" megfelel, a legolcsóbb is.
-
Janos250
őstag
válasz
Tomika86
#17602
üzenetére
Az egyik legbiztosabb védelem, ha van egy fizikailag létező kapcsoló, amit csak akkor kapcsolsz be, ha be akarsz rá lépni, egyébként meg nem fogad el belépést. Az is elég jó védelem, ha csak adott MAC című állomásról fogad el belépést. Igaz, ezt minden egyes panelnál, és minden egyes telefon cserénél be kell állítani.
Az "ugró kód" jellegű védelem is hasznos lehet, de ez bonyolultabb, mert hadvert igényel. Esetleg egy SIM kártyás panelka, ami csak adott telefonszámról érkező SMS-re kapcsolja be a belépés engedélyezést, de ezek már mind macera. -
Janos250
őstag
Srácok!
Próbálta már valaki ezt a WEB áruházat?
megbízható, vagy átverés?
link -
Janos250
őstag
válasz
polgcsabi
#17563
üzenetére
PL. a "digitalWrite(ledPin10, HIGH);" után írasd ki a buffer első mondjuk 50, vagy valahány tagját, és egyből látod, hol kezdődik benne az, ami neked kell.
Utána már ezeket fel tudod dolgozni. Pl. Aryes által javasolttal (amire azt mondtam, jéééé mindig tanul az ember), vagy bármi más módon. -
Janos250
őstag
válasz
polgcsabi
#17551
üzenetére
Ezt az ethernet csatit nem ismerem, nem is tudom kipróbálni, nem akarok hülyeséget írni.
Ha esetleg ESP32-n tennéd, akkor pontos választ tudnék adni.
A megoldás lényege:
A WEB szerverek - már amit én ismerek - megadják neked egy karakter tömbben, amit a 192.168.1.139/ után írtál, és úgy kezeled, ahogy akarod, ez már csak kézügyesség kérdése. De csinálhatsz űrlapot, vagy valami hasonló bevitelt is. -
Janos250
őstag
válasz
polgcsabi
#17540
üzenetére
De ahogy elnézem, ezt is hasonlóan lehet írni, olvasni:
https://how2electronics.com/interface-enc28j60-ethernet-module-with-arduino/
-
Janos250
őstag
válasz
polgcsabi
#17540
üzenetére
Ez meg egy minta WEB szerverre, eggyel magasabb szinten:
#include <iostream>
#include <string>
#include <WiFi.h>
#include <SPI.h>
using namespace std;
const char* ssid = "*********";
const char* password = "*********";
IPAddress ip(192, 168, 0, 30);
IPAddress dns(192, 168, 0, 1);
IPAddress gateway(192, 168, 0, 1);
IPAddress subnet(255, 255, 0, 0);
IPAddress primaryDNS(8, 8, 8, 8); //optional
IPAddress secondaryDNS(8, 8, 4, 4); //optional
WiFiServer myServer(80);
const char httpHeader[] PROGMEM = R"=====(
HTTP/1.1 200 OK
Content-type:text/html
Connection: close
)=====";
char htmlHeader[] PROGMEM = R"=====(
<!DOCTYPE html>
<html lang = hu >
<head>
<meta charset="UTF-8">
<title>minta WEB szerver</title>
</head>
)=====";
char body[] PROGMEM = R"=====(
<body>
Ez a kiirando
</body></html>
)=====";
void setup(void) {
Serial.begin(115200);
delay(2000);
WiFi.begin(ssid, password);
if(!WiFi.config(ip, gateway, subnet, dns, secondaryDNS)) {
Serial.println("STA Failed to configure");
}
Serial.print("Connecting to ");
Serial.println(ssid);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Print local IP address and start web server
Serial.println("");
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());// this will display the Ip address of the Pi which should be entered into your browser
myServer.begin();
Serial.println("setup lefutott");
} ; // end setup
void loop(void) {
string header = "";
uint16_t karakterszam = 0 ;
unsigned long previousTime = 0;
const long timeoutTime = 1000; //in milliseconds (example: 2000ms = 2s)
IPAddress tavoliIP ; // = uint8_t tavoliIP[4]
//https://randomnerdtutorials.com/esp32-web-server-arduino-ide/
WiFiClient client = myServer.available(); // Listen for incoming clients
if (client) {
tavoliIP = client.remoteIP() ;
printf("tavoli IP: %3d.%3d.%3d.%3d\n",tavoliIP[0],
tavoliIP[1],tavoliIP[2],tavoliIP[3]);
previousTime = millis();
// Serial.println();
// printf("\nNew Client\n");
String currentLine = "";
while (!client.available()){
if ( (millis()- previousTime) > 100 ) {
tavoliIP = client.remoteIP() ;
Serial.println(tavoliIP) ;
client.flush() ;
client.stop() ;
printf ("megszakitva\n");
return;
} ; // if ( (millis()- previousTime) > 100 )
} ; // while (!client.available())
while (client.connected() &&
( (millis() - previousTime) <= timeoutTime) ) {
if (client.available()) {
karakterszam++ ;
char c = client.read();
Serial.write(c);
header += c;
if (c == '\n') {
if (currentLine.length() == 0) {
break;
// printf ("ures sor\n");
}
else {
currentLine = "";
// printf ("uj sor\n");
}
} else
if (c != '\r') {
currentLine += c;
} ; // if (c != '\r')
} ; // if (client.available())
} ; // while (client.connected()
if (karakterszam == 0){
client.flush() ;
client.stop() ;
return;
} ; // if (karakterszam == 0)
// Serial.println(header.c_str());
client.println(httpHeader);
client.println(htmlHeader);
client.println(body);
client.flush();
client.stop(); // Close the connection
while (client.available()){
delay(1) ;
}; // while (client.connected())
} ; // if (client)
delay(50);
} ; // end loopAzért WEB, mert figyeli, hogy mikor jön közvetlenül egymás után két sorváltás, mert a http szerint az jelzi az üzenet végét.
Természetesen bármilyen beérkező szöveget figyelhetsz, és bármit válaszolhatsz rá, nem kell a headereket küldeni, ha nem WEB lap, amit elküldesz.Ezt használtam fel:
https://randomnerdtutorials.com/esp32-web-server-arduino-ide/ -
Janos250
őstag
válasz
polgcsabi
#17540
üzenetére
Például:
https://prohardver.hu/tema/arduino/hsz_16434-16434.htmlAz int socket_descriptor-tól a FILE* -ig változatlanul beírhatod, persze a 216.58.208.110 helyett a saját szerver címét. De még vannak más lehetőségek is.
Új hozzászólás Aktív témák
- Dell Precision 7920 Tower Dual Xeon Gold 6132 (28C/56T) 128GB DDR4 2666MHz Workstation
- Bomba ár! HP ProBook 450 G8 - i5-1135G7 I 8GB I 256SSD I HDMI I 15,6" FHD I Cam I W11 I Gar
- Önerő nélkül is elvihető! Részletfizetés. 27 % Áfás számlával Dell Alienware QD-OLED gamer monitor
- Hibátlan, megkímélt! II Lenovo ThinkPad T540p II i7-4800MQ I GT 730M I 8GB I 240 GB I15,6" FHD
- Samsung Galaxy S24 FE 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest

![;]](http://cdn.rios.hu/dl/s/v1.gif)





ekkold
