Címke:


2017. Augusztus 05.

Strandidő a Durbán, épül a híd

írta: Xaint

Gondoltam, ma ismét ránézek a tavon elhelyezett kis szenzorra, mert már majdnem egy hónap telt el az előző leolvasás óta. Egyébként, mivel az időkép.hu szerint épp ezen a napon tetőzik a hőség, így annyira nem jelentett nagy problémát, hogy mindezért a vízbe kell mennem. laugh
 

 
 

A leolvasás pillanatában a léghőmérséklet 36.9 °C volt. Kellemes nap arra, hogy hidat építsünk a legnagyobb szigetre. Ma ugyanis ez volt a fő feladat.

A vízhőmérő 27.4 °C-ot mért, de a szonda mindössze 40 cm-rel van a vízfelszín alatt. A mélyebb részeken azért valamivel hidegebb a víz..

 

Created with Highstock 5.0.14VízmélységHőmérsékletDurba-tó szenzor adatok(2017.07.20 - 2017.08.05)VízmélységVízhőmérsékletLéghőmérséklet2017.07.202017.07.222017.07.242017.07.262017.07.282017.07.302017.08.012017.08.032017.08.052072102132162191224364860Highcharts.com



2017. Július 09.

Durba-tó interaktív adatok

írta: Xaint

Teszt jelleggel beépítettem a highcharts-ot, ami egy JavaScript alapú, interaktív grafikonok rajzolására használható kis függvénykönyvtár.

 

Created with Highstock 5.0.12DátumVízmélységHőmérsékletDurba-tó vízmélység és hőmérséklet adatokVízmélység (cm)VízhőmérsékletLéghőmérséklet22. Máj24. Máj26. Máj28. Máj30. Máj1. Jún3. Jún5. Jún7. Jún9. Jún11. Jún13. Jún15. Jún17. Jún19. Jún21. Jún23. Jún25. Jún27. Jún29. Jún1. Júl3. Júl5. Júl7. Júl9. Júl17017518018519019520020521021522022523010203040Highcharts.com


A fenti grafikonon ki-be kapcsolhatjuk a megjeleníteni kívánt adatsorokat, vagy ránagyíthatunk a grafikon bármelyik részére. A grafikonba kattintva pedig teljes képernyőssé tehetjük azt (ezt a Highslide API-nak köszönhetjük smiley).

Címkék:


2017. Június 26.

Város koordináta és térkép letöltés

írta: Xaint

Ma, a távirányító-vevő páros programozása közben arra gondoltam, milyen király lenne, ha a távirányítón a szimpla GPS hosszúsági és szélességi koordinátákon kívül a legközelebbi város neve is megjelenne.

Mivel SD kártya olvasó van a távirányítóban és a hajóban is, így az adatok tárolása megoldott. Már csak Magyarország városainak listájára volt szükségem, azok GPS koordinátáival együtt.

Miután olyan letölthető csv / txt fájlt, ami készen tartalmazná a szükséges információt, néhány perc keresgélés után sem találtam, arra gondoltam más utat választok. Ekkor találtam rá a latitudelongitude.org/hu nevű oldalra. Ez tartalmazza ugyan a városok neveit (nem mindet) és azok hosszúsági és szélességi fokait, ám ezt több oldalra tördelve.

Így gondoltam nem keresgélek tovább, hanem inkább összedobok egy kis alkalmazást C#-ben, ami bejárja az oldalt és lementi a szükséges információkat egy txt-be:
 


Persze amíg a programozással szöszöltem, az egész ötletet továbbgondoltam. Mi lenne, ha a kijelzőn az adott helység kis térképét is meg tudnánk nézni. Persze semmi "multiple zoom level" meg ilyesmi, ahhoz az Atmega644P már kevés lenne... (Bár annyit talán még bele lehetne erőszakolni a mikrovezérlőbe, hogy ha pl. egy adott településen, az adott tóról van közeli műholdképünk, akkor a hajó pozícióját a műholdképen is meg lehetne jeleníteni. Talán.. angel)

