Aihearkisto: GSM Etäohjain

Kauko-ohjausta kaukana vol. 2

ITS ALIVE!!!

Etäohjain toimii,  pääosin ainakin.

Pitäisi varmaan kertoa vielä, että mistä laitteesta on kysymyShaisse saurus pönttös. Kyseessä on siis Shaisse sauruksen pumppuun tarkoitettu kauko-ohjain. Mikä se Shaisse saurus sitten on? No se on serkkupojan lietteen levitykseen tarkoitettu laite: kaksin kappalein traktoreita, pumppuvaunu, pitkästi letkua ja levitinyksikkö sekä muuta tilpehööriä. Liete siis levitetään suoraan montusta. Pumppu tulee lietemontun viereen ja liete pumpataan pellolle, jossa se sitten levitetään multaimella suoraan maahan.
Tilanne siis alunperin oli sellainen, että lietteen levityksen yhteydessä levitystraktorissa oli yksi kuski ja toinen kuski oli pumpputraktorin päässä. Levitin päässä nyt loogisesti oli koko ajan tarpeellista olla kuski, mutta pumppu päässä tarve kuskille oli vain hetkittäinen. Koti navetan vieressä ongelma ei mahdottoman iso ole, koska lähistöltä löytyy aina jotain tehtävää, mutta urakointi hommissa pumpputraktorin kuskilla ei kovin pajoa tekemistä ollut. Isolla pellolla pumppua ei tarvitse sammuttaa tai käynnistää kovin useasti.
Itse kauko-ohajain koostuu harmaasta laatikosta, jonka sisällä on kaksi piiri levyä toinen itse tehty ja toinen tilattu netista. Netistä tilasin GSM-modulin, josta olen shaisse saurus kauko-ohajainjo aiemmin tässä kirjoitellu ja itse tein siihen relekortin, josta siitäkin olen pikkuisen jo kirjoitellut.
Asennukseen oli periaatteessa varattu perjantai päivä ja lauantaille sekä sunnuntaille olisi ollut muuta, mutta harmillisesti (mutta ei ehkä niinkään yllätättävästi) asennukseen meni oletettua enemmän aikaa ja lopulta asennukseen tuli käytetteä aika iso osa sekä lauantaista, että sunnuntaista. Asennus kuitenkin traktorin osalta saatiin loppuun asti ja pumpun puolen serkkupoika asentelee itsekseen kunhan ehtii. Kaikki ominaisuudet eivät siis vielä ole käytössä, mutta jo näillä mitkä saatiin käyttöön vähenee pumpputraktorin kuskin tarve varsin merkittävästi.
Helpointa traktorin puolen asennus olisi ollut toteuttaa esimerkiksi ISOBUS-väylän kautta, mutta suunnittelu vaiheessa pumpun eteen ei ollut tarkoitus saada ko. väylällä varustettua traktoria, mutta monen mutkan kautta nyt kun prototyyppi ohjaimesta on valmis ja hiljalleen testauksessa ihan tosi toimissa, yllättäen pumpun eteen on ilmestynyt Fend, jossa on ISOBUS. Sellaista se elämä joskus on. Laite asennettiin siis kuitenkin Valtraan. Nyt siis ohjaus on toteutettu ihan releillä. Käsikaasun potentiometrejä on asennettu toinen kappale ja releellä valitaan kumpi asettaa kierrokset koneeseen. Ulosoton käynnistykseen on tuhrattu kaksi relettä toisella ulosotto saadaan päälle ja toisella vastaavasti pois päältä. Asennus on lisäksi tehty niin, että kauko-ohjaimen ollessa sammuksissa asennus ei vaikuta traktorin normaaliin käyttöön mitenkään, käsikaasu sekä ulosoton kytkin toimii ihan samoin kuin jos mitään ylimääräistä ei traktorissa olisikaan. Lisäksi ulosotto on kytketty niin, että kytkimen ollessa OFF-asennossa kauko-ohjaimella ei ole mahdollista vahingossakaan kytkeä ulosottoa päälle.
Jo nyt tässä vaiheessa on tiedossa useampikin asia joita joutuu seuraavaan versioon korjaamaan tai lisäämään. Esimerkiksi piirilevy itsessään on suunniteltu kestämään useita amppeereita virtaa, mutta noilla liittimillä levylle ei saa syötettyä sellaisia virtoja. Kaiken kaikkiaan olen varsin tyytyväinen projektiin. Erittäin fiksu idea olisi ollut istua pari kolme päivää itse pumpputraktorissa ja sisäistää pumpun toiminta ja ohjaus sitä kautta, mutta meni se näinkin ja ehkäpä jo  seuraavaan projektiin tajuaa sellaisen tutustumisen tehdä.

