zondag 27 september 2015

Bijna mobiel

Vandaag alle verbindingen opgetekend en toen alles uit elkaar gehaald om het in een fiets bestendige behuizing te zetten.

De behuizing is een diepvries doos van de Blokker, lekker stevig, lucht en water dicht. Als eerste een plekje voor de fijnstof meter gezocht, warm en droog aan de binnenkant, een gaatje gemaakt voor de bemonstering van de buitenlucht.

In de fijnstof meter zat maar 1 gaatje voor de bevestiging, dat vind ik te weinig voor een hobbelende fiets, dus er is een u-profiel gemaakt van een half Tic Tac doosje en nog een extra schroefje aan de onderkant geplaatst. Achter de fijnstof meter zit de temperatuur en vocht opnemer alles lekker in de rijwind. Over de opening van de fijnstof meter en de temp/rv meter komt nog een kapje om te voorkomen dat er water naar binnen wordt gezogen.

De SD module heeft een plekje links achter zodat het kaartje er makkelijk in en uit kan. De Arduino Leonardo zit onder de display module, de ventilator die de lucht door de fijnstof meter moet trekken zit links.

De GPS module en de spannings omvormer zitten op de bodemplaat. De batterijhouder licht nu nog los op de bodemplaat maar ik denk dat ik morgen ook nog even een bakje maak van polypropyleen zodat de batterijen niet gaan schuiven tijdens het fietsen er komt natuurlijk nog klitteband over heen om het te fixeren.


vrijdag 25 september 2015

Polypropyleen bewerken

Ik wil de opening waar de fijnstofmeter zijn buitenlucht aanzuigt beschermen tegen regen, opspattend water en andere zaken die niet in een optische meetinstrument thuis horen. Tevens wil ik de temperatuur/rv meter beschermen tegen waterdruppels en nieuwsgierige vingertjes.
Tijdens het eten ging er een emmertje snoeptomaatjes leeg volgens de recyclingscode is het pp oftewel polypropyleen.
Ik heb de rand en de bodem er af geknipt en geprobeerd of ik het met kokend water week genoeg kon krijgen maar helaas. Voor poging twee heb ik de oven aan gezet, eerst op 120 graden Celcius, dat was niet voldoende. Daarna steeds een beetje hoger tot het plaatje polypropyleen zo zacht werd dat het plat en slap op het bakpapier lag. 
Daarna heb ik het met een tang over mijn vorm gelegd, gefixeerd en laten afkoelen. Voor een eerste poging is het resultaat ok, de zijkanten zijn niet gelijk en recht. Voor de tweede poging meer materiaal gebruiken en later de zijkanten recht en op maat knippen.  

maandag 21 september 2015

Versie 1.0



Het lijkt er op dat alles werkt en de geheugen problemen over zijn. We gaan nu dus over op het maken van de hardware zodat we buiten kunnen gaan testen op de fiets. Deze bos met draadjes moet worden geordend in een special voor dit doel gekochte diepvries doos zodat er veilig en stabiel mee gefietst kan worden 
En nu maar hopen dat niemand het aan ziet voor een bom 😄

maandag 7 september 2015

Grote stappen

GPRMC,201424.00,A,5205.10861,N,00501.79983,E,0.302,,070915,,,A*,23.00,67.90,675

De huidige opstelling met gps, rh, temperatuur en voedingsspanning
De huidige opstelling veel
draadjes, een gps, rh,
temperatuur, voedings-
spanning en spannings-
omvormer
Dit is nu mijn data string die iedere seconde naar de SD kaart wordt geschreven. De code is nog niet mooi en ik ben ook niet zeker of alles nodig is wat er nu in staat, dus de code komt later.

Wat ik nu wel heb is de output van de GPS;
GPRMC,201424.00,A,5205.10861,N,00501.79983,E,0.302,,070915,,,A*

GPRMC; Recommended minimum specific GPS/Transit data
201424.00; Time of fix UTC
 A; Navigation receiver warning A = OK, V = warning
 5205.10861,N   Latitude, North
 00501.79983,E   Longitude, East
 0.302; Speed over ground, Knots
 ,, ; Course Made Good, True 
  070915; Date of fix
  ,, ; Magnetic variation
  * ; mandatory checksum