Mindenesetre statikus térképeket van lehetőségünk lekérni a Google-től, a Google Static Maps API használatával, ami egy alap felhasználónak 640x640 pixeles maximum képfelbontást és 25.000 térképletöltést engedélyez 24 óránként, ingyen. Nekünk egy 2"-os 160x128-as felbontású kijelzőnk van, és a latitudelongitude.org adatbázisa szerint pedig 276 városunk. Az előírt kvóta betartásával nem lenne gond...

Miután a latitudelongitude.org oldalról sikerült bekebelezni a szükséges adatokat, a térképrészletek letöltése sem volt annyira nehéz. laugh

A kis képek letöltését az alábbi kóddal oldottam meg:

foreach (ListViewItem i in listView1.Items)
	{
	string outFile = System.IO.Path.Combine("images/hybrid", i.SubItems[4].Text + "_hybrid" + ".png");
	System.IO.Directory.CreateDirectory("images/hybrid");

	// Download file
	var request = (HttpWebRequest)WebRequest.Create("https://maps.googleapis.com/maps/api/staticmap?center=Hungary," + i.SubItems[1].Text + "," + i.SubItems[0].Text + "&zoom=11&size=160x128&maptype=hybrid&key=YOURKEY");
	request.Proxy = null;
	request.UserAgent = @"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36";
	using (var response = await request.GetResponseAsync())
	{
	    using (var reader = new BinaryReader(response.GetResponseStream()))
	    {
	        // Read file 
	        byte[] bytes = await reader.ReadAllBytes();

	        // Write to folder 
	        using (var fs = new FileStream(outFile, FileMode.Create))
	        {
	            await fs.WriteAsync(bytes, 0, bytes.Length);
	        }
	    }
	}
	this.Invoke(new Action(() => progressBar2.PerformStep()));
	}

 

A hibrid, vagyis a műholdképek letöltése mellett még az egyszerű térkép (roadmap) verziót is lekaptam, ha már ott jártam:


 

Update: Közben úgy tűnik, egy problémát mindenképpen orvosolnom kell majd a későbbiekben. A távirányítóban ugyanis a kijelző, az nrf24l01 rádió modul, és az SD kártya olvasó is SPI buszon keresztül kommunikál a mikrovezérlővel. Mivel eddig az SD kártyával nem nagyon foglalkoztam (leszámítva a bekapcsoláskor egy egyszerű írás/olvasás tesztet txt-be), így semmi problémát nem vettem észre. Ám, a kijelző inicializálása után, és a rádiómodul használata közben történő SD kártya műveletek kifagyasztják a mikrovezérlőt surprise. Valószínűleg a kijelzőhöz használt, agyonoptimalizált függvénykönyvtár lesz a ludas. Ennek sajnos még utána kell járjak. (Az eredeti terv, mármint az adott GPS koordinátához tartozó városnév megjelenítése persze megoldható, hisz a hajón is van SD kártya (ott működik is), és az onnan beolvasott városnevet egyszerűen átküldhetjük rádión a távirányítóra, amikor az szükséges.)



2017. Június 16.

Virágzó tavirózsa + vízszintmérő adatok

írta: Xaint

Május 20 körül egy megszűnő kerti tóból tavirózsákat telepítettünk a tó különböző pontjaira (utólag is köszi Zoli! laugh), amelyek olyannyira jól érzik magukat az új helyükön, hogy most csodálatos virágba borultak. Ez a virágzás ha minden igaz, késő őszig tart majd. Alig várom, hogy jobban elszaporodjon, biztosan gyönyörű szép lesz.

 

 

 


Bónuszként viszont, ha már arra jártam, lementettem a kis vízszintmérő berendezés adatait. Jelentem, 26 nap után is működik és végzi a dolgát, íme:
 