Tositoimissa laitetta ei ole viellä testattu, mutta sen verran testattiin, että saatiin videolle pätkä kännykällä kuvattua. Tarttee jossain vaiheessa tehdä parempi video aiheesta, koska tämä versio ei loppujen lopuksi kovin kuvauksellinen ole.  Harmillisesti kunnollinen kamera jäi matkasta pois juuri ratkaisevalla hetkellä, mutta onneksi kännykällä voi edes vähän paikata, vaikka kiirus meinasi tullakin videon kanssa.

 

Jos joku haluaa tarkempia tietoja itse kauko-ohjaimesta, minulle voi laittaa viestiä tuosta alhaalta ja jos on tarvetta lietteen levitykselle tai muuten haluaa tarkempia tietoja itse levitys laitteesta, Aapelille voi soittaa numeroon 044 328 0187.

Tästä aiheesta tulee varmaan viellä lisää tarinaa jossain vaiheessa, mutta tässä vaiheessa mennään nyt tällä.

Kauko-ohjausta kaukana


Nyt se olisi sitten menoa! Tämän kertainen projekti olisi sitten siinä vaiheessa, että se pitäisi laittaa ihan oikeasti testiin voiko sitä käyttää ja toimiiko se traktorin kopissa.

Istuskelen tällä hetkellä Helsinki-Vantaalla ja odottelen lennon lähtöä Ouluun. Harvinaista herkkua päästä katselemaan auringon nousua näin rauhassa.

Projekti on siis kauko-ohjain serkun lietteen levitys laitteeseen. Tämän hetken ohjaus on tekstiviestillä, mutta jatkossa olisi tarkoitus saada laite toimimaan niin, että kummassakin päässä on vain harmaa boksi ja muutama nappi.

Kirjoittelen asiasta tarkemmin kunhan ehdin ja saadaan viikonlopun aikana masiinaa testailtua.

 

Lähetetäänkö tekstiviesti? ja vähän luetaankin.

Tekstiviestin lähetys teknisellä tasolla ei ole ihan niin yksinkertainen homma kuin voisi kuvitella. Johtuu ehkä siitä, että alunperin sitä ei oltu suunniteltu ollenkaan kuluttaja käyttöön, vaan lähinnä operaattorilta asiakkaalle meneville viesteille (lue mainoksille?), mutta ihmiset ottivat 160 merkin viestit paljon paremmin vastaan kuin oletettiin. Osittain suosio ehkä johtui niinkin yksinkertaisesta asiasta, että alunperin tekstiviesti meni perille huomattavasti paremmin kuin puhelut huonossa kentässä ja eihän aluksi kenttää koko maassa kovin paljoa ollut.