Als de gps geen waarde heeft voor een parameter dan staan er dus alleen de separators, dus ,, is gelijk aan geen waarde.

Daarna volgt de temperatuur; 23.00 in Graden Celcius en de luchtvochtigheid 67.90 in procenten. Als laatste het getal 675 dit is de decimale output voor een 10 bits waarde van analoge ingang A0. Met A0 meet ik de batterij spanning zodat ik weet of mijn batterijen geladen moeten worden.



zaterdag 22 augustus 2015

Eindelijk weet ik waar ik ben

Het is laat of vroeg hoe je het wilt noemen, maar mijn gps werkt, waarom het eerst niet wilde nog geen idee, dat is iets voor als ik geslapen heb.
Deze code was voldoende;

#include <SoftwareSerial.h>

SoftwareSerial mySerial(8, 7);

void setup() {
  while (!Serial); // wait for leo to be ready

  Serial.begin(57600); // this baud rate doesn't actually matter!
  mySerial.begin(9600);
  delay(2000);
 }

void loop() {
  if (Serial.available()) {
   char c = Serial.read();
   Serial.write(c);
   mySerial.write(c);
  }
  if (mySerial.available()) {
    char c = mySerial.read();
    Serial.write(c);
  }
}

De output is nu;

$GPRMC,222033.00,A,5205.10922,N,00501.79961,E,0.449,,210815,,,A*7A
$GPVTG,,T,,M,0.449,N,0.831,K,A*20
$GPGGA,222033.00,5205.10922,N,00501.79961,E,1,09,0.99,4.6,M,46.0,M,,*59
$GPGSA,A,3,09,06,02,07,23,16,03,30,26,,,,1.74,0.99,1.43*0E
$GPGSV,3,1,11,02,42,289,23,03,11,117,26,05,14,295,16,06,52,229,37*78
$GPGSV,3,2,11,07,42,164,35,09,78,070,22,16,15,062,23,23,38,069,24*78
$GPGSV,3,3,11,26,12,034,21,29,06,343,09,30,16,185,25*45
$GPGLL,5205.10922,N,00501.79961,E,222033.00,A,A*65

De rook zit nog steeds in de ic's, hardware serial en usb bijten elkaar, morgen bij daglicht weer verder. 


SD kaart aangesloten op Leonardo

Leonardo met GPS en SD kaart module werkend
Langzaam wordt de warboel groter
Weer een klein stukje verder, de sd kaart kan worden gelezen was nog een heel gepuzzel maar op een Leonardo moet je de MOSI, MISO en SCK van de icsp connector halen. Via http://tronixlabs.com/news/tutorial-using-sd-card-breakout-boards-with-arduino/ achter de juiste aansluitingen gekomen alleen gebruikt mijn code D4 voor CS. Nog weer wat verder gezocht voor het en dan blijkt dat ook D10 hoog moet zijn om de SD kaart te laten werken http://embedjournal.com/arduino-sd-card-initialization-failed/.


Tutorial - Using SD card Breakout Boards with Arduino by Tronixlabs Australia
Your connections will be as follows:
Arduino ICSP to breakout board
  • 2 - 5V or Vcc
  • GND - GND
  • 3 - SCK
  • 1 - MISO
  • 4 - MOSI
  • D10 - CS

Het resultaat een keurige index van de inhoud en nog wat meta gegevens;

Initializing SD card...Wiring is correct and a card is present.

Card type: SDHC

Volume type is FAT32

Volume size (bytes): 3695284224
Volume size (Kbytes): 3608676
Volume size (Mbytes): 3524

Files found on the card (name, date and size in bytes):
_~1.TRA       2015-03-15 13:22:38 4096
DATALOG.TXT   2000-01-01 01:00:00 143
TRASHE~1/     2015-03-15 13:22:38
  501/          2015-03-20 23:05:08
    DATALOG.TXT   2015-03-20 23:04:48 2
    _DATAL~1.TXT  2015-03-20 23:04:48 4096
    DATALO~1.TXT  2000-01-01 01:00:00 48139
  _501~1        2015-03-20 23:05:08 4096