A vízszint emelkedése a becsléseinkhez képest picit lassabb ütemben történik, de ez egyelőre nem jelent gondot.

Címkék: ,


2017. Június 08.

18-napnyi adat a Durba-tóról

írta: Xaint

 

Ma újfent kimásoltam a kombinált szenzor SD-kártyájáról az adatokat, a belőle készített grafikonon pedig megjelöltem néhány érdekességet.

 


 

Az ultrahangos távolságmérő kezdeti rendetlenkedése mellett felfedezhető rajta a vízhőmérő szonda beázása, a Kis-Durba vizének átemelése az új tóba, két lehűlést hozó csapadékzóna átvonulása, stb. smiley



2017. Május 27.

Durba-tó új adatok szoftverfrissítés után

írta: Xaint

Ma 14:35-kor ismét mintát vettem az eddigi adatokból, tudni akartam, hogyan muzsikál az új vízhőmérő szonda, illetve, hogy sikerült-e a vízmélységmérő szenzor éjszakai kilengéseit korrigálni a frissített szoftverrel.

Egyelőre most úgy tűnik, hogy minden jó. Íme:

 

 

A 25-ei éjfél után még látható egy negyedik, a léghőmérséklettel fordítottan arányos megugrás a vízmélység adataiban, ám 26-án és 27-én annak már nyoma sincs. A léghőmérséklet adataiból egyébként szépen kivehető egy 24-én záporokkal érkező lehűlés.

Az alábbi képen pedig az összes hőmérő, plusz a vízmélység adatai együttesen láthatók (a doboz hőmérséklet az ATmega beépített hőérzékelőjén alapul):

 

 

 

Címkék: , , ,


2017. Május 24.

Durba-tó adatgyűjtő szoftverfrissítés

írta: Xaint

Ma délután feltöltöttem a mérőeszközre a tegnap említett, 32 mérés átlagát figyelembe vevő szoftverfrissítést. Közben ha már felnyitottam a kis dobozkát, ismét készítettem egy mentést az SD-kártyán lévő adatokról.

Most viszont azon gondolkodom, hogy talán a hőmérséklet kompenzációt is be kellett volna építenem a kódba. De akkor mit csinálnék holnap vagy holnap után, nem igaz? cheeky

Mindenesetre a tegnap megjövendölt kicsúcsosodás beteljesedni látszik:

 

 

Remélem a szélesebb átlagolás csökkenti vagy teljesen eltünteti a zavaró csúcsokat. Azért szépen látszik a vízszint emelkedése.

Persze a történetnek itt sajnos még nincsen vége. Íme a vízhőmérséklet grafikonja:

 

 

Azért 2.5 napot kibírt a házilag kreált "vízálló" hőmérő szondám. Utána úgy tűnik, szépen beázott. Sajnos elfelejtettem, hogy a szilikon tömítőpaszta nem tapad valami jól az ugyancsak szilikonból készült csőhöz. Na de semmi baj, már legyártottam egy másik, fém kupakba ültetett, majd epoxi ragasztóval kiöntött szondát. Remélem ez tovább fogja bírni. Sajnos kicserélni csak holnap fogom tudni.

Legalább az akkumulátor töltöttségével nincsen probléma: wink

 

Címkék: , , , ,


2017. Május 23.

Durba-tó előzetes szenzor adatok

írta: Xaint

Ma, azaz kb. 2 nappal a kitelepítés után gyorsan lemásoltam az adatokat a tóhoz rohamtempóban összetákolt kombinált mérő és naplózó eszköz SD kártyájáról. Egyrészt kíváncsi voltam arra, hogy egyáltalán működik-e, és nem kuszáltam össze valamit a nagy sietségben, illetve ha működik a mérőeszköz, nincs-e szükség valamiféle utólagos szoftveres vagy hardveres korrekcióra.