SIM908 modulissa (ja yleisestikin) käytössä on kaksi moodia tekstiviesteille, PDU ja TEXT. Lähetettäessä PDU-muodossa viestit tulee normaalisti kännykkään, mutta TEXT-moodissa viesti tulee suoraan kännykän näytölle ja se pitää siitä erikseen tallettaa, ainakin niillä muutamalla samsugin puhelin mallilla, joilla olen asiaa testannut. Samoin PDU-moodissa SIM908-moduliin lähetetyt viestit käsitellään “normaalisti” eli siis ne tallennetaan yms. TEXT-moodin viestit käsitellään eri tavalla. Niitä ei tallenneta vaan ne vain lähetetään serial lineen suoraan ja siis jos ne halutaan lukea ne täytyy huomata silloin, kun ne tulevat.

TEXT-moodissa viestin lähetys on yksinkertaisempaa kuin PDU-moodissa. TEXT-moodissa viestinä lähetystä olen käsitellyt jo aikaisemmin.  PDU vaatii enemmän koodia viestin lähetystä varten kuin TEXT-moodi.

Sony-ericson on julkaissut paperin PDU:sta. Puran paperista pääasiat tähän Suomeksi, mutta suosittelen lukemaan alkuperäisen artikkelin tarkempia tietoja varten. Luultavasti myös GSM-standardi on hyvää luettavaa tähän.
Ja tältä se PDU-moodin viesti näyttää lähetys vaiheessa: 07916407058099F911000A8170607896200000A71554747A0E4ACF416110945805B5CBF379F85C06
Selvää pässin lihaa eikö? 😀
Käydääs vähän tarkemmin tuota sitten lävitse. PDU on lyhenne sanoista Protocol Data Unit (tai myös Packet Data Unit) ja se koostuu kahdesta osasta, jotka ovat SCA (Service Central Adress) ja TPDU (Transport Protocol Data Unit).  Boldattu osa on SCA ja loppu on TDPU:ta.
Se siis koostuu heksadesimaali numero pareista, jotka esittävät aina tavun verran dataa.  Näitä pareja kutsutaan okteteiksi (octet). Oktetti ja tavu tarkoittavat samaa (8 bittiä dataa). Mahdollisesti historiallisista syistä niitä kuitenkin nimitetään erilailla. Ainoa ero on, että oktetti lähetetään ja tavu tallennetaan.
SCA on vain tekstiviestikeskuksen numero. SCA:n sijaan voidaan käyttää SIM-kortille tallennettua viestikeskusta, jos SCA korvataan “00” .
0011000A8170607896200000A71554747A0E4ACF416110945805B5CBF379F85C06
Oktettien lähetysjärjestys löytyy esimerkistä. Esimerkiksi, jos halutaan lähettää seuraavat heksat 03FFFFE0.  Muutetaan oktetit ensiksi binaarimuotoon ja aloitetaan lähetys alusta.
  • 03                    0000 0011
  • FF                    1111 1111
  • FF                    1111 1111
  • E0                    1110 0000

ja lähetetään, oikean puoleisin bitti on ensimmäinen lähetetty.

1110 0000 1111 1111 1111 1111 0000 0011

Puretaan seuraavaksi toi SCA okteteiksi ja niiden merkityksiin.

07916407058099F911000A8170607896200000A71554747A0E4ACF416110945805B5CBF379F85C06
  • 07       osoitekentän pituus oktetteina (tätä oktettia ei lasketa mukaan)
  • 91       numeron tyyppi, tässä tapauksessa kansainvälinen ISDN/puhelin numero
  • 64       numerot 46
  • 07       numerot 70
  • 05       numerot 50
  • 08       numerot 80
  • 99       numerot 99
  • F9       numero 9 ja täytemerkki “F”, jotta saadaan parillinen määrä numeroita.

Rakennellaanpa tässä samalla omaa esimerkkiä eikä vaan oteta samaa esimerkki kuin lähteessä. Elisan(Saunalahden) prepaidin viestikeskuksen numero on +358508771010 ja vastaava SCA 07 91 53 58 80 77 01 01. Tämä numero on parillinen, joten täytemerkkiä “F” ei tarvita. SCA on siis muodostettu laittamalla numerot pareiksi ja vaihtamalla parien numerot päittäin.

