WindWiz

En GSM-uppkopplad vindmätare

Månadsarkiv: januari 2011

Applikations API v2

I veckan har jag jobbat en del med att förbättra applikations gränssnittet mot tredjepartsprogram, t.ex. mobilappar. Det gamla JSON-gränsnittet som beskriv under Rådata-fliken på vindsajten kommer inom kort ersättas av det nya, men kommer tills vidare samköras. Tanken är att även vindsajten skall byta till detta gränssnitt, för att underlätta en eventuell flytt av vindsajt till annan server (databas och webbsida behöver ej ligga på samma server).
Än så länge finns inte mycket dokumentation för det nya API, men grundfilosofin är densamma som för det gamla. Nytt är bl a att all data numera även finns tillgängligt via XML, ett alternativ till JSON. Numera kan man även hämta gammal vinddata, t.ex. för plottning eller annan behandling. Just nu exporteras de senaste 40 mätpunkterna för varje station.

Crashcourse till API v2:

  1. Alla datafiler finns att plocka på http://vind.minimum.se/api/. Välj mellan index.json eller index.xml beroende på vilket format du föredrar.
  2. Index-filen innehåller en lista över alla aktiva stationer. Just nu finns Hammar-station Svetlana, plus en teststation. Varje station har ett id (tänk kortare namn) samt ett friendlyname, som är ett fullständigt namn (bör användas när stationen presenteras för användare).
  3. Mha stationsid kan man begära mer information genom http://vind.minimum.se/stationsid/. T.ex. kan man begära mer info om Svetlana via http://vind.minimum.se/api/Svetlana
  4. För varje station finns den senaste mätpunkten i latest.json (eller latest.xml).
  5. För varje station finns de 40 senaste mätpunkterna i history.json (eller history.json)
  6. För varje station finns mer information (ev. gps-koordinat, önskad uppdateringsfrekvens osv) i info.json (eller info.xml)
  7. T.ex når man senaste mätpunkten för Svetlana via http://vind.minimum.se/api/Svetlana/latest.json

Några detaljer att tänka på:

  • Vissa stationer kommer ha NULL-fält. T.ex. har Test-stationen ingen temperatur eller luftfuktighet, då är dessa satta till NULL. Om GPS-koordinat saknas kommer även dessa fält (lat, lon) vara NULL. Jag kommer beskriva vilka fält som kan tänkas vara NULL mer utförligt senare, men för tillfället är det bäst att alltid kolla efter NULL.
  • Använd varje stations pollrate-fält för att avgöra hur ofta din applikation skall koppla upp för att hämta ny data. Denna finns i varje stations info.json (info.xml) fil och beskriver antalet sekunder mellan varje uppdatering för given station.
  • Alla tidsstämplar (first_sample, last_sample, lastupdate) etc är UNIX timestamps. Dvs, antal sekunder sen 1970.
  • Test-stationen uppdateras ej aktivt och innehåller konstgjorda mätpunkter som är daterade till Augusti 2010. Detta är inget fel, använd för testning! 😉

Jag har även laddat upp winddb, applikationen som genererar alla dessa filer på GitHub. I dess README-fil kan man hitta ytterligare information, eller om man vill kika på koden för detaljer kring API (tills fullständig dokumentation kommer).

PS. Vindmätarbygget har också sett framgångar. Nytt GSM-modem ligger och vilar på skrivbordet i väntan på resten av leveransen. Förhoppningsvis anländer de nya delarna i nästa vecka och då kan jag återuppta arbetet. Tills dess kommer jag fortsätta arbeta med förbättringar av webbsidan. DS.
PS2. Note to self: Beställ inte grejer från Kina i närheten av Spring Festival. De verkar stänga ner hela landet i flera dagar, inkl posten. Min beställning registrerades 17:e Januari och trots att Spring festival inte infaller förrän 3:e Februari i år så har mitt paket precis kommit iväg, 12 DAGAR senare! DS.

Annonser

Arduino – The Documentary

För den som är nyfiken på elektronik och mikrokontrollers så är Arduino en utmärkt utgångspunkt. Jag har nämnt Arduino-plattformen flera gånger i bloggen men det kanske inte är helt uppenbart vad det är eller vad den kan användas till. Jag hittade en dokumentär om Arduino som ger en ganska varsam introduktion till konceptet och dessutom bjuder på en del intressanta detaljer. Visste du t.ex. att K3 i Malmö (Konst, Kultur & Kommunikation på Malmö Högskola) var med och supportade projektet redan bland de 200 första prototyperna? Sånt gillar vi, när Skåne visar framfötterna.

GSM Playground

