-
Fototrend
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
-
dzz
aktív tag
válasz Janos250 #17351 üzenetére
Mindkettő jó lehet, illetve mind a kettővel futok pár kört még Arduinoval elég sok dolgot megoldottam már, de GUI-t QT4-el (annó) más volt programozni Amit most szeretnék az teljesen más lesz/lehet. A hw ami itt van előttem, az adott, ezt szeretném mindenek előtt megismerni, konkrét célom van vele. Mobilneten szeretnék pozícióadatokat küldeni a saját szerveremre, erre van kitalálva. A SIM7000-et AT parancsokkal lehet késztetésre bírni, amint ezek eredménye megvan, van ideje a procinak mással is foglalkozni. Ha eddig eljutok, akkor esetleg még egy CAN buszos olvasást is megpróbálnék. A WiFi szerintem sosem lesz használva ebben a projektben, a ble talán egy soros konzolként, hogy ne kelljen a motorháztetőt se felnyitni ha amúgy működik a készülék. Ezek jó lenne ha mennének multiban, szóval a freertos gondolom kelleni fog. Hogy mindezt az arduinoban vagy az idf-ben lehet kényelmesebben megoldani, azt még nem tudom, ezért kell ismerkednem mind a kettővel. Az eddigi pc-s ismereteimben nem kellett a multitaskkal foglalkoznom, az arduinoban meg még annyira sem.
ERROR: '--failure' is not an option. Aborting... ---goo.gl/BFtD86
-
Janos250
őstag
Ígértem leegyszerűsített ESP32 WEB szerver mintát.
Nem tudom aktuális-e még, itt van egy végletekig leegyszerűsített változat:// felhasznalva:
// https://lastminuteengineers.com/creating-esp32-web-server-arduino-ide/
// reszletesebben lsd ott
#include <WiFi.h>
#include <WebServer.h>
using namespace std;
const char* ssid = "********";
const char* password = "********";
IPAddress ip(192, 168, 0, 30); // ez lesz az ESP32 IP cime
IPAddress dns(192, 168, 0, 1); // ehhez az IP-ju WiFi routerhez fog kapcsolodni
IPAddress gateway(192, 168, 0, 1); // a router a gateway is
IPAddress subnet(255, 255, 0, 0); // a Wifi router maskja. ha nem tudod, akkor ez tobbnyire jo
IPAddress primaryDNS(8, 8, 8, 8); //optional lehet a router is
IPAddress secondaryDNS(8, 8, 4, 4); //optional
WebServer server(80);
const char htmlHeader[] = R"=====(
<!DOCTYPE html>
<html lang = hu >
<head>
<meta charset="UTF-8">
<title>minta WEB szerver</title>
</head>
)=====";
void serverValaszolHTMLtexttel() {
String htmlstring = htmlHeader ; // csak Arduino String (nagybetus) jo, string (C++ kisbetus string) nem!
htmlstring += "<body>" ;
htmlstring += "\n Hello, World!\n <br>\n" ;
htmlstring += " ide jonnek a feldat szerinti dolgok\n <br>\n" ;
//egy minta: https://lastminuteengineers.com/creating-esp32-web-server-arduino-ide/
htmlstring += "</body>\n</html>" ;
server.send(200, "text/html", htmlstring);
} ;
void handle_NotFound(){
server.send(404, "text/plain", "Not found");
} ;
void setup(void) {
//************************************
// Ez a szokasos
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(ESP32): ");
Serial.println(WiFi.localIP());// this will display the Ip address of the Pi which should be entered into your browser
//*************************************************
// mit kuldjon, ha egy client bejelentkezik
server.on("/", serverValaszolHTMLtexttel);
// mit kuldjon, ha hibas az URL
server.onNotFound(handle_NotFound);
server.begin();
Serial.println("HTTP server started");
Serial.print ("ezt ird be a bongeszo cimsoraba:http://");
Serial.println(WiFi.localIP()) ;
} ; // end setup
void loop(void) {
server.handleClient();
delay(50);
} ; // end loopAz amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Minden lehetséges, de én nem látok benne hibát. Persze lehet, hogy én nem látom, de nekem úgy tűnik, hogy megfelel a
R "delimiter( raw_characters )delimiter"
szintaxisnak.
Hol nem stimmel? Ugye nem az van, hogy nem vetted észre, hogy ez R string?Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
dzz
aktív tag
válasz Janos250 #17355 üzenetére
Köszönöm, ezt majd kipróbálom, bár nem tervezek webszervert használni, inkább kliensként csatlakozni egy webszerverhez vagy sql szerverhez. Illetve esetleg egy másik módban, talán amikor az egység nincs mozgásban, oda akár wifin keresztül is jó lehet... ezt még át kell gondolnom.
ERROR: '--failure' is not an option. Aborting... ---goo.gl/BFtD86
-
Janos250
őstag
A C++11 hozta be a raw string (R string) kezelését, és az ESP32 tudja.
A hagyományos stringnél csak macerásan oldható meg pár dolog, pl:\n
a sorváltás, és nem azt látod a programszövegben, ami majd ténylegesen lesz.
A raw string esetén nem kell escape-elni, hanem nyugodtan írhatod bele a sorváltást, tabulátort, miegymást, pontosan azt látod a program szövegében, ahogy az majd megjelenik például kinyomtatva. Én ezért szeretem használni.[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
ekkold
Topikgazda
Arduino-ban lehet olyat csinálni, hogy az adott string konstanst a Progmem-be teszem, de úgy, hogy azt is meg akarom adni, hogy milyen címen legyen tárolva ?
-
Janos250
őstag
válasz ekkold #17364 üzenetére
Nem tudok róla, hogy meg lehetne adni a címet. Igazából azt se tudom, hogy a sima konstansokat hova teszi, a programszövegbe-e.
Én néha így adok meg, pl. az említettet:const char httpHeader[] PROGMEM = R"=====(
de igazából nem tudom, hogy van-e jelentősége.
Még soha nem néztem meg, mi a címe akkor, ha van PROGMEM, vagy ha nincs.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Ezért jó a fórum: tanulunk egymástól.
Hogy csak a legutóbbiakat említsem, én például nem tudnám, mi az, és hogy hogyan használható értelmesen a websocket, vagy a span.
A websocketról azt hittem, hogy az internet socketnak valami úrhatnám megnevezése :-)Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Az a baj, hogy nem tudsz címet, hogy hova tedd. Ha tudod a címet, közvetlen címzéssel bárhova lerakhatsz bármit, de honnan tudod, hogy hova? A regisztereit az ESP32-nek például közvetlen címzéssel érem el.
Assemblyt én az ESP32-n még csak egyetlen dologra használtam:
Van egy regiszter az ESP32-ben, ami a 80 Mhz-es ciklusokat számolja, ezzel elég pontos időzítést lehet csinálni. Viszont ez a regiszter cím olvasással nem érhető el, csak van egy assembly utasítás, ami ezt kiolvassa. Elég hülye ötlet, de így van.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Tomika86
senior tag
Sziasztok!
Mi a különbség ha 4,7kohm vagy 10kohm fel-lehúzó ellenállásokat használok? -
And
veterán
válasz Tomika86 #17370 üzenetére
Értelemszerűen változik tőle a fel- vagy lehúzóáram. Ezen túl a következőket befolyásolja: bemeneti impedancia ill. áram (ha bemenetet van), kimeneti terhelőáram (ha pl. OC / OD-kimeneten). Alapértelmezett szinttől és az elhúzás irányától függően a nyugalmi fogyasztásra is hatással van, ami telepes / akkus táplálásnál lehet érdekes. A fel- vagy lehúzó értéke általában kompromisszum eredménye: az ellenállás nem lehet túl alacsony a nagy áramigény miatt, de adott körben túl magas sem, mert akkor a feladatát - határozott szintre húzás - sem feltétlenül látja el.
-
And
veterán
válasz Tomika86 #17372 üzenetére
Látatlanban, a konkrét áramköri részletek ismerete nélkül nehéz meghatározni a 'jó' értéket, de a korábbiak értelmében a tartomány elég tág lehet, inkább csak a nagyságrendet kell belőni. Például egy nagy impedanciás uC bemenetére kötött nyomógomb fel/lehúzója széles ellenállás-tartományban rendben lesz. Ilyen helyen a rajz szerinti 4,7 kΩ simán helyettesíthető 10 kΩ-mal. De mondjuk egy I2C-busz felhúzóinál már necces lehet ekkora eltérés (relatív nagy busztávolság és sebesség esetén különösen).
-
ekkold
Topikgazda
A forrasztóállomásom szoftverét átírtam úgy, hogy a külső eeprom helyett a flash-be mentse a beállításait (így nem kell hozzá az eeprom a nyákra). Most ez úgy megy, hogy a 64k flash végére írom ki az adatokat (a program sokkal rövidebb). Viszont ha előre le tudnám foglalni a szoftverben a flash egy adott területét, akkor már fordításkor bekerülhetnének oda a default értékek, és később a flash-nek ezt a területét a programban lehetne írni is. Ehhez viszont az kellene hogy 1024-el oszható címen legyen a változó, mert csak egyben, 1k-s lapokat lehet törölni a flashben. Igazából enélkül is jól működik a program, de ügyesebb lett volna így.
-
And
veterán
válasz Tomika86 #17374 üzenetére
Már csak az a kérdés marad, hogy ezekhez ilyen célra minek egyáltalán bármilyen külső ellenállás? Az ESP32 adatlapja szerint a portok nagyobbik része fel- és lehúzásra is programozható (45 / 45 kΩ), az MCP23..-as sorozatnál pedig mind a 8 vagy 16 porton támogatott a belső pull-up (100 kΩ), ha az adatirány inputnak van állítva..
-
ekkold
Topikgazda
Az arduino irányából nézve nem olyan nagy a különbség. Valóban van néhány specifikus dolog, de ezeken kívül a programok felépítése kb. ugyanolyan. Nekem az tetszett meg az STM32-ben, hogy egy sima arduinohoz képest nagyon gyors, az ára meg kb. ugyanaz (kicsit még olcsóbb is volt, amikor vettem). Nem csak az órajel, és a 32bit miatt gyorsabb, hanem hardveresen tud szorozni, és osztani, ami gyakran csak egyetlen órajelet igényel (14 nanosec!), (az osztáshoz időnként több kell). Mindez együtt nagyon gyorssá teszi.
-
-
vargalex
félisten
válasz Janos250 #17385 üzenetére
Az jogos is lenne, de ez a forráskód részlet:
String htmlstring = htmlHeader ; // csak Arduino String (nagybetus) jo, string (C++ kisbetus string) nem!
htmlstring += "<body>" ;
htmlstring += "\n Hello, World!\n <br>\n" ;
htmlstring += " ide jonnek a feldat szerinti dolgok\n <br>\n" ;
//egy minta: https://lastminuteengineers.com/creating-esp32-web-server-arduino-ide/
htmlstring += "</body>\n</html>" ;
semmivel nem tagoltabb, mint ez:
String htmlstring = htmlHeader ; // csak Arduino String (nagybetus) jo, string (C++ kisbetus string) nem!
htmlstring += "<body>" ;
htmlstring += "Hello, World!<br>" ;
htmlstring += " ide jonnek a feldat szerinti dolgok<br>" ;
//egy minta: https://lastminuteengineers.com/creating-esp32-web-server-arduino-ide/
htmlstring += "</body></html>" ;
Alex
-
And
veterán
Ez egyébként igaz (ipari PLC-k sem szokták óriási impedanciával fogadni a DI-jeleket), de nyákon vagy készülékházon belül megteszi a belső fel/lehúzó. Lehet persze bolondbiztosra tervezni, de azért túlzásokba nem kell esni. Egy hidegítő, pl. kerámia kapac lehet, hogy hasznosabb a bemeneten, mint a túl alacsony felhúzó.
-
-
Janos250
őstag
A franc enné meg. Nem tudok PayPal fizetéssel rendelni, mert karácsonykor megrendeltem egy átverős Facebookon megjelent hirdetés a alapján egy cikket (igen, én hülye), ezzel a PayPal le is tiltott. A feloldáshoz mindenféle igazolvány , egy másik rendelés számlája, meg ilyesmik szükségesek. Beszkenneltem a személyim, ami épp most járt le, de ugyebár meg lett hosszabbítva, vagyis elvileg érvényes. Visszaírták, lejárt. Semmi baj, akkor megy a jogosítvány. Elment, de ahhoz meg útlevél másolat is kell, önmagában nem elég. Az meg otthon van, és nem is tudom, nem járt-e le az is.
Persze addig fizethetek kártyával, de van, ahol inkább kivárom.
Olyan ez, mint az autóban a riasztó. A tolvajt nem akadályozza meg a lopásban, de a tulajt időnként megszívatja.Ha szoktatok PayPallal fizetni, vigyázzatok, nehogy így járjatok!
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
őstag
válasz Janos250 #17391 üzenetére
Elképesztő bosszantó a facebook hozzáállása ehhez.
Egyszer vettem a fáradságot, és felgöngyölítettem egy komplett csalásra specializálódott csapatot. Úgy kezdődött, hogy az arcomba tolt a fb egy hirdetést, ami kamu volt, de mégis sokan írták alatta, hogy "Szuper ajánlat, épp egy hete használom" stb. Ellenőriztem a profilokat, és egyértelműen látszott, hogy erre a célra létrehozott profilok. Vagy 10-15 darab. Internetről származó profilképek, kommentek 8-10 nyelven itt-ott, teljesen belterjes ismerettségi kör. Az aktivitásukat visszatrackelve találtam még 4 hasonlóan csaló hirdetést, amiken keresztül találtam még 30-40 darab kamuprofilt.
Mindet jelentettem a facebook felé, és 0, azaz 0 db profilt töröltek. A hirdetések is sokáig fent voltak, valószínűleg nem a fb vette le őket.
Egyszer már komponáltam egy bejelentést az NMHH-nak, de végül elengedtem.
Mások számára a kondi fáradós, nekem farad-os...
-
Janos250
őstag
válasz razorbenke92 #17392 üzenetére
Most például vagy háromszor tolta nekem egy eszterga hirdetését 69.99 dollárárt, ami mondjuk ezer dollár. A FB-nál is a pénz beszél. Aki fizet, bármit megjelentethet!
Ha nem akarjuk, hogy letiltson a PayPal, és utána Bangoodon, meg Alin se tudunk vele fizetni, akkor nem szabad FB-n hirdetett dolgot venni.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
vegyszer
addikt
válasz Janos250 #17391 üzenetére
Nekem 2020 azzal indult, hogy a PayPal a hitelesítő SMS-eit a néhai Yodafone-nál beregisztrált számomra hiába küldte el, nem jöttek meg (mert valójában már telenyomoros voltam azon a számon). Vagy három hónapig nem tudtam belépni.
Csináltam egy másik accot, a Revolut virtuális kártyát hozzá kötve, de valami miatt mégis kellett az eredeti fiók. Asszem egy refund összege oda futott be valamiért, el kellett költeni.
Egy (látszólag) magyar számot hívva egy talán ír hölggyel beszéltem. Gyenge negyed óra alatt sikerült megértetni magam, hogy mi a hasfájásom. Megoldotta, hogy az SMS az előzetesen már regisztrált másodlagos számomra jöjjön.
A hétvégén meg a Revolut kezdett azzal zaklatni, hogy lejárt (az ősszel) az az okmányom, amivel anno oda mentem. Persze most vagy a szelfi nem jó neki, vagy az okmány képe. Folyton visszadob.Jó dolog ez az informatika, míg a Skynet az öntudatára nem ébred...
[ Szerkesztve ]
"Újságírás az, amit a hatalom nem akar nyomtatásban látni. Minden más csak propaganda." George Orwell
-
sonar
addikt
válasz razorbenke92 #17392 üzenetére
Saját tapasztalat, hogy ha többen jelentitek a hirdetést, hogy kifogásolható akkor mindenféle értesítés nélkül, de eltűnik a rendszerből.
Amúgy néha beesik egy egy erotikus megkeresés azokat is jelenteni szoktam, de eddig mindig az jött vissza, hogy semmi kifogásolható nincsen. De 2-3 nap után már nem létezik a profil.A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
Tomika86
senior tag
Sziasztok
Meg lehet oldani valahogyan hogy az első képernyő váltásoknál ne villanjanak be a default értékek egy pillanatra? Ha már voltam az adott oldalon, akkor utána jó.
[link]
Köszönöm[ Szerkesztve ]
-
And
veterán
válasz Tomika86 #17399 üzenetére
Én úgy oldottam meg, hogy az adott oldal preinitialize event szekciójában szépen feltöltöttem a változókat megjelenítő mezőket a vételi pufferből ( u[ ] tömbből ) kivett adatokkal. Mondjuk nálam a normál megjelenítés is hasonlóképp történt, csak akkor egy időzítő által indított timer event script végezte ugyanezt. Eleve reparse-módban használtam a kommunikációt, vagyis pufferből halásztam elő az adatokat (master felőli parancsküldés helyett).
Gondolom olyan módon is megvalósítható - alapértelmezett / parancsküldős kommunikáció mellett -, hogy az 'új' oldal változóit globálisként definiálod, és az 'előző' oldal elhagyásakor (page exit event segítségével) azokba beleírod a szükséges értékeket.
Új hozzászólás Aktív témák
- "ÚJ" ÁR/ÉRTÉK Bajnok Gamer PC i5 10600K RX 6600XT 1TB NVME SSD GARANCIA BESZÁMÍTÁS!
- "ÚJ" ÁR/ÉRTÉK Bajnok Gamer PC i5 10600K RX 6600XT 1TB NVME SSD GARANCIA BESZÁMÍTÁS!
- 32 GB DDR4 ECC legolcsòbb egyben !!!
- Zotac Twin Edge OC RTX 3060 Ti
- AKCIÓ! AMD GAMER PC: Ryzen 7 5700X / B450 / RX 6700XT 12GB / 2TB SSD / 16GB 3200MHz / 750W Moduláris
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Promenade Publishing House Kft.
Város: Budapest