07916407058099F911000A8170607896200000A71554747A0E4ACF416110945805B5CBF379F85C06

Viestikeskuksen osoitteen jälkeiset 3 oktettia kertovat esimerkiksi mihin suuntaan viesti on menossa ja kuinka kauan sitä yritetään lähettää vastaanottajalle.

seuraava oktetti, arvoltaan 11, tarkoittaa lyhyesti sanottuna, että olemme lähettämässä tekstiviestiä ja kertoo viestikeskukselle miten käsitellä myöhemmin lähetettävää viestin voimassa olo oktettia. (oktetin binääri kentät: TP-MTI viestin tyyppi, TP-RD duplikaattien esto, TP-VPF viestin voimassa olo viestin muoto, TP-SSR status reportti, TP-UHD user dataheader ja  TP-RP vastaus reitti.)

Seuraava oktetti TP-MR, arvoltaan 00, voidaan periaatteessa laittaa miksi tahansa välillä 0-255(muutettuna heksadesimaaliksi), mutta molemmissa esimerkeissä jätetään tämä arvoon 00.

Seuraavaksi päästään käsittelemään vastaanottajan numeroa

07916407058099F911000A8170607896200000A71554747A0E4ACF416110945805B5CBF379F85C06

 

0A 81 70 60 78 96 20 Tämä kenttä on muuten samanlainen kuin SCA, mutta sen sijaan, että numeron pituus laskettaisiin oktetteina, se lasketaan ihan suoraan numeroina.

  • 0A tarkoittaa siis, että numerossa on 10 numeroa.
  • 81 tarkoittaa numeron muotoa (tässä kansallinen muoto)
  • loput ovat puhelin numero, tässä 07 06 87 69 02 (070-6876902)

Koska numeroita on parillinen määrä niin täytemerkkiä ei tarvita.

ja tehdään taas omaa

numero mihin halutaan lähettää on +35840 537 3212, pareina 35 84 05 37 32 12 ja käännettynä 53 48 50 73 23 21 ja koko vastaaanottajan kenttä 0C91534850732321. Tähän menessä siis ollaan rakennettu seuraava pätkä.

079153588077010111000C91534850732321

Seuraava oktetti (TP-PID, protocol identifier) mahdollistaisi esimerkiksi tekstiviestin toimittamisen sähköpostiin, mutta tässä pitäydytään arvossa 00 ja mobiililaitteiden välisessä viestinnässä.  (Tarkempaa tietotoa GSM 03.40 spesifikaatiosta.)

Seuraava oktetti (TP-DCS) kertoo monen näköistä. Sillä voidaan esimerkiksi kertoa, että lähetetään 8-bittistä dataa GSM-standardin normaalin 7-bittisen sijaan. Tarkempia tietoja kannattaa etsiä GSM spesifikaatiosta 03.38 ja alkuperäisestä artikkelista. Molemmissa esimerkeissä päädytään arvoon 00.

Seuraava oktetti (TP-VP) kertoo kuinka kauan viestiä yritetään lähettää. Tähän vaikuttaa myöskin aikaisempi TP-VPF. Molemmissa esimerkeissä käytettään arvoa A7 (eli viestiä yritetään lähettää 12h+12h=24h)

Seuraava oktetti TP-UDL kertoo kuin pitkästi viestiä on tulossa. Jos käytössä on normaali GSM-merkistö tämä kertoo merkkien määrän, jos käytössä on 8-bittinen tai muuten oktetteina esitetty data tämä kertoo oktettien määrän. Aikaisemmin määriteltiin jo TP-DCS kohdassa, että käytetään SMS luokkaa. jossa on normaali GSM aakkosto. Ja tosiaan 15hex= 21dec ja meillä on 21 merkkiä viestissä.

Ja omassa esimerkissä on taasen vastaavasti 0Bhex =11dec