SPOTLI~1/     2015-03-15 13:22:40
  STORE-V2/     2015-03-15 13:22:40
    84963B~1/     2015-03-15 13:22:40
      JOURNA~1.REP/ 2015-03-15 13:22:40
      PSID.DB       2015-03-23 19:59:40 8192
      TMP~1.SNO     2015-03-15 13:22:40 0
      0~3.IND       2015-03-15 13:32:44 68416
      LION~1.CRE    2015-03-15 13:22:40 0
      INDEXS~1      2015-03-23 19:58:42 28
      0~1.IND       2015-03-15 13:32:44 2056
      0~2.IND       2015-03-15 13:32:44 708
      0~4.IND       2015-03-23 19:58:50 4096
      0~1.SHA       2015-03-23 19:58:42 4096
      0~5.IND       2015-03-15 13:32:44 32
      0~6.IND       2015-03-23 19:58:40 4
      0~1.DIR       2015-03-23 19:58:40 65536
      0DIREC~1.SHA  2015-03-15 13:32:44 1088
      0~2.SHA       2015-03-20 22:42:30 4
      0~7.IND       2015-03-15 13:32:44 12
      0~8.IND       2015-03-15 13:32:44 346
      0~9.IND       2015-03-15 13:32:44 150
      LIVE1~3.IND   2015-03-23 19:58:42 64
      LIVE1~4.IND   2015-03-23 19:58:42 4096
      LIVE1~1.SHA   2015-03-23 19:58:42 4096
      LIVE1~5.IND   2015-03-23 19:58:40 32768
      LIVE1~6.IND   2015-03-23 19:58:40 3277
      LIVE1~1.DIR   2015-03-23 19:58:42 65536
      LIVE1D~1.SHA  2015-03-23 19:58:42 1088
      LIVE1~2.SHA   2015-03-23 19:58:42 1
      LIVE1~7.IND   2015-03-23 19:58:42 4
      LIVE1~8.IND   2015-03-23 19:58:42 4
      LIVE2~1.IND   2015-03-23 19:58:42 8224
      STORE.DB      2015-03-23 19:58:42 118784
      STORE~1.DB    2015-03-23 19:59:40 118784
      REVERS~1      2015-03-23 19:58:50 65536
      SHUTDO~1      2015-03-23 19:59:40 4
      JOURNA~1.LIV/ 2015-03-15 13:22:42
        JOURNAL.17    2015-03-23 19:59:40 41
        RETIRE.16     2015-03-23 13:15:54 0
      JOURNA~1      2015-03-15 13:22:42 0
      JOURNA~1.SCA/ 2015-03-15 13:22:42
        RETIRE.23     2015-03-23 19:58:40 0
      REVERS~1.SHA  2015-03-15 13:22:42 3136
      LIVE2~2.IND   2015-03-23 19:58:42 1024
      LIVE2~3.IND   2015-03-23 19:58:42 65536
      LIVE2~1.SHA   2015-03-23 19:58:42 65536
      LIVE2~4.IND   2015-03-23 19:59:40 4096
      LIVE2~6.IND   2015-03-23 19:59:40 3277
      LIVE2~1.DIR   2015-03-23 19:59:40 65536
      LIVE2~5.SHA   2015-03-23 19:58:42 1
      LIVE2~4.SHA   2015-03-23 19:58:42 4096
      LIVE1~1.IND   2015-03-23 19:58:42 2056
      LIVE2~3.SHA   2015-03-23 19:58:42 8
      LIVE2~5.IND   2015-03-23 19:59:40 32768
      LIVE2D~1.SHA  2015-03-23 19:58:42 1088
      LIVE2~7.IND   2015-03-23 19:59:40 1905
      LIVE2~8.IND   2015-03-23 19:58:42 4096
      LIVE2~9.IND   2015-03-23 19:58:42 4096
      LIVE2~10.IND  2015-03-23 19:58:42 8192
      JOURNA~1.17   2015-03-23 19:59:20 420
      STORE~1.UPD   2015-03-23 19:59:40 12
      REVERS~1.UPD  2015-03-23 19:59:40 1
      PERMST~1      2015-03-23 19:59:40 69
      LION~1.MOD    2015-03-15 13:23:16 0
      LIVE2~11.IND  2015-03-23 19:58:42 8192
      LIVE2~6.SHA   2015-03-23 19:58:42 0
      LIVE2~7.SHA   2015-03-23 19:58:42 0
      LIVE0~1.IND   2015-03-23 19:58:42 2056
      LIVE0~2.IND   2015-03-23 19:58:42 708
      LIVE1~2.IND   2015-03-23 19:58:42 8
      LIVE2~2.SHA   2015-03-23 19:58:42 2056
      LIVE0~3.IND   2015-03-23 19:58:42 68800
      LIVE0~4.IND   2015-03-23 19:59:40 4096
      LIVE0~1.SHA   2015-03-23 19:58:42 4096
      LIVE0~5.IND   2015-03-23 19:58:42 56
      LIVE0~6.IND   2015-03-23 19:59:40 6
      LIVE0~1.DIR   2015-03-23 19:59:40 65536
      LIVE0D~1.SHA  2015-03-23 19:58:42 1088
      LIVE0~2.SHA   2015-03-23 19:58:42 6
      LIVE0~7.IND   2015-03-23 19:58:42 12
      LIVE0~8.IND   2015-03-23 19:58:42 481
      LIVE0~9.IND   2015-03-23 19:58:42 150
  STORE-V1/     2015-03-15 13:22:40
    VOLUME~1.PLI  2015-03-15 13:22:40 348
  VOLUME~1.PLI  2015-03-15 13:22:42 3184