Az előzetes adatokból is már szépen látszanak bizonyos jelenségek. Például, hogy a vízhőmérséklet - a mérőszonda sekély vízben való elhelyezkedése lévén viszonylag gyorsan - de kissé lemaradva követi a levegő hőmérséklet változásait:

 

 

Ám ennél egy sokkal érdekesebb dolgot vettem észre, amikor megnéztem, hogyan emelkedik a vízszint a folyamatos töltés hatására:

 

 

Mikor megláttam a fenti grafikont és összevetettem a léghőmérséklet változásával, rögtön eszembe jutott, hogy a hang terjedési sebessége a levegőben nem állandó, hanem függ a léghőmérséklettől (meg a páratartalomtól, stb.) és, hogy talán ez zavarhatja meg az ultrahangos távolságmérő szenzort. A hang terjedési sebessége ugyanis Celsius fokonként kb. 0.6 m/s-al nő:

 

 

Megoldásként a távolságmérésből származó adatokat az aktuális léghőmérsékletnek megfelelően kompenzálni kellene ( ~0.55 cm / °C) a szoftverben. Egyelőre kísérletképpen megpróbálkozok csupán az átlagoló algoritmus módosításával, a jelenlegi kód ugyanis 15 percenként végez méréseket és az előző 9 méréssel együtt vett átlagot veszi, vagyis ~2.5 óra időintervallummal számol. A mérések számát módosítottam 32-re, így minden mérésbe az előző 8 óra átlaga kerül. Ez kb. a grafikonon is látható csúcsok időtartama. Reméljük ettől majd kisimul az a fránya görbe. laugh

A tó vízszintje naponta megközelítőleg 3.5 cm-t emelkedik, ami elég közel van ennek az egyébként Ebay-ről származó ultrahangos távolságmérő szenzornak a hibahatárához. Ám a fenti két anomáliát leszámítva azért jól látható a várt, növekvő tendencia.

A kódot holnap frissítem, illetve újra lementem az eddigi, immár bő 3 napot magába foglaló mérési eredményeket. Természetesen azokból egy újabb kicsúcsosodásra számítok! cheeky

Címkék: , , , ,


2017. Május 19.

Durba-tó vízszintmérő szenzor

írta: Xaint

Május elejére elkészültünk az új Durba-tó medrének kialakításával, így nem maradt más hátra, mint a vízzel való feltöltése. Ennek apropóján ma összedobtam egy AVR mikrovezérlővel működő naplózó eszközt, ami a következő adatokat rögzíti:

  • dátum és idő
  • vízmélység
  • vízhőmérséklet
  • levegő hőmérséklet
  • akkumulátor feszültsége

Mivel gyorsan kész akartam lenni, ezért az egészet egy próbanyákon állítottam össze, egyedi nyomtatott áramkört tervezni és gyártani ugyanis sokkal időigényesebb. És mivel én mindennek szeretek egyedi nyákot készíteni, így el is felejtettem, hogy a próbapanelos módszer mennyivel egyszerűbb és persze szórakoztatóbb mint napokat tölteni pusztán a tervezéssel. cheeky

    

A kis mérőeszköz egy ATmega328P mikrovezérlőre épül (Arduino Pro Mini), ami egyetlen Li-Ion akkumulátorról működik, van benne egy egycellás töltésvezérlő IC (TP4056), 0.5 wattos napelem, valós idejű óra (DS1307), egy JSN-SR04T ultrahangos távolságmérő szenzor, SD-kártya olvasó, illetve egy 433MHz-en működő adó (MX-FS-03V) ami jelenleg nincs bekötve.

Sajnos az ultrahangos távolságmérő stabil működéséhez 5V tápfeszültségre és meglehetősen nagy áramra (~30mA) van szükség  így egy DC-DC boost konvertert is be kellett építsek, ami természetesen csak a mérések idején aktív, vagyis mindössze néhány milliszekundumig. Épp akadt egy használaton kívüli, összeszerelt boost konverterem ami az MCP1640T IC-re épül. Ennek üzemi árama mindössze 19µA.