Katsotaan sitten oman esimerkin avulla miten viesti koodataan lähetystä varten.  Otetaan esimerkiksi vaikka huudahdus “Hoo ka hei!”

Ensimmäiseksi kaivetaan esille mitä mikäkin kirjain on GSM spesifikaation mukaan. Perus gsm merkistö on 7-bittinen, mutta ne kuitenkin lähetetään 8-bitin muodossa.

  • H    1001000
  • o     1101111
  • o     1101111
  •         0100000
  • k     1101011
  • a     1100001
  •         0100000
  • h     1101000
  • e     1100101
  • !      0100001

Tämän jälkeen vain kasataan bitit yhteen pötköön ja muutetaan  ne 8-bit pätkissä heksadesimaali muotoon. Taulukko ehkä selventää.  Taulukkoon on vasemmalle alas lisätty nollia täyttömerkeiksi. Käytännössä siis lähetetään tässä tapauksessa ensimmäiseksi merkki “H” ja sen jälkeen “o” jne.

7 6 5 4 3 2 1 0 heksa
1 1 0 0 1 0 0 0 C8 H o o k a h e i !
1 1 1 1 0 1 1 1 F7
0 0 0 1 1 0 1 1 1B
1 0 1 1 0 1 0 0 B4
0 0 0 0 1 1 1 0 0E
1 0 0 0 0 0 1 1 83
1 1 0 1 0 0 0 0 D0
1 1 1 0 0 1 0 1 E5
0 1 1 1 0 1 0 0 74
0 0 0 0 1 0 0 0 08

 

Ja lopullinen oma esimerkki PDU:sta on seuraava 079153588077010111000C915348507323210000A70BC8F71BB40E83D0E57408

Joka siis lähettää viestin “Hoo ka hei!” käyttäen PDU-moodia ja Saunalahden prepaid viestikeskusta minulle. Vastaava lähetys käyttäen SIM-kortin viestikeskusta olisi.

0011000C915348507323210000A70BC8F71BB40E83D0E57408

Mitä se Sony Ericsonin esimerkki sitten lähettää?

07916407058099F911000A8170607896200000A71554747A0E4ACF416110945805B5CBF379F85C06

No vähän pitemmän viestin “This is a PDU message”

Vaikka omaan projektiin löytyisikin kirjastoja, joilla viestin saisi koodattua PDU muotoon lennossakin taidan tyytyä koodaamaan viestit valmiiksi ja lähettää pelkkiä vakio viestejä. Katsotaan miten tämä tästä sitten eteen päin kehittyy.

Lupailin otsikossa, että tässä kirjoituksessa käsitellään viestin vastaanottamistakin. No periaatteessa sekin on käsitelty jo aikaisemmassa sepustuksessa. Laitetaan kuitenkin esille video aiheesta, ettei ihan valehdella otsikossa.

 

 

 

Netistä löytyy PDU laskimia kumpaankin suuntaa useitakin. Minä olen käyttänyt dekoodaukseen diafaan.comin laskuria ja enkoodaukseen useampaakin nettisivua.

Sony Ericksonin paperi on vuodelta 2003, mutta mitä ilmeisemminkin se on edelleen ihan kuranttia kamaa, uusimpia muutoksia siinä ei tietenkään ole, mutta näkyyhän toi toimivan edelleen.

 

 

 

 

.

ISO 11786

Eteen tupsahti projekti, jossa joutuu ottamaan traktorin ajonopeus  ja ulosoton nopeussignaalin ISO 11786 standardin mukaisesta liittimestä. En kuitenkaan viitti maksaa standardista (ainakaan vielä) ja muualtakaan sitä en ole vielä löytänyt. Joudun siis etsimään netistä keskustelu palstoilta tms. tietoa missä mennään.

DIN 9684.1 on ainakin hyvin lähellä ISO 11786 standardia ja siitä löytyy huomattavasti enemmän tietoa.