INDEX.HTM     2015-03-15 13:26:16 62
LOG.XML       2015-03-15 13:31:22 423
TEMPOR~1/     2015-03-20 23:04:48
  FOLDERS.501/  2015-03-20 23:04:48
    TEMPOR~1/     2015-03-20 23:04:48
  _FOLDE~1.501  2015-03-20 23:04:48 4096
_~1.TEM       2015-03-20 23:04:48 4096

dinsdag 18 augustus 2015

GPS slim uitlezen

Er zijn veel manieren om gps gegevens uit te lezen en te verwerken met mooie library's maar dat kost veel geheugen en cpu. Ik wil alleen weten hoe laat het is en waar ik ben en dat kan heel efficiënt.

De details over deze oplossing staan hier;
Source code: http://www.iforce2d.net/UBX_GPS.zip
Helpful page: http://wiki.paparazziuav.org/wiki/Sen...

Als je het filmpje niet hebt gezien komt het er op neer dat de gps module geen lange nmea strings meer stuurt maar veel kortere en minder binaire boodschappen. Deze binaire boodschappen zijn ook nog eens heel snel te verwerken.

maandag 17 augustus 2015

Smoke test #1

GPS en SD card aangesloten op Leonardo
Voeding, cs, rx, tx, clk, mosi en miso verbindingen gemaakt
Alle lampjes die moeten knipperen knipperen en de 'magic smoke' zit nog steeds netjes in de ic's. Het ledje van de seconde puls op gps module knippert inmiddels ook, dus alles lijkt ok.
Tijd om een ontwikkel omgeving klaar te maken. Ik ga Fritzing proberen, de schema's zie ik regelmatig online en laten we eerlijk zijn de warboel hiernaast kun je met alleen deze foto nooit nabouwen.
Inmiddels is Fritzing geïnstalleerd maar mijn componenten zitten er nog niet in. Het is me al wel gelukt om de Leonardo op het breadboard te 'plaatsen' en er een vcc en gnd draad aan vast te maken maar de gps module en de sdcard staan nog niet in de bibliotheek en dus moet ik deze eerst aanmaken en dat is toch nog wel even een dingetje.

