| Fórum témák 
 
 » Több friss téma | A klónok CH340 Soros-USB illesztőjének drivere (Letöltés) 
				Oké köszönöm de hogyan fordította le hibával?						 
				Feltételeztem hogy olyan libeket használ, amikkel már dolgozott a multban, szóval végig néztem a korábbi projekteket az oldalon és össze szedtem ami kellet ehez a projekthez. Tessék az egész egy csomagban. 
				Hálás köszönetem a segítségért most már csont nélkül lefordította!						 
 
				Még mielőtt nagyon belemerülnék az adatok mentésébe, úgy néz ki, hogy dinamikus memóriagondok is lesznek. Mivel sd-ről olvasni nagyon hosszadalmas lenne, ezért memóriába kellene tartani az összes kártyakódot. Ha most felveszek egy 
 (a 400 a kártyák száma dimenzió, a 4, a 4db byte kártya egyedi azonosító) ha ezt így feltöltöm, már 91%-nál tartok a dinamikus memóriából, az UNO-nál. 
 
				Eleve nem lehet jó, mert byte. Azaz 400-különböző kártyaszám nem lehetséges. 1byte 256, azaz 144 egyforma lesz. Miért hoszadalmas az SD olvasás? A leglassabb eszköz maga az Arduino. A hozzászólás módosítva: Ápr 27, 2023 
 
				https://forum.arduino.cc/t/maximum-speed-that-the-arduino-can-read-...5905/7 Ha elolvastad volna az előre gyártott megoldásomat, ami kiküszöböl sok problémát, és az SD kártyát sem teszi tönkre, akkor 1 megyitás és 10 keresés, majd bezárás, olyan 10*20 +2*11ms körül lenne. Ami 250ms. De ekkor 1024 előregyártott adatból keresne, illetve mivel a linken 10 sor, de sok adat van, a 2 ms több, mint ami neked kellett volna. De maradhatsz a memóriáknál is, beégetheted EEP-romba is, és csak keresel benne. De nekem mindegy. Leírtam mindent amit akartam, nem figyeltél rá. 
 
				Sőt. 11ms a megyitás, olvaás, bezárás. Értelmes keresssel kb épp ennyi lenne.						 
				Talán nem pont uno/nano-t kellene hsználni, hanem valami kicsivel nagyobb memóriával rendelkezőt. Pl. ESP8266-hoz még SD kártya sem kellene (de lehet, ha mindenképpen szeretnéd), bőven elég nagy a flash, és a memória is sokkal több, meg se kottyanna egy ekkora tömb.						 
 
				De ki fogom próbálni a te módszeredet is, mihelyst eljutok odáig, hogy felfogjam, előtte már belekezdtem egy módszerbe és tényleg baromi lassú a feltöltés, de ez lehet a program hibája miatt. Ugye elnézed nekem, hogy nem vagyok penge az arduinoba és lehet, neked ami egyszerűnek tűnik, másnak nem biztos, hogy az. 
				Az a gond az ESP-vel, hogy nincs elég I/O rajta, van ugyan NodeMcu-m, de baromi lassú rátölteni						 
				Esetleg BluePill? Az is egy "atomrakéta" egy nano-hoz képest. Sok I/O is van, és néhány tized másodperc rátölteni egy programot.				 A hozzászólás módosítva: Ápr 27, 2023 
				Van 4db számom, pl : 126,177,123,123    ezt milyen függvénnyel tudom összerakni, hogy ez legyen: 126177123123 ? //Bocsi, a konyhanyelvért, 
				Használhatod egyben is 32 bites számként... Pl. csak rámutatsz egy pointerrel...				 A hozzászólás módosítva: Ápr 27, 2023 
				Ezt most nem értem Van egy 4-es for ciklus kiolvassa a kártya azonosítóját bájtonként és ez kéne valahogy összerakni egy számmá A hozzászólás módosítva: Ápr 27, 2023 
 
				mutasd meg mivel írsz az sd-re és mond el mennyi ideig ír.						 
				Tedd be ezt a ciklust ide, hogy lássuk miről van szó! Amúgy meg kb. így: uint8_t azonosito[4]; uint32_t* azonosítoszam; azonositoszam = (uint32_t*)azonosito; // tömb címének másolása x = *azonositoszam; //így hivatkozhatunk rá vagy másolhatjuk 32 bites egész számként, pl. az x változóba, vagy bárhova Kiírni pedig hexa-ban lenne érdemes, mert akkor a sima karakterek összefűzése is ugyanúgy korrekt eredményt ad, mint a matek. A hozzászólás módosítva: Ápr 27, 2023 
				Huh, de bonyolítjátok.   Nyilván kell egy idő, ds3231. Minden nap pl. éjfélkor létrehoz egy date.csv-t, pl. ma 0427.csv . Fejléc: myFile = SD.open("0427.csv", FILE_WRITE); myFile.println("Time",";","ID"); myFile.close(); Adatokhoz beírja az időt pl. 083240 (8 óra 32 perc 40 másodperc) majd a kártyát. myFile = SD.open("0427.csv", FILE_WRITE); myFile.println(time,";",char1,char2,char3,char4); myFile.close(); Nem konkrét program, csak a logikája.   
 
 
				Mégse.    A hozzászólás módosítva: Ápr 27, 2023  Köszi, erre gondoltam előtte is, de nem tartottam túl elegánsnak, de ha nincs más..... 
 
				myFile = SD.open("0427.csv", FILE_WRITE); myFile.print(time); myFile.print(";"); myFile.print(byte1); myFile.print(byte2); myFile.print(byte3); myFile.print(byte4); myFile.print('\n'); myFile.close(); A ; jelzi az excelnek új oszlop, a '\n' új sor. A byte-ok pedig egybefűzve jelennek meg, default decimális kódolással. 
				Tehát a  
 ilyenkor ír az SD-re és jelentős időt igényel, itt ez esetbe csak 40 db kártyát szimuláltam és majd 10 másodperc volt, 100db esetén le se fut a program, valamiért annyitól már kifekszik. Ez nem lesz jó ide. 
				De nem egyszerre olvasol 40 kártyát.   Amit írtam kis probléma, ha byte<10 v. 100. if(byte<10) myFile.print('0'); if(byte<100) myFile.print('0'); myFile.print(byte); Vagy mindegy? A hozzászólás módosítva: Ápr 27, 2023 
				Használhatsz string-et https://linuxhint.com/integer-to-string-arduino/ 
 Nem teszteltem, csak firkantottam... Persze a mezei hagyományos tömbös megoldás lehet gyorsabb, takarékosabb 
				Ezt megoldottam saját magához adtam hozzá, spórolás van ...						 
				Sziasztok! Adott egy Setup alkotó részek: -Arduino uno -Egy RFM96 (LoRa) – Rádió-shield (868MHz) -GPS modul (NEO-6MV2) -DHT22 T, RH szenor és egy -csapadékmérő aminek reed reléje van Találtam egy programkódot aminek egy részét értem, és ki is egészítettem már. Maga a mért adatok továbbítása LoRaWAN hálózaton történik. A kapcsolat meg van, de még nem teljes a kód amit át akarok küldeni. Van olyan valaki itt aki elmagyarázná, hogy a kód hogyan tevődik össze, mivel egy részét értem, és addig nem tudok hozzányúlni, mert nem tudom hogy tevődik össze. A szituáció a következő. A program beolvassa a GPS illetve a szenzorok adatait. Ez után összepakolja egy tömbbe majd elküldi paylodon, LoRán keresztül a GW-nek majd az továbbítja a szervernek ahol feldolgozódik. Amit nem értek, hogy a program az egyes mért értékeket megfelelő byte részekbe teszi sorosan egymás után illetve tesz hozzá elhatárolást. A kód egy része így néz ki. 
 A mydata[17] egy 17 elemű tömb amibe érkeznek a mért adatok. Valaki elmagyarázná, hogy a számsor mit takar, illetve az utolsó 3 érték. Csak egy pár példa, hogy ha bővíteni akarom értsem, hogy mit kell bele tenni. Maga a program eseményvezérelt. Hasonló mint ez a kód: ttn-otaa-pro-mini-sensors.ino. GPS megszólítása értékek kinyerése: 
 Majd itt dolgozódik fel a teljes adatmenyiség, itt kerülnek a tömbbe az adatok. 
 Az egyes változók definícióját és típusát is értem, azt is értem, hogy hogyan kerülnek bele az egyes adatokat változókba. Viszont erről teljesen nagy a homály: Idézet: „ mydata[4] = (byte) (int32_lat >> 24); mydata[5] = (byte) ((int32_lat >> 16) & 0x00FF); mydata[6] = (byte) ((int32_lat >> 8) & 0x0000FF); ” illetve ezt sem értem: Idézet: „ mydata[12] = (byte) (int16_alt >> 8); mydata[13] = (byte) (int16_alt & 0x00FF); mydata[14] = sat; ” Hogyan tevődik össze akkor az adatom, mert nem tudom elképzelni. Valaki valami gyakorlati példával el tudja mondani? Azt értem, hogy mondjuk a "sat" a tömb 14.-eleme. De konkrétan ezt nem értem: (int16_alt >> 8) illetve (int16_alt & 0x00FF). Hogyan egészítsem ki ha mondjuk újabb 16-os vagy 32-es váltózóm van? Elnézést a specifikus kérdésért, de remélem jó helyre írtam a hozzászólásomat. Köszönöm előre is a segítséget. | Bejelentkezés Hirdetés | 









