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.
zondag 27 september 2015
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.
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.
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
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.
De huidige opstelling veel draadjes, een gps, rh, temperatuur, voedings- spanning en spannings- omvormer |
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*
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.
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
Langzaam wordt de warboel groter |
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.
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
Voeding, cs, rx, tx, clk, mosi en miso verbindingen gemaakt |
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 stap 1 in Fritzing |
vrijdag 14 augustus 2015
Het Plan
Mijn badge |
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
Mensenhaar met fijnstof |
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.
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.
Abonneren op:
Posts (Atom)