Vuonna 2011 tuli hankittua GSM-moduli BENQ M23R ja GPS-moduli Fastrax uPatch100C9 kun halvalla sai.
Lisäksi valmiina oli jo Microchipin 18F2550 mikrokontrolleri, LCD-näyttöjä, koekytkentäalustoja, transistoreita, koteloita ja sun muita elektroniikkakomponentteja jne. Lisäksi muutaman vuoden harrastuspohjainen konekielinen ohjelmointikokemus Microchipin mikrokontrollereilla.
Näillä eväillä tulikin tehtyä ensi alkuun oma “kännykkä”, etäluettava lämpömittari, kännykällä ohjattavaa lukkoa, tekstiviesteillä toimivaa GPS-paikanninta jne.
Sitten jossain vaiheessa luettuani lisää GSM-modulin BENQ M23R manuaalia. Niin sieltähän löytyi ohjeet miten modulin saa lähettämään tietoa myös internettiin HTTP-pyynnöillä. Tästä syntyi idea kokeilla onnistuuko GPS-paikantimen tekeminen, joka lähettää HTTP-pyynnöillä GPS-koordinaatit internettiin luettavaksi. Laite sai lopulta jostain syystä nimeksi GPS-tagi, jota nimeä käytänkin tästä eteenpäin.
Mutta ennen kuin GPS-tagi alkaisi toimia täytyi suunnitella piirikaavio Paintilla tietysti, josta tuli sitten tämän näköinen:
Josta taas tuli rakennettua tämän näköinen koteloitu rautapuoli 2-3 päivässä:
Sitten raudalle piti suunnitella ohjelmistoakin. Jonka piti saada toimimaan näin:
-
GPS-tagiin pitää voida lähettää tekstiviestinä asetukset. Kuten sen sivuston osoitteet, jonne sen halutaan lähettävän GPS-dataa. Ja GPS-tagin tunnus, josta tietää mikä GPS-tagi olisi kyseessä.
-
Gps-tagi lähettää internettiin GPS-koordinaatin, nopeustiedon Km/h ja suunnan. GPS-tagin tavoitteena olisi, että se pystyy lähettämään GPS-paikkatietoja ainakin 1 minuutin välein nettiin. Joka voi olla tässä ehkä jopa lyhyempi kun kokeilun koodia hieman parantelee nopeammaksi. Toisaalta myös pidempi riippuen tietoa nettiin välittävän GPRS-yhteyden ja tietoa vastaan ottavan Web-palvelimen nopeudesta ja kuormituksesta yms.
-
GPS-paikkatiedon välitykseen internettiin käytetään HTTP-pyyntöjä. Joilla internetselaimetkin keskustelee internetpalvelimien kanssa.
-
GPS-tagi tuottaa valmiiksi maps.google.fi internetsivustolle kelpaavia linkkejä.
Lopulta useiden tuntien jälkeen oli koodi “valmis”. Koodista tuli tämän näköinen: gpstagi.txt (125 KB) Joka herätti 2*16 merkin LCD-näytöllä varustetun GPS-tagin henkiin.
Sitten piti vielä tehdä WEB-palvelimelle sivusto, joka vastaanottaisi GPS-tagin lähettämän datan ja näyttäisi internetselaimessa. Sivusto on hyvin yksinkertainen. Se ottaa samaan tapaan tiedon vastaan GPS-tagilta kuin tavanomaiselta internetsivulta lähetetty POST-metodilla lähetetyn lomakkeen. Eli tässä systeemissä ei ole mitään estoa, etteikö sivustolle voisi kuka tahansa lähettää mistä tahansa internetistä roskadataa POST-lomakkeilla ja häiritä näin sivustoa.
Tätä voi estää tehokkaasti käsittääkseni laskemalla GPS-tagissa vaikka SHA-1 tai vaikka MD5 tms. tiivisteen GPS-datasta, joka sisältää suola-sanan, jonka tietää vain vastaanottava internetsivusto ja itse lähettävä GPS-tagi. Ja jos vastaanottava sivusto ei saa GPS-tagin ja itse laskemaansa tiivistettä täsmäämään niin tullut data hylätään.
Tässä kokeilussa kumminkaan tätä suojausta ei ole eikä seuraavassa vastaanottavan PHP-sivuston koodissakaan näin ollen.
data.zip (5.58 KB)
Laitteesta tuli tehtyä myös video testausvideo Youtubeen.
Projektille tuli tehtyä myös oma sivusto internettiin.
Systeemistä on tullut tehtyä jo myös SIM908 GSM/GPS-modulilla toimiva versio. Koska sellaista nyt käytetään Ruuvipenkin omassa GPS-systeemissäkin. Tai ilmeisesti käytettiin koska SIM908 on vaihdettu SIM968, joka tukee myös GLONASS-satelliitteja. Ehkä omat kokeilut siirtyy seuraavaksi tuohon SIM968-moduliin PIC-mikrokontrollereiden kanssa. Kunhan siihen SIM968 saa vaan jostain hyvän Breakout testilevyn niin kuin SIM908 saa.
Uudessa koekytkentälevyille tehdyssä kokeilussa eli tuossa SIM908 projektissa on myös mukana MD5-tiivisteen varassa toimiva häirintä/hakkeri suojaus. Onko MD5-tiiviste siihen riittävän hyvä. Niin en osaa sanoa. Mutta kyllä se varmasti aika monta sunnuntaihakkeria tiputtaa pois.
Jyrki