Useammasta lähteestä löytyy pinni järjestys liittimeen.

  1. Nopeus 130 pulssia/metri (tutka)
  2. Nopeus 130 pulssia/metri (teoreettinen/renkaasta mitattu)
  3. Ulosoton nopeus 6 tai 40 pulssia/kierros
  4. Rear 3-pt position in-work/out-of-work (<=1,5v =on, 6,3v>=off)
  5. nostovarsien asento 0-10v
  6. +12V (max 5A)
  7. GND

(lähde)

Ilmeisesti pulssit ovat LOW <1,5v ja HIGH ≈ 6v. (lähde) Kuva on itse asiassa DIN- standardista ja Mynchenin teknisestä yliopistosta. Jostain muistelen lukeneeni, että maksimi virta on luokkaa 30mA, mutten nyt enää löytänyt mistä tiedon luin.

DIN on siis Saksan stadardi ja ISO on  kansainvälinen. Tartteis joko oikeasti hommata toi standardi tai käydä mittilöimässä oskilloskoopin kanssa mitä liittimestä tulee ulos.  Ulosoton pulssimäärästä löytyy kahta tietoa 6 tai 40 pulssia kierros.  Sinällään 6 pulssia/kierros kuulostaisi fiksummalta, koska silloin rpm on suoraan pulssien taajuus kerrottuna kymmenellä (tai nolla lisää perään).

540 rpm * 6 pulssia/kierros = 3240 pulssia/minuutti

\frac {3240 pulssia/minuutti}{60 s}=54 pulssia/s=54Hz

 

SIM908 modulin liittäminen muuhun maailmaan

Ostin kilkkeen, jossa on samassa GSM ja GPS palikat. Moduli perustuu simcomin sim908 palikkaan.  LIevähkö yllätys tuli siinä vaiheessa, kun minulle selvisi, että modulia ohjataan AT käskyillä. Olen tässä vuosien varrella muutamia kertoja törmännyt sivulauseessa kyseisiin komentoihin, mutta edellisen kerran minä niitä varsinaisesti olen käyttänyt viimeksi suunnilleen 90-luvulla, kun leikin modeemilla.  Ensimmäiset muistikuvat AT-käskyistä on jo 80-luvulta. Äidillä oli työ käytössä silloin “tyhmä pääte” ja sen yhteys maatalouden laskentakeskuksen koneeseen avattiin ja lopetettiin AT-käskyillä.  Yritin netistä löytää kuvaa kapistuksesta, mutten kunnollista löytänyt. Ainut kuva missä pääte edes oli, oli historiikki kuva ja siitä ei juuri päätteestä selvää saa.

Tarkoituksena siis tieto kulkemaan molempiin suuntaan moduulista sekä tekstiviestillä, että netin yli.  Alunperin suunnittelin, että moduli itsessään toimisi webbi serverinä, mutta erinäisistä syistä johtuen päädyin käyttämään apuna erillistä webbiserveriä. Suurin syy on se, että pääsen ehkä helpommalla koodauksen kanssa näin. Muita syitä on mm. se että mobiilissa palikan IP numero vaihtelee. Tämä ainakin on siis tällä hetkellä suunnitelma.

Simcom kertoo kyllä kiltisti kaikki AT-käskyt ja vastaukset niihin, mutta kaikistellen ei mitenkään selitä mitä tarvitaan mihinkin. Yllättäviä vaikeuksi aihuetti myöskin se etten heti tajunnut, että AT käskyissä on useampaa versiota ja modulissa on varsinaisia AT-käskyjä että simcomin omia AT-käskyjä. Varsinkin nettipuolen  yhteys oli aluksi sen takia täysin mahdoton idea. Varsinkin nettipuolen toiminnnan kannalta nettisivut olivat todella hyvää luettavaa. Kuten myöskin cooking hackingin sivut auttoivat valtavasti, mutta myös aiheuttivat harmaita hiuksia virheellisen GPS-koordinaattien muunnoksen takia. Heidän koodin mukaisella sijannilla asun Suomenlinnassa.

