Gå til innhold

Styring av Arduino med bruk av SIM900


Anbefalte innlegg

Hei, koden varierer litt nå på grunn av testing.

Jeg tester en og en del av koder og tester noen teorier før jeg setter det sammen til en kode.

 

Prosjektet går ut på GPS tracking av hund, men muligheter til andre oppgaver også.

Spenningsmålingen er for at programmet kan se at spenningen på halsbandet blir for lavt og gir deg beskjed via sms, du kan og spørre etter batteri spenningen via sms.

SD kortet er et alternativ for de som ønsker å bruke halsbandet til tur logging og ikke kun gps tracking av hunden. Den kan og f.eks få i oppgave og logge hundens prosisjon hver time, en gang om dagen osv.

 

 

Utstyr i bruk nå:

SIM900 skaffet jeg fra ebay - SIM900 GSM

GPS enheten skaffet jeg fra adafruit - Ultimate GPS

SD kort enheten skaffet jeg fra adafruit - MicroSD

Alt er styrt via:

Arduino Mega2560 - Mega2560

eller

Arduino DUE - DUE

 

Jeg valgte disse komponentene på grunn av pris og god levering. Adafruit er ganske rask og veldig hjelpsome så det er vert å ta en titt der.

 

 

Driver fortsatt med tester og for å få litt valg muligheter ser det ut som jeg kommer til å bruke DUE kortet på grunn av multitaskingen.

Skal også endre mye av kodingen som sitter i SRAM til å bli flyttet over til Flash, dette er for å spare plass på SRAM som jeg trenger.

Hei igjen

 

Takker så mye for hintet for alternativ for hvor jeg kan skaffe SIM900-shield'et og DUE kortet skal også anskaffes, mest pga. DAC-funksjonalieten.

Har selv både et UNO kort og et Mega2560 + et ethernet-shield som jeg kjøpte i fjor en gang.

Desverre så har jeg ikke fått puslet så mye med dette enda, men fikk en ny giv når jeg kom over denne tråden.

 

Interessant prosjekt forresten. Håper du får det til.

 

Sceptic

Lenke til kommentar
Videoannonse
Annonse

Som Lycantrophe sier så hadde jeg gjort det på denne måten:



if (GPSLOG);
  {
   readGPS();
for denne:

 



if (GPSLOG = true);
  {
   readGPS();
vil alltid være sann, dvs. koden i denne if blokka vil alltid kjøres.

 



GPSLAG = true;
int GPSLOGDATA = 100000;
int count = 0;
GPSLAG ?

 

Sceptic

Endret av Sceptic
Lenke til kommentar

såg ut som

if (count == GPSLOGDATA) 
  {
  count = 0;
  GPSlog(); 
  }
  Serial.println(count);
  delay(10);
  count++;

Fungerte, den logger nå hver 60 sekunder

 

PS!. Serial.println(count); er kun tilstede slik at jeg kan se den telle. skal fjernes i slutt koden

Endret av Kimlorentz
Lenke til kommentar

ahh jeg skrev LAG en plass, derfor det ikke funka hehe..

Men fungerer nå helt fint.

Har også satt inn slik at viss du mottar sms som spør etter pos, leverer den pos, logger gps data og null stiller counter.

Blir ingen dobbel logging da viss mottatt sms og counter systemet ligger nært hverandre.

Endret av Kimlorentz
Lenke til kommentar

Når du nå sender pos melding får du følgende i retur

 

Tid UTC: 20:15:50

Dato: 31/08/2014

Fix: 1 GPS Kvalitet: 1

Antall satellitter: 9

Lokasjon: XXXX.XXXXN, XXXX.XXXXE - fjernet for å ikke vise min nåværende posisjon

Fart (km/t): 0.70

Retning: 340.98

Hoyde: 21.40

 

 

Har og gjort en liten ekstra ting. Hver gang du spør etter pos vil det legges til en text på ene gps log file som sier at pos sendt via sms. Jobber med å sette inn mobil nummer til den som spør etter pos.

 

Men så er det neste "snag" hvordan sende pos respons til sender av sms og ikke fast telefon å sende pos til. Noen som veit?

 

 

På grunn av jeg ikke veit hvordan å sette i æøå ble det byttet ut med ae, o, a.

Endret av Kimlorentz
Lenke til kommentar

Her er en liten oppsummerings av hvor langt jeg har kommet til nå.
* tegnet betyr at det vil ligge mer info lengre ned på denne kommentaren.

 

SIM900

  • SMS - Jeg kan sende og motta data via sms, men Arduinoen kan kun sende til et fast telefon nummer. Skal endres.
  • GNSS - Ikke satt opp men jobber med det*
  • MMS - Vert vurdert men i fleste tilfeller ikke nødvendig.
  • HTTP/FTP - Vert vurdert men vil kreve data trafikk og batteri strøm, lite/ingen bruk.

 

 

Adafruit Ultimate GPS

  • GPS Start og setup - Fullført
  • GPS Standby - Kode skrevet, ikke satt inn i drift
  • GPS Awake - Kode skrevet, ikke satt inn i drift
  • GPS NMEA logging - Flere kode utgaver skrevet, ikke fullført

 

 

Adafruit MicroSD

  • GPSlog - Logger spesial utgave for Excel, fullført
  • GPSRAW - Logger RAW GGA og RMC data til .txt fil, noe justeringer trengs
  • SD kort - Ser etter om SD kort er tilstede før utføring av logging, ikke fullført men fungerer viss SD kort er tilstede.**

 

 

*
GNSS - Global Navigation Satellite System
Denne ekstra funksjonen gir meg muligheter og finne ca. posisjon til det du tracker viss GPS modulen ikke går i fix.
Ulempen er at denne er ikke nøyaktig og krever en del data trafikk, noe som kan koste penger viss ditt simkort ikke har data trafikk avtale.

 

 

**
Når SD kort mangler stopper hele Arduinoen og du må restarte med SD kort montert inn for å få den i drift igjen.

 

 

 

Ekstra info GPS:
GPS standby er ganske nyttig funksjon viss du vil at batteri pakken du bruker skal leve så lenge som muligt, men viss du ikke bryr deg om dette kan du la GPS stå på og heller bruke sleep funksjonen.
Strøm trekket til GPS enheten er(MTK3339);

  • Aktiv = 20 til 35mA - avhengig om du står stille, signal styrke, om du har fix osv.
  • Sleep = 14mA
  • Standby = under 1mA - Må testes.

 

 

 

Ekstra info SIM900:
Den vil starte som aktiv, og viss ingen mottatt sms eller ordre via arduino går den i sleep og venter på ny sms.

  • Aktiv = 10mA
  • Sleep = 1.5mA
  • Sending av data = opp til 2Amp (dette er maks, og varer ett-to sekunder) - Må testes

Kun 2G/EDGE

 

Data overførings hastighet.
WCDMA

  • Max.384Kbps(Nedlastning)
  • Max.384Kbps(Opplastning)

EDGE

  • Max. 85.6Kbps(Nedlastning)
  • Max. 42.8Kbps(Opplastning)

 

Ekstra støtter info.

  • TCP/IP
  • FTP/HTTP/HTTPS/SMTP/POP3

 

 

Filens størrelse på Arduinoen er(Arduino Mega 2560):
11% of program storage space
31% of dynamic storage space - Skal endres
Endret av Kimlorentz
Lenke til kommentar
  • 2 måneder senere...

Lenge siden sist oppdatering nå. Vert mye opptatt med andre ting en prosjekter.

Til nå fungerer loggingen som den skal.

Kan også få GPS posisjon og batteri spenning på sms når jeg spør etter det.

Den har også blitt bra nøyaktig under testing, helt ned til 0.8 meter nøyaktighet.

 

Jeg sliter fortsatt litt med å forstå strings.

Til nå er alle ord delt opp i flere lag og det ser dumt ut.

Noen her som veit hvordan man lagrer en mottatt sms til en string eller buffer og så gjøre følgene:

  1. Lagre sms til string/buffer
  2. Finne mobilnr (lagre nr i egen buffer/string, remotenr) og ord ( f.eks password, led, pos, batt)
  3. utføre oppgave funnet i sms.
  4. Send resultat til mottatt mobil nr

For eksempel du mottar sms 1234 pos.

1234 = ditt passord

pos = at du ønsker gps posisjons data.

 

Jeg vil da at den ser at passordet er gyldig eller ikke,

  • viss passord er gyldig send pos data i retur
  • viss passord ikke er gyldig ignorer sms.
Endret av Kimlorentz
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...