A hőmérséklet mérését 1N4148-as egyenirányító diódákkal oldottam meg, "rendes" hőmérő IC-nek ugyanis mindig híján vagyok. Egyszerű diódával és egy néhány k-s ellenállással is elérhető az 1 Cº-os pontosság. 

Az egység egy kiszuperált elektronikai kötődobozba került, amit a tervezett legmagasabb vízszintnél némileg magasabban helyeztem el.

A helyszínen még szükség volt egy gyors kalibrációra, mert a távolságmérő a vízszint távolságát méri az egységhez viszonyítva, nekünk viszont az aktuális vízmélységre van szükségünk. Mivel az ultrahangos adó-vevő épp a doboz aljával egy síkban van, így a kalibráláshoz csak azt kellett leolvasni a mérőoszlopról, hogy a doboz alja milyen magasan helyezkedik el:

Vagyis 280 cm (mínusz a mért érték = aktuális vízmélység). A mérőoszlop a tó legmélyebb pontján mért értéket mutatja.

Jelenleg 15 percenként készülnek a mérések, amiből néhány nap múlva készítek egy-két grafikont is.

Ezen adatoknak persze gyakorlati haszna nem sok van, inkább csak érdekesség, a későbbiekben viszont akár a teljesen automatizált vízszint-szabályozás is megoldható lenne az eszközzel.

De az persze csakis egyedileg készített nyákkal!

Címkék: , , , ,


2017. Április 28.

Etetőhajó vezérlő összerakva

írta: Xaint

Gondoltam megosztok néhány gondolatot a már majdnem teljesen készre szerelt hajóvezérlőről. Volt néhány szabad délutánom, és már alig vártam, hogy végre összeállíthassam az egészet, a legnagyobb kérdés ilyenkor ugyanis mindig az, vajon a végén működni fog-e? laugh

Szóval, a vezérlőhöz egy KM 53 G típusú, füles műszerdobozt választottam. Ez 36 x 115 x 90 mm-es nagyságú, ebbe kellett beleférjen a GPS modul, az RF adó-vevő, a motorvezérlő IC stb.

A GPS modul egy Arduino UNO kompatibilis shield, ami megközelítőleg akkora, mint egy UNO. Mivel a hajóban bőven van hely mindenféle elektronikának, új és kisebb GPS egységet rendelni pedig nem akartam, így gondoltam itt felhasználom ezt. Mivel ez szépen beleül a vezérlőpanelen számára kialakított foglalatba, ezért némileg magasabb házra volt szükség, de annyi baj legyen, amúgy is az RF modult is cserélhetőre terveztem.. A GPS modulon egyébként integrált SD kártya foglalat van, a hozzá tartozó jelszint illesztővel együtt, illetve külső, aktív antennával rendelkezik.
 


A választott adó-vevőt már említettem egy korábbi cikkben, ami egy NRF-8PA-LNA (nrf24l01), 2.4GHz-en működő, kimeneti erősítővel ellátott és ezért >1Km hatótávolság elérésére képes modul, külső antennával. Ehhez be kellett szereznem még egy antenna hosszabbító kábelt, hogy az antennát a hajótesten kívülre tudjam vezetni. Az adó-vevő a GPS modul mellett foglal helyet a vezérlőn.
 


A motorvezérlő IC L298N Dual Full Bridge Motor Driver IC lett, melynek két független kimenetét párhuzamosan kötöttem, így megnövelve a maximális terhelhetőséget. Ez egy akkus fúró 12 voltos motorját hajtja majd meg, ez kerül ugyanis a hajóba (ami ha nem válik be, később még változhat).