Katsotaan sitten miten moduli tottelee AT käskyjä. Aloitetaan ihan yleisillä jutuilla ja mennään sitten aluksi tarkemmin tekstiviesteihin ja sen jälkeen netti datasiirtoon.

AT käskyjen yleinen muoto on AT+KÄSKY. Moduli yleisin vastaus OK tai error, lisäksi tulee riipuen käskystä muutakin. Moduli on kytkettävissä suoraan arduinon TX ja RX pinneihin. Kokeilu vaiheessa käytin myöskin USB to TTL muunninta, joka toimi itse asiassa paremmin kuin arduino. Arduinon software serial kirjasto ei minun kokeiluissa toiminut luotettavasti ja muutenkin lienee parempi tehdä homma suoraan hardware TX/RX linjoihin, koska lopullisessa käyttökohteessa moduli tulee nimenomaan hardware serial linjaan kiinni.

Modulin kytkennän ja toiminnan voi varmistaa käskyllä AT, vastauksen pitäis olla OK.

AT+CPIN? Kertoo SIM-kortin PIN koodin tilanteen.  “+CPIN: READY” kertoo, että PIN koodi on ok ja “+CPIN: SIM PIN” taasen, että PIN koodia ei ole annettu. AT+CPIN=1234 lähettään PIN-koodin.

AT+CREG? kertoo, kun moduli on kiinni verkossa.  “+CREG: 0,1” kertoo, että ollaan kiinni kotiverkossa. Jälkimmäinen numero kertoo verkossa kiinni olemisen tilanteen.

0 Not registered, MT is not currently searching a new operator to register to

1 Registered, home network

2 Not registered, but MT is currently searching a new

operator to register to

3 Registration denied

4 Unknown

5 Registered, roaming

AT+CMGF=1 Asettaa modulin teksti moodiin, AT+CMGF=0 asettaa PDU moodin (binääri).  Minä olen käyttänyt teksti moodia.

AT+CMGS=”0401234567″ Lähettää puhelinnumeron modulille ja moduli vastaa “>” merkillä. Sen jälkeen lähetetään itse tekstiviesti ja perään CTRL-Z (eli lopetus koodi) 0x1A heksakoodina.

Ja siinä se! tekstiviesti lähti maailmalle. Modulista löytyy monta IMG_20151021_185729käskyä joilla voidaan tekstiviestejä käsitellä mm. tallentaa odottamaan lähetystä.  Ilmeisesti viesti ei ihan normaali muodossa lähde oletus arvoilla, koska se tulee vähän hassusti puhelimeen. Viesti pitää erikseen tallentaa puhelimessa.

Viestin lukemiseen modulista tarvitaan muutama komento lisää. Moduli laitetaan tekstimoodiin, jos se ei jo siinä ole (AT+CMGF=1)

AT+CPMS=”SM,”SM”,”SM” käskyllä asetetaan muisti. Tarkkaan en ole tutustunut käskyyn, mutta SM tarkoittaa SIM korttia ja käskyssä ensimmäinen SM on muisti joka käsittelee viestien lukemista ja poistamista, toinen SM on kirjoitus ja lähetys ja viimeinen on viestien vastaanotto. Tämä tarvitsee kyllä viellä tutkimista, että mikä on mikäkin.

AT+CMGR=1 Lukee ensimmäisessä muisti paikassa olevan viestin. Toisessa muisti paikassa olevan viestin voin lukea vaihtamalla numeron 1 numeroksi 2

AT+CMGL=”ALL” Käskyllä saadaan listattua kaikki viestit muistista kerralla.