Leonardo op breadboard
Leonardo op breadboard stap 1 in Fritzing
 Dit ziet er al een stuk beter uit dan de foto, als het straks droog is ga ik hardlopen en anders nieuwe onderdelen proberen te maken. Maar nu eten koken.

vrijdag 14 augustus 2015

Het Plan

City Sonde Science, Fiets mee en meet NO2 badge
Mijn badge
Voor mijn werk ben ik regelmatig op het RIVM en het KNMI, op het KNMI heb ik als vrijwilliger mee gedaan met een citizen science project voor het meten van NO2. Als vrijwilliger kregen we allemaal een fietsmandje mee met de sensor en een datalogger, dan naar huis fietsen en van thuis weer naar het KNMI fietsen.
Wat er in het mandje zat was niet zo heel ingewikkeld en duur op de NO2 sensor na, een Arduino, een GPS, een SD kaart en een batterij.
Door de eenvoud van de datalogger (Arduino+SD kaart) ben ik gaan denken over een eigen meting en zo op fijnstof uit gekomen.


Fijnstof

fijnstof naast een mensenhaar
Mensenhaar met fijnstof
Op school leer je dat de lucht om ons heen bestaat uit 80% stikstof 20% zuurstof en dat klopt aardig, maar in ons land voegen we daar het een en ander aan toe, door de verbranding van benzine, diesel, gas en hout ontstaat er ook fijnstof. Fijnstof kun je vervolgens indelen naar samenstelling, herkomst en grote.
Vooral die grote en samenstelling is belangrijk, fijnstof dat bestaat uit zeezout (door aerosolen uit de Noordzee) is minder schadelijk dan de lucht uit een tweetakt scooter. De grote bepaalt waar het fijnstof in ons lichaam terecht komt. De grote delen 10 micro meter (PM10) komen niet verder dan onze neus en luchtpijp, daarna krijg je de deeltjes van 2,5 micro meter (PM2,5) deze komen ver in onze longen en de ultra fijne deeltjes 0,1 micro meter (PM0,1)komen zelfs in ons bloed.

Het instrument

Hiernaast staan de onderdelen van het te bouwen meetinstrument om een idee van de grote te krijgen staat er 1 losse penlight batterij op. Er gaan 2 optische sensoren mee op de fiets zodat deze vergeleken kunnen worden. De eerste staat in het midden het is een deels blikken doosje van Sharp type GP2Y1010AU0F de andere sensor staat uiterst rechts en is ook deels van blik het merk is Samyoung DSM501A
Rechts achter staat de energie bron een batterijhouder met 8 oplaadbare batterijen, in het midden achter staat de microcontroller een Leonardo. Naast de Leonardo staat de GPS module (ublox neo-6m-0-001) niet het nieuwste van het nieuwste maar meer dan goed genoeg voor een positie binnen 2,5 meter en het moment van de dag op micro seconde nauwkeurig.
Naast de gps staat het geheugen het idee is om iedere seconde, tijd, positie, relatieve vochtigheid, temperatuur, fijnstof en batterij spanning op te slaan op een SD kaartje, dit kaartje is weer in een SD module gestoken zodat de Leonardo er naar toe kan schrijven. Als laatste module staat helemaal links achter een thermokoppel versterker deze is merkloos maar voorzien van een MAX6675K

Alle losse modulen moeten nog worden samengevoegd in een doosje om het te beschermen tegen de elementen en mijn manier van fietsen, 2 ventilatoren om meer lucht door de fijnstof sensoren te zuigen en niet te vergeten software. De eerste volgende blog gaat over het uitlezen van de gps module en het schrijven naar de SD kaart.

Doel

Uiteindelijk moet het gaan resulteren in kleurtjes op een kaart zodat er een beeld ontstaat van het fijnstof tijdens mijn woon werk verkeer van de Meern via Utrecht naar De Bilt of Bilthoven. 

Disclaimer

Ik ben geen wetenschapper hooguit een nerd dus verwacht geen mooie integralen bladzijden met formules, herleidbare en gekalibreerde metingen er komen ook geen beleidstukken van mijn hand en ook geen meningen over wel of geen milieuzone in Utrecht.