Keresés

Hirdetés

Új hozzászólás Aktív témák

  • inf3rno

    nagyúr

    válasz s3toraph #1485 üzenetére

    Ha vezeték nélkülit akarsz, akkor mindenképp kalkulálj vele, hogy a wifi sokat fogyaszt. Inkább rádiósan érdemes megcsinálni, vagy csak néha-néha sync-elsz wifin keresztül egy központi adatbázissal. Szerintem a kütyüre csak egy sima event log-ot tegyél, ami kb így néz ki: timestamp, sensor-id, sensor-data. Ezeket bizonyos időközönként elküldöd az adatbázisnak, amiben egy központi event storage-t csinálsz. Oda szépen lemented az eseményeket, meg a szenzor jellemzőket. Tegyél esemény hozzáadásra adatbázist trigger-t, ami projekciókat hív meg. A projekciókkal transzformálod az eseményeket valami szolgáltatás specifikus formába, pl hogy mennyi volt a napi átlaghőmérséklet, vagy hányszor nyitották a hónapban az ajtókat, stb.. Ha új projekciót adsz hozzá, akkor az összes event-en végigmehetsz visszamenőleg, ha úgy gondolod. A lényeg, hogy a nyers szenzor adat benne legyen egy event storage-ben, onnantól meg már kedved szerint alakíthatod, hogy a webszolgáltatás miről mekkora részletességű infot ad.

    Több dolgot is csinálhatsz. Ha netről látni szeretnéd az adatokat, akkor dyndns-el csinálhatsz egy otthoni HTTP szervert, amit majd állandóan csesztetni fognak a hackerek. Egy nodejs-nek azt mondják legalább 64MB memória kell, de szerintem apache + PHP is kb ugyanott lennél. SQL adatbázisnál valszeg postgresql-el tudnád megoldani a kevés memóriát. Sqlite is keveset foglal, de azzal nincs tapasztalatom, és amúgy sem igazán szeretem az olyan adatbázist, ami nem daemon-ként fut. Szóval ha webszervert és adatbázist akarsz, akkor legalább 256MB memória kell, és legalább 1.2GHz-es processzor, és ez tényleg valahol az alja lehet. Én most próbálok majd kihozni két 128MB, 0.8GHz-es gépből egy adatbázist és egy webszervert, de nem vagyok benne biztos, hogy az adatbázis részét meg tudom oldani ennyiből. Valszeg az is inkább csak event log lesz.

    A másik lehetőség, hogy veszel egy domaint meg egy hosting-ot, aztán annak az adatbázisában csinálod meg az event storage-edet, amibe bizonyos időközönként az itthoni kütyüről feltöltöd az adatokat. Ez egy sima HTTP POST-al mehet, a lényeg, hogy jelszavas legyen. Ha lehet, akkor érdemes TLS titkosítani is és legalább valami ingyenes gagyi certificatet beállítani, különben bárki képes lesz feltolni adatot, ha olyan kedve van. Ha ez nem számít, akkor mindegy. Elvileg lehetséges beállítani úgy is, hogy csak bizonyos helyről fogadjon titkosított adatot a szerver, de ebbe nem folytam bele. Van olyan lehetőség is, hogy digitálisan aláírod az adatcsomagjaidat, aztán FTP-vel felteszed a szerver egy mappájába, ami webről nem hozzáférhető. Ha stimmel a digitális aláírás, akkor feldolgozod a fájlt, ha meg nem, akkor eldobod. Így még ha megszerzik az FTP jelszót, akkor sem tudnak mit csinálni, mert a szerver automatikusan törli a feltöltött fájljaikat.

    Nagyjából ennyi, ha a kütyü lesz a webszerver meg az adatbázis is, akkor szerintem valami komolyabb rpi, ha meg csak adatot gyűjt, és sync-el a szerverrel, akkor meg arduino is elég lehet. Nekem legalábbis ez jött le, de nincs sok tapasztalatom ezekkel a kütyükket. Megtanulni szerintem egyiket sem lehet bonyolult. A költséghatékonyságot meg csak te tudod kiszámolni a fogyasztásból és az esetleges domain és szerver bérlésből.

    [ Szerkesztve ]

    Buliban hasznos! =]

  • stopperos

    senior tag

    válasz s3toraph #1485 üzenetére

    Raspberry lesz erre jó, arduino kevés lesz. Kábelesen csatlakozzon minden, biztosabban működik. Logouton van írásom erre.

    "What is Linux? I only joined because of the the penguin..." - meanwhile in the linux community. http://9gag.com/gag/arpZGOy

  • inf3rno

    nagyúr

    válasz s3toraph #1488 üzenetére

    Én nem szoktam szerver üzemeltetéssel foglalkozni, ezért nem tudom, hogy mennyire biztonságos. Nekem sokkal kényelmesebb, ha más csinálja, én meg csak felteszem rá a kódomat. Annyit tudok, amikor dyndns-el próbálkoztam pár éve, akkor napi szinten próbálták feltörni a szervert. A kóddal kapcsolatban ha titkosítot az oldal, akkor egy basic http auth elég a beléptetéshez, és mivel csak GET-es kérések vannak, így kb nulla az esélye, hogy alkalmazáson keresztül feltörik. Azért szarvas hibákat ne kövess el, validáljad a bejövő paramétereket, meg ne tedd bele őket http header-be (aka header injection), ha az adott nyelv erre nincs felkészítve, és így tovább.

    Szerintem ne szaladj annyira előre. Koncentrálj inkább arra, hogy vezetékesen meglegyen, aztán csak utána kezdj el foglalkozni azzal, hogy vezeték nélkül meg tudod e csinálni. A szakdogád szempontjából szerintem lényegtelen, hogy vezetékes e vagy sem, és most az számít, hogy időre meglegyen.

    20 sec-re talán elég egy sima polling is, és nem kell sse vagy websockets, tesztelni kell, hogy mennyit bír a kütyü. Teljesen jó, ha mindent sd kártyára mentesz, és a kütyü csinálja a szervert is. Ha nem kell komoly funkcionalitás bele, ahogy írod, akkor felesleges külön adatbázis meg ilyesmi neki. Ha csak annyit csinálsz, hogy a fájlba mentesz, és a kliens oldalon parsolod a txt fájlokat és rajzolod ki a grafikonokat mondjuk d3.js-el, akkor menni fog arduinoval is. Ha nem csak napi és havi szintű lekérdezések vannak, hanem nagyon meg van bonyolítva a dolog, akkor kellhet egy adatbázis, de én úgy látom, hogy ekkora bonyolultságnál nincs szükséged rá, elég a fájlrendszer. Azt viszont nem tudom megítélni, hogy egy arduino elbír e egy log fájlt meg egy webszervert. Nekem eddig az jött le, hogy igen.

    Buliban hasznos! =]

  • gyapo11

    őstag

    válasz s3toraph #1494 üzenetére

    Úgy szeretném megoldani a dolgot, hogy önálló rendszer legyen. Ne a PC tároljon, számoljon, mert ahhoz üzemelnie kell. Önállóan működjön az eszköz.

    Az a kérdés, mi az önálló működés. Ha a szenzorok kiolvasása, a feltételek szerinti beavatkozás, akkor önálló net nélkül is. Ha a megjelenítés is, akkor már jönnek a határok. Ha adatbázis is, akkor el se tudom képzelni. Sd-kártyára nyilván jó sok mérés elfér, de amíg abból egy szűrt megjelenítés lesz, ha egyáltalán ki tudja számolni, az egy fél óra. Pedig ebben még számolás sincs, csak végig kell olvasni az adatokat, és a feltételeknek megfelelőeket megjeleníteni.
    A max amit el tudok képzelni működőnek az a routeren át egy serverre fölmásolni, nem tudom hogy kell ezt megírni, én még csak az egyszerű html oldal példákat láttam.
    Ha egy hőfokot átszámolunk egy byte-ba, és 10 hőmérő van, 10 percenként mérünk, az napi 1440 byte. Egy év után ez 525600 byte, és ebből vagyunk kíváncsiak, hogy mikor volt valahol 17 foknál kevesebb, és Fahrenheitben kellene kijelezni. Ez sqlben kb 1 sor meg egy while a php scriptben, ami kinyomja táblázatos formában a weboldalra az eredményt, és mire fölengedjük az entert már ott van. Még a raspiről se tudok elképzelni elfogadható válaszidőt.

    menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

Új hozzászólás Aktív témák