“REC UNREAD” Received unread messages
“REC READ” Received read messages
“STO UNSENT” Stored unsent messages
“STO SENT” Stored sent messages
“ALL” All message
Niin kuin jo aikaisemmin sanoin tekstiviestien käsittelyyn löytyy paljon enemmänkin käskyjä, mutta tässä on nyt aikalailla minini mitä tarvitaan.

Netin kautta yhdistämiseen löytyy useampikin vaihtoehtoinen tapa. Valitettavasti mistään ei selvästi tätä suoraan kerrottu, joten jouduin aika hyvän hetken taistelemaan, että sain yhteyden toimimaan.

Kokeillaans sitten miten saadaan netistä tietoa moduliin päin. Kun AT+CREG? kertoo, että ollaan kiinni verkossa yhteys voidaan aloittaa.

AT+SAPBR=3,1,”Contype”,”GPRS” Asettaa yhteystyypin GPRS moodiin.

AT+SAPBR=3,1,”APN”,”internet” Asettaa APN, tässä tapauksessa saunalahden käyttämä “internet”.  LIsäksi tarvittaessa voidaan asettaa käyttäjätunnus ja salasana. Saunalahden yhteydessä niitä ei tarvita (eikä ilmeisesti muissakaan suurilla Suomalaisilla operaattoreilla)

AT+SAPBR =1,1 Käynnistää yhteyden.

AT+SAPBR=2,1 Kertoo yhteyden tilan mm. modulin IP numeron. Jos yhteydellä on IP numero voimme jatkaa, muuten kokeillaan uudestaan.

AT+HTTPINIT Aloittaa HTTP yhteyden muodostamisen.

AT+HTTPPARA=”CID”,1 Asettaa yhteyden profiilin numeron (bearer profile identifier). CID on yksi niitä juttuja joista ei älyttömästi kerrota mikä se on.

AT+HTTPPARA=”URL”,”http://rahikkala.net/robots.txt”  Asettaa kohde URL:n.

AT+HTTPACTION=0 Aloittaa HTTP GET yhteyden. vastaus “+HTTPACTION:0,200,87 ” kertoo onnistuneen yhteyden.  0 kertoo että käytetään GET metodia, 200 kertoo onnistuneesta yhteydestä, ja 87 kertoo kuinka monta tavua on noudettu.

AT+HTTPREAD hakee serverin vastauksen.

 

Modulista maailmalle päin voidaan dataa saada useammallakin tavalla liikenteeseen. Itse taidan käyttää GET metodia, joka on helpompi. Periaatteessa eroa netistä tiedon hakuun on vain se, että serverillä on sopiva vaikkapa PHP-koodi joka otta vastaan tiedon. GET metodissa tieto on URL:ssä. URL-osoitteessa on “?” merkki jonka jälkeen data tulee.  Cooking hacksin sivuilla on hyvä esimerkki tästä ja sieltä myös löytyy esimerkki sopivasta PHP-koodista.

Tämä on vain pinta raapaisu miten SIM908 voidaan liittää muuhun maailmaan, jätän ihan tarkoituksella monia asioita selittämättä, suurimmaksi osaksi ihan siksi, etten itsekään vielä tiedä. Valmiista laitteesta tulee vielä tarkemmin juttua, mutta se voi hyvinkin mennä tulevalle vuodelle.  SIM908 dokumentaation periaatteessa hyvä, mutta käytännössä se vaatii melkeinpä kokeilemalla kokeilemaan miten mikäkin toimii. Onneksi internetistä löytyy tietoa aika paljonkin. Erillaisia kirjastoja olisi ollut vaikka kuinka paljon valmiiksikin kirjoitettuna, mutta en halunnut käyttää niitä tässä.

 

Ps. Vaikka useimpien lauseiden aikamuodosta voisi päätellä muuta, en ole vielä oikeastaan edes aloittanut koodin kirjoittamista, mutta kaikki mainitut käskyt on kuitenkin testattu ja toimivaksi todettu.