2011 är här och det börjar bli lite brådis att få ihop vindmätaren om den skall vara användbar lagom till högsäsongen för skärmflyget. December har varit en rätt ineffektiv månad för vindmätaren, dock har det hunnits med en hel del julpyssel, ljuseldning och intag av kopiösa mängder kött. Men några nyheter har jag, några goda och några mindre goda.

Goda nyheter

  • Efter att ha löddat om hela designen på en labbplatta och med en ny spänningsregulator har jag hittills inte stött på några spontana omstarter som mätaren led av förra månaden. Troligtvis var det en kombination av dåligt bufferkondensatorval och en sönderkörd regulator. (SBS)
  • Man kan numera driva vindmätaren direkt från ett vägguttag med en vanlig 12V väggvårta, vilket underlättar utvecklingen eftersom jag inte är bunden till att sitta i mitt trista musiklösa labb 😉
  • Temperatursensor är på plats, modell DS18S20 från Texas Instruments. Än så länge finns ingen kod i programvaran för att läsa ut temperatur, men hårdvaran är på plats och lödad!

WindWiz på labbplatta (klicka för full storlek). Troligtvis inget tullen hade släppt igenom!

 

Mindre goda nyheter

GSM-modulen krånglar fortfarande och AT-kommandon blir då och då korrupta och misstolkade (se föregående inlägg). Allt tyder på ett timing-problem i någon riktning (eller båda). Jag är dessutom inte längre övertygad om att denna GSM-modul är användbar för detta projekt. Den är utformad på så vis att viss viktig funktionalitet ej går att utnyttja. Indiska Rhydolabz har valt att göra vissa pinnar otillgänliga via stiftlisten för enkelhetens skull. Detta medför dock att det är omöjligt att t.ex. aktivera energisparfunktioner, få indikationer på inkommande samtal och/eller sms m.m.

Jag har dessutom upptäckt att mjukvaran som kör inuti GSM-modulen är gammal. När man luskar i forum-trådar på the Internets upptäcker man snart att många har bekymmer med GPRS-funktionaliteten. Mjukvaran går att uppdatera men bara via pinnar som Rhydolabz valt att inte dra ut till stiftlisten och därför blir ohyggligt svåråtkomliga. För att uppgradera modulen krävs det därför att man löder loss hela GSM-chippet, vilket jag inte har de nödvändiga verktygen för här hemma.Manualen specar dessutom att modulen bara klarar reflow-processen en gång.

En annan funktion som är Rhydolabz reducerat bort (igen, för att minska komplexitet) är GSM-modulens inbyggda batteriladdare. Det skulle spara mycket komponenter (pengar) och designtid om man slipper konstruera en egen laddare.

På grund av ovan brister kommer jag med stor sannolikhet byta ut modulen mot en Telit GE-863 QUAD-modul. Denna verkar mer vältestad av communityn, är bättre dokumenterad och supportad och vad jag kan se, skeppar moduler idag med ”relativt” buggfri mjukvara. Som en extra bonus tillför den nya modulen även några förbättringar: Quad-band (vilket iofs är meningslöst i Europa..), DTFM-dekoder (avkodning av toner från knapp-tryck under samtal) och inbyggd temperatursensor. Det enda negativa med den nya modulen är egentligen priset, som är €93, jämfört med Rhydolabz €50. Småpotatis i relation till hur mycket tid man får lägga på workarounds i buggig hårdvara.

Länkar:

Jag har än så länge bara fingrat på ”köp”-knappen, då jag inväntar e-mail från tillverkaren med svar på en del kompatibilitetsfrågor. I och med att GSM Playground är utformad som en Arduino shield kan jag även bli tvingad till att återgå till Arduino, TROTS de begränsningar som fick mig att välja bort den i ett tidigare skede. Som en kompromiss har jag hittat en Arduino-klon, Seeeduino, som addresserar en del av de listade bristerna (fetare säkring, korrekt headerpin spacing via extra stiftlist etc). När jag ändå är igång och byter kanske jag till och med byter upp mig till en aningen fetare AVR modell också, t.ex. Seeduino Mega, som åttadubblar både primärminnes- och programminnes-mängd (8 KB RAM! HÅLL I HATTEN!). Tänk vad bortskämd man är i PC-världen, när var och varannan laptop är utrustad med flera gigabyte minne. Slöseri tycker ni? Well, dessa nya modeller har förvånadsvärt likvärdig effektförbrukning (med aktivt strömsparläge) och när priset skiljer nån hundralapp är det bara att tuta och köra. Att slippa vända på varje byte minne för att få plats är guld värt. Det är lite som att köra 4×4 jeep i stan, man behöver oftast inte kraften, men det är jävligt gött när snön kommer. Bensin kostar skjortan oavsett!

Vi får se vart detta slutar! I vilket fall som helst lär bytet innebära en del förseningar. Min tidigare Februari-prediktion känns inte lika realistisk längre.

Tjing!