Jump to content

Mitt Raspberry Pi-prosjekt: SMS, GPS og sensorer


Popeye70

Recommended Posts

Bakgrunn

Inspirert av andre Båtplassen-brukere som har briljert med sine Raspberry Pi-prosjekter bestilte jeg før jul en Raspberry Pi (heretter RPi) til meg selv for å leke litt. Målet var (er?) å se om den kunne brukes den til kartplotter i båten og også se om jeg fikk til å sende SMS fra den så den kunne sende meg informasjon ved behov.

 

Håpet er å bruke denne tråden for å dokumentere fremgangen underveis. Jeg har ikke noe håp om å konkurrere med Octant, men fordi vi ikke har valgt det samme utstyret som han er det mulig andre kan få hjelp eller hjelpe meg underveis som dette skrider frem.

 

Utstyr

I utgangspunktet bestilte jeg bare et Raspberry Pi Starter Kit fra MPX (http://www.mpx.no/raspberry-pi-model-b-rev-2-starter-kit/774255), og så installerte jeg en preview av Kano OS (http://www.kano.me/). Jeg har støttet Kano-prosjektet og har tilgang på deres programvare, men Kano OS var ikke noe å satse på for dette prosjektet.

 

OK, det første jeg ville teste var å sende SMS. Jeg bestilte derfor inn to Huawei E173 USB-baserte GSM-modemer via eBay (http://www.ebay.com/itm/New-Unlocked-Huawei-E173-HSDPA-7-2Mbps-GSM-3G-USB-Wireless-Modem-/310406038223?ssPageName=ADME:L:OC:US:3160). Disse pinnene har både GSM-modem og en microSD-kontakt så man kan installere et ekstra minnekort hvis man trenger mer lagringsplass.

 

Fordi GSM-modemet suger endel strøm fra USB-porten kjøpte jeg en PiHub (http://shop.pimoroni.com/products/pihub). Dette er en USB-hub som har 3000mA strøm på deling mellom portene, så den kan drive enheter som RPi ikke klarer å drive alene. Den er også skreddersydd for RPi, så den kan både gi strøm til RPi og la RPi bruke den for å koble flere enheter til RPI'en. Noen USB-huber takler ikke at en RPi er koblet til i "loop", dvs at RPi både henter strøm fra PiHub via én port og kommuniserer med de andre USB-enhetene via en annen port (to kabler mellom RPi og PiHub). Jeg har tegnet et kontantkort-abonnement hos OneCall - det var det billigste jeg fant sånn i farta, og jeg kunne hente kortet på Narvesen eller 7-11 etter bare en times tid.

 

Etterhvert vil jeg også teste ut den USB-baserte GPS-pinnen min - en GlobalSat ND-100S GPS Dongle (http://www.usglobalsat.com/p-590-nd-100s.aspx). Foreløpig er den testet med en vanlig PC med Windows 7 og OpenCPN, og den skal også fungere på Linux og Android.

 

Jeg har også en USB-dings fra Clas Ohlson som logger temperatur og luftfuktighet (http://www.clasohlson.com/no/Temperatur--og-fuktlogger/36-4208-1). I utgangspunktet logger den til internminne på pinnen, og så bruker man et Windows-basert program for å lese ut historiske data i ettertid, men jeg håper det er mulig å hente ut noe i sanntid (f.eks. med 5 minutters mellomrom).

 

Helt til slutt ser jeg også etter andre sensorer for tilkobling direkte på RPi'ens kretskort (dvs ikke via USB). Det gjenstår å se hva det blir. Foreløpig er det snakk om å få de nevnte USB-dingsene til å fungere.

SY Almara - 2005-modell Dufour 385 GL

Link to post

Tema: Installasjon og konfigurasjon av Huawei E173 GSM-modem for å sende SMS fra RPi.

 

1
Via http://www.raspberrypi.org/downloads lastet jeg ned NOOBS og installerte standard Raspian på SD-kortet mitt. Beskrivelse av det du trenger finnes på nevnte adresse.

2
Etter første gangs oppstart opprettet jeg en egen bruker for meg (liker å ha min egen bruker):
adduser MinBruker (legger til brukeren)
passwd MinBruker (setter nytt passord)
sudo cp -a /home/pi /home/MinBruker
sudo chown -R MinBruker:MinBruker /home/MinBruker

Dette er bare en "greie" jeg har, så miljøet blir mest mulig likt på denne enheten som de andre Linux-boksene jeg bruker.

3
Deretter installerte jeg gammu, som er en programvarepakke som lar meg kommunisere med et GSM-moden og sende SMS.
$ sudo apt-get install gammu
(det installeres samtidig endel ekstra pakker pga dependencies/avhengigheter)

4
Jeg installerte også et par tilleggspakker, som strengt tatt ikke er nødvendige:
$ sudo apt-get install gammu-doc wammu
(det installeres samtidig endel ekstra pakker pga dependencies/avhengigheter)

5
Plugg inn USB-modem med SIM-kort på plass. Jeg har et Huawei E173

6
Restart din RPi så denne scanner etter maskinvare og oppdager GSM-modemet.

7
Logg inn på din RPi med valgt bruker. Bytt til root-bruker for å få satt opp alt uten å måtte kjøre sudo hele tiden:
$sudo su -
Merk: Etter å ha byttet til root-bruker endrer kommandopromptet seg fra "MinBruker@raspberrypi ~$ " til "root@raspberrypi:/home# ". Den viktigste forskjellen er siste tegn i promptet - #. Dette tegnet indikerer at du er root.

8
Hva sier "dmesg"? Ble GSM-modemet funnet ved oppstart?
# dmesg | grep tty
[ 0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=1872 bcm2708_fb.fbheight=1168 bcm2708.boardrev=0xe bcm2708.serial=0xb3cf95db smsc95xx.macaddr=B8:27:EB:CF:95:DB sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait
[ 0.000000] console [tty1] enabled
[ 0.530054] dev:f1: ttyAMA0 at MMIO 0x20201000 (irq = 83) is a PL011 rev3
[ 0.872363] console [ttyAMA0] enabled
[ 15.580525] usb 1-1.3.4: GSM modem (1-port) converter now attached to ttyUSB0
[ 16.001385] usb 1-1.3.4: GSM modem (1-port) converter now attached to ttyUSB1
[ 16.290602] usb 1-1.3.4: GSM modem (1-port) converter now attached to ttyUSB2

Joda, dmesg viser også at GSM-modemet ble funnet ved boot, og at det har tre tilgjengelig porter (ttyUSB0, ttyUSB1 og ttyUSB2)

9
Sjekk om gammu også finner GSM-modemet ditt. Det er ikke mye hjelp i at Linux finner GSM-modemet hvis ikke gammu gjør det. Da er du like langt. Kjør kommandoen "gammu-detect":
# gammu-detect
; Configuration file generated by gammu-detect.
; Please check The Gammu Manual for more information.

[gammu]
device = /dev/ttyUSB0
name = Phone on USB serial port HUAWEI_Technology HUAWEI_Mobile
connection = at

[gammu1]
device = /dev/ttyUSB1
name = Phone on USB serial port HUAWEI_Technology HUAWEI_Mobile
connection = at

[gammu2]
device = /dev/ttyUSB2
name = Phone on USB serial port HUAWEI_Technology HUAWEI_Mobile
connection = at

opening socket: No such device


Ikke bry deg om feilmeldingen nederst - det viktigste er at GSM-modemet ble funnet.

10
Bruk kommandoen "gammu-config" for å konfigurere gammu-oppsettet. Du må f.eks. velge hvilket av de 3 oppdagede GSM-portene som skal benyttes:
# gammu-config

Du skal nå få opp et grensesnitt for å konfigurere gammu-programvaren:
ââââââââââââââââââââââââââââââââââââââââââââââââ
â Current Gammu configuration â
â â
â P Port (/dev/ttyUSB0) â
â C Connection (at19200) â
â M Model () â

â D Synchronize time (yes) â
â F Log file (/var/log/messages) â
â O Log format (nothing) â
â L Use locking () â
â G Gammu localisation () â
â H Help â
â S Save â
â â
â â
â <Ok> <Cancel> â
â â
ââââââââââââââââââââââââââââââââââââââââââââââââ

Begynn med "Port" og velg først at du vil bruke "/dev/ttyUSB0".
Deretter velger du "Save" for å lagre inntillingen.
Det er mulig du må bekrefte lagring. Gjør i så fall det.

11
Etter at du har lagret kjører du kommandoen "gammu --identify" for å se om du valgte korrekt port, og at gammu klarer å hente ut informasjon fra SIM-kortet ditt. Dette skal i så fall ligne på dette:
# gammu --identify
Device : /dev/ttyUSB0
Manufacturer : Huawei
Model : E173 (E173)
Firmware : 11.126.15.02.00
IMEI : xxxxxxxxxxxxxxx (anonymisert av åpenbare årsaker)
SIM IMSI : xxxxxxxxxxxxxxx (anonymisert av åpenbare årsaker)

Hos meg fant gammu SIM-kortet på første forsøk, på port "/dev/ttyUSB0". Jeg har sett andre rapportere at det kan variere hvilken port som er korrekt. Det kan også variere med hvilken USB-port du bruker på din RPi (eller på tilkoblet USB-hub). Hvis gammu ikke finner SIM-kortet og viser inforomasjon om dette så repeterer du punkt 10 og velger port "/dev/ttyUSB1" før du fortsetter med punkt 11. Får du heller ikke nå noe resultat repeterer du punkt 10 og velger port "/dev/ttyUSB2".

12
Sett SIM-kortets PIN-kode:
gammu --entersecuritycode PIN 9999 (erstatt 9999 med din PIN-kode)
(Merk: Du får ingen tilbakemelding når kommandoen er ferdig.)

13
Prøv å sende en SMS, med gammu sin kommandolinje:
# echo "Testmelding fra RPi, sendt via gammu" | gammu --sendsms TEXT xxxyyzzz (erstatt xxxyyzzz med riktig telefonnummer)
If you want break, press Ctrl+C...
Sending SMS 1/1....waiting for network answer..OK, message reference=-1

Meldingen er sendt, det er bare å vente...

14
Hurra! Meldingen kom fram:
a4eda6ym.jpg

 

Konklusjon så langt: Dette gikk overraskende lett! Jeg googlet noen veiledninger, tenkte gjennom prosessen et par ganger og prøvde meg.

 

Største tabbe: Etter å ha kjøpt inn og aktivert kontantkort glemte jeg å fylle penger på kortet, så første forsøk på å sende SMS gikk naturlig nok ikke - det var ikke dekning på kortet. Feilmeldingen var intentsigende, men etter å ha logget på OneCall for å se om jeg kunne se noe på MinSide så oppdaget jeg raskt at saldoen på SIM-kortet var 0,-. Ett minutt senere var det fylt på 100,- og da gikk neste SMS gjennom med en gang. :thumbsup:

Edited by Popeye70 (see edit history)

SY Almara - 2005-modell Dufour 385 GL

Link to post

Tema: Koble til GPS-dongle. Vil RPi oppdage den?

 

1

Plugget inn GPS receiver i ledig port på min PiHub. Den fikk strøm, så da er det bare å se hva RPi sier...

 

2
Sjekket siste 20 linter i loggen (/var/log/messages) om noe ble oppdaget:
# tail -20 /var/log/messages

Joda, jeg fant følgende linjer:
Feb 7 23:18:13 raspberrypi kernel: [ 9701.726689] usb 1-1.3.2: new full-speed USB device number 7 using dwc_otg
Feb 7 23:18:13 raspberrypi kernel: [ 9701.832322] usb 1-1.3.2: New USB device found, idVendor=067b, idProduct=2303
Feb 7 23:18:13 raspberrypi kernel: [ 9701.832361] usb 1-1.3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Feb 7 23:18:13 raspberrypi kernel: [ 9701.832381] usb 1-1.3.2: Product: USB-Serial Controller D
Feb 7 23:18:13 raspberrypi kernel: [ 9701.832399] usb 1-1.3.2: Manufacturer: Prolific Technology Inc.
Feb 7 23:18:13 raspberrypi kernel: [ 9701.938148] usbcore: registered new interface driver pl2303
Feb 7 23:18:13 raspberrypi kernel: [ 9701.938347] usbserial: USB Serial support registered for pl2303
Feb 7 23:18:13 raspberrypi kernel: [ 9701.938486] pl2303 1-1.3.2:1.0: pl2303 converter detected
Feb 7 23:18:13 raspberrypi kernel: [ 9701.950444] usb 1-1.3.2: pl2303 converter now attached to ttyUSB3

Ergo ble GPS-receiveren registrert, og den kan adresseres som /dev/ttyUSB3. Så langt var dette VELDIG enkelt!

 

3
Installerer GPS-relaterte biblioteker og programmer:
apt-get install gpsd gpsd-clients python-gps
En liste med programvarepakker blir installert.

4

Så må programmet som kommuniserer med GPSen startes:
gpsd /dev/ttyUSB3 -F /var/run/gpsd.sock
Du får ingen tilbakemelding på denne kommandoen hvis alt gikk ok.

 

5

Da er det vel på tide å se om det er mulig å lese noe ut fra GPS'en? Klarer jeg å lese ut noe fornuftig informasjon?
# cgps -s
Følgende informasjon vises hos meg:
┌───────────────────────────────────────────┐┌─────────────────────────────────┐
│ Time: 2009-02-15T00:34:07.070Z ││PRN: Elev: Azim: SNR: Used: │
│ Latitude: n/a ││ │
│ Longitude: n/a ││ │
│ Altitude: n/a ││ │
│ Speed: n/a ││ │
│ Heading: n/a ││ │
│ Climb: n/a ││ │
│ Status: NO FIX (43 secs) ││ │
│ Longitude Err: n/a ││ │
│ Latitude Err: n/a ││ │
│ Altitude Err: n/a ││ │
│ Course Err: n/a ││ │
│ Speed Err: n/a ││ │
│ Time offset: 157159109.815 ││ │
│ Grid Square: n/a ││ │
└───────────────────────────────────────────┘└─────────────────────────────────┘

Grunnen til at jeg ikke får opp noe mer informasjon er fordi RPi'en og dermed GPSen ligger så langt inn i stua at GPS'en ikke får fix på noen satelitter. Jeg må flytte på utstyret i morgen og se om jeg får bedre resultat da...

Edited by Popeye70 (see edit history)

SY Almara - 2005-modell Dufour 385 GL

Link to post

Hva slags software skal du kjøre som kartplotter? Interessant og sjekke ut denne muligheten selv. Sikker knallgod og bruke til litt overvåkning også, slik at den kan sende deg en sms om den merker inntrengere.

Link to post

Planen er å teste OpenCPN hvis jeg velger å bruke Raspberry'en til dette. Hører at noen sier den er for treg, så jeg er litt usikker.

 

Fokus nå er sensorer, mottak og sending av sms og kanskje kamerafunksjon. :-)

SY Almara - 2005-modell Dufour 385 GL

Link to post

Hva med en trykkfølsom skjerm til dette ?

Shetland family four, mercury 135.

Uttern C 56, mercury 50.

Fibrafort style 215, mercury 150/ Yamaha 200 hpdi / Suzuki 115

Sea Ray 240 Sundanser, mercruiser 5,0 MPI

Link to post

Trykkfølsom skjerm er på ønskelista, men enn så lenge har jeg ikke funnet noe som passer. Slik jeg ser det står det mellom to typer:

  1. En liten skjerm (3-5 tommer) som kun skal ha et "kommandogrensesnitt" hvor jeg kan trykke på noen predefinerte valg på skjermen for å få sendt en SMS med aktuell info. Altså ikke bruke skjermen til å lese av, kun be om å få tilsendt info.
  2. En skjerm som kan brukes både til input og output, men jeg har ikke funnet noe som jeg synes passer. Vil gjerne ha ca. 10-12 tommer for å kunne lese ut info via skjermen uten at denne blir for stor. Problemet er at de skjermene jeg har sett enten har for dårlig oppløsning eller alt for høy pris.

Dessverre er ikke jeg noen stor programmerer - jeg har mange års erfaring med scripting og automatisering fra min driftsbakgrunn, men er ikke spesielt god på tradisjonell programmering av applikasjoner og brukergrensesnitt. Det enkleste er vel derfor å gå for #2 og bruke skjermen som en vanlig skjerm med touchfunksjonalitet som en bonus jeg kanskje får brukt etterhvert.

SY Almara - 2005-modell Dufour 385 GL

Link to post
  • 4 weeks later...

Det er flere som har koblet til temperatursensor på sine RPi'er. Har ikke testet det selv, dog, og jeg vet ikke om disse sensorene takler den varmen som jeg antar man får i en tempsensor for eksos. Den ene sensoren jeg har kikket litt på og som jeg fremdeles husker techspec på taklet inntil ca. 125 grader C.

SY Almara - 2005-modell Dufour 385 GL

Link to post
  • 4 months later...
Guest Kaptein Fredrik

Jeg bruker omtrent bare Dallas sin DS18B20 sensorer når jeg skal måle temp. Den bygger på det kjente one-wire prinsippet og har en seriell digital dataoverføring. Den tåler bare 125*C, men om man skal over det nivåest så finnes det naturligvis sensorer for slikt.

Link to post

Hvorfor ikke måle eksos temp etter innførsel av kjølevannet. Da vet man at man har kjøling også?

 

Nå er vi i ferd med å forlate hva denne tråden handler om, men for å svare kort:

 

Det ville være fullt mulig å måle temperaturen etter retur av kjølevannet inn i eksosen. Imidlertid tror jeg at for de fleste som ønsker å måle eksostemperaturen, er det for å holde en oversikt over belastningen på motoren. I en dobbel motor installasjon, er måling av eksostemperaturen en fin måte å synkronisere belastningen på motorene, noe som ikke kan gjøres hvis en måling blir foretatt etter at retur av kjølevannet.

Link to post

Create an account or sign in to comment

For Norwegians: Hvis du leser dette så er engelsk forumspråk aktivt, du kan endre dette til norsk med "System Language" knappen nederst på alle sider

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...