A vezérlőn több szenzorcsatlakozási lehetőség is kialakításra került. Például egy GY-65 (BMP085) nyomás és hőfokmérő számára kialakított hely, amelyet vezetékkel csatlakoztathatunk, és amit egy jól kigondolt helyre kellene tennem, hogy a hajótesten kívüli levegő hőmérsékletét mérhesse. Ennek még ki kell alakítanom valamilyen vízhatlan burkolatot is.
 

 

Vízhőmérőnek egy LM335Z hőmérő IC-t  választottam, melyet epoxival egy rozsdamentes acélkupakba ragasztottam be. Ez kerül majd beépítésre a hajótest aljába fúrt lyukba.

Itt megjegyezném, hogy a vezérlőpanelen az ATmega644P minden szabad analóg és digitális lába kivezetésre került, így azokra további érzékelőket lehet kötni. Terveztem például a motorvezérlő IC hőmérsékletét figyelő hőmérő csatlakoztatását is, amely hőmérőt egyszerű 1N4148-as diódából elkészítve olcsó és kellő pontosságú eredményt ad.
 


 

A hajóban két szervóra is szükség van, az egyik a kormánylapátot vezérli, a másik az etetőanyag-tartó rekesz ajtaját nyitja. Erre a feladatra Futaba S3003 általános felhasználásra szánt szervókat választottam. A szervókat PWM-jellel a mikrovezérlő egy-egy lába vezérli. A tápellátásukról eredetileg két darab AMS1117 5 voltos feszültségszabályozó IC gondoskodott (volna). Ezek közül az egyik a kezdeti élesztés során megadta magát (a szervók terheletlenek voltak). Ez a szabályozó IC szolgáltatta a stabil 5V tápfeszt az ATmega644P mikrovezérlő számára is. A másik egyébként a GPS vevőről gondoskodott. Sajnos olyan módon lehelte ki a lelkét a kis drága, hogy a ki és bemenetét rövidre zárta, amivel a bemeneti 12V szépen megjelent a kimeneten is. Mondanom sem kell, ennek sem a mikrovezérlő, sem én nem örültem. Az előbbi az örök vadászmezőkre távozott, az utóbbi meg rendelhetett egy újabb mikrovezérlőt. angel

Olvastam, hogy ezeket a tápfeszültség szabályozó IC-ket is hamisítják... Mert gyakorlatilag lehetetlenség kinyírni őket, annyiféle védelemmel vannak ellátva (túlterhelés, túlmelegedés), melyek élesedésük esetén automatikusan lekapcsolják az IC-t. A hamisítványok viszont inkább rövidre zárják a ki és bemenetüket.

Mivel nem akartam tovább kísérletezni a kétes eredetű AMS1117 IC-kkel, így szépen kiforrasztottam őket, majd a NYÁK-on végzett kisebb módosítások után bedobtam egy LM2596 DC-DC step down szabályozót a buliba. Ez hatékonyabb is mint lineáris társaik, maximális hatásfoka ennek a modulnak 92% is lehet. Ez persze több tényezőtől is függ. A modul viszont már a vezérlő házán kívül kerül elhelyezésre, valahol az akkumulátorok felől érkező kábelre építve. Így az eddigi 12V helyett, onnan érkezik majd a stabil 5V-os tápfeszültség is.

A vezérlőn helyet kapott egy PIEZO buzzer is, ez a GPS shield alatt foglal helyet. Van még rajta továbbá egy az élesztés és hibakeresés során nagy segítséget nyúltó LED, ami egy tüskesor csatlakozóval bármire ráköthető a panelen. Illetve egy másik LED, mely fixen a mikrovezérlőre van csatlakoztatva, és ez is használható hibakeresésre, információ kijelzésre.
 

    
 

Természetesen a modellboltból rendelt alkatrészek is megérkeztek már.

A tönkcső felfogatására gyárilag kialakított furatok pontosan megegyeznek a motoron lévőkkel, így ezzel nem kell foglalkoznom. Ez valami szabvány lehet? smiley

Legközelebb igyekszem valamit a hajóról is megosztani.