Hoogteberekening

De positie van een object tweedimensionaal bepalen op basis van latitude en longitude is vrij eenvoudig. We missen hierbij alleen een derde dimensie: altitude. Belangrijk om exact aan te kunnen geven waar iemand zich bevindt in bijv. een hoog gebouwd of vliegtuig. In deze blog meer over onze zoektocht naar hoogteberekening!

Om te beginnen; Als we over het over de latitude hebben, dan bedoelen we hiermee de breedtegraad, ofwel X. De longitude  betreft de lengtegraad, Y, en altitude geeft de hoogte aan, Z. Deze gegevens vormen de basis voor het driedimensionale coördinaatsysteem.

Hoogtebepaling vanaf zeeniveau tot het aardoppervlak:
Hoogtebepaling is in de luchtvaart uiteraard ook een belangrijk gegeven. Hierbij wordt de hoogte in feet (voeten) berekend vanaf zeeniveau. De hoogte van het aardoppervlak vanaf zeeniveau is gelukkig eenvoudig op te vragen via de API van Google Maps. Hiervoor kunnen we de zogenaamde ElevationService gebruiken:

elevator = new google.maps.ElevationService();

Deze service geeft van elke willekeurige latitude en longitude aan wat de altitude is van de betreffende locatie. De volledige functie staat gedocumenteerd op: https://developers.google.com/maps/documentation/javascript/elevation

Hoogtebepaling vanaf het aardoppervlak:
Maar hiermee zijn we er nog niet. Iemand kan zich ook in een wolkenkrabber begeven. Aan tweedimensionale locatiebepaling heb je in zulke gevallen niet veel. Gelukkig hebben we tegenwoordig hiervoor de digitale barometer!

De barometer (baro = druk in het Latijns) werd in 1643 uitgevonden door Evangelista Torricelli (portretfoto rechts). Het ging hierbij om de bekende kwikbarometer die hij had vervaardigd. Een buisje met kwik werd hierbij omgekeerd in een reservoir met kwik geplaatst. Naarmate de luchtdruk hoger werd, steeg ook de kwik in het buisje. Op deze manier kon naast luchtdruk ook temperatuur gemeten worden, die hiermee samenhing.

De gasmoleculen blijven dankzij de zwaartekracht dicht bij de aarde waardoor er langs de aardkorst een hogere luchtdruk ontstaat (ofwel dichtheid van de lucht). De luchtdruk neemt dus af wanneer de hoogte toeneemt. De lucht wordt bijv. ook ijler wanneer je in de bergen gaat wandelen, een bekend fenomeen. Deze atmosferische druk wordt aangegeven in millibar. De luchtdruk neemt op zeeniveau met ca. 1 millibar af voor iedere 8,2m stijging in hoogte. Op deze manier kunnen we dus ook hoogte berekenen vanaf het aardoppervlak!

Tegenwoordig hebben we gelukkig ook elektronische barometers. Door de luchtdruk verandert de weerstand en dus ook de spanning, waardoor de luchtdruk elektronisch gemeten kan worden. Voordeel hiervan is dat ook de temperatuur gecompenseerd kan worden voor een nauwkeuriger eindresultaat. Warme lucht heeft namelijk een lagere luchtdruk als koudere lucht. De luchtdruk is daarom ook een essentieel gegeven bij weersvoorspellingen.

Meetgegevens op de NB-IoT module van Sodaq:
Inmiddels hebben we de NB-IoT module volledig aan de praat. De gegevens die we nu uit kunnen lezen, naast geodata, betreffen:

  • luchtdruk, middels een digitale barometer, type LPS22HB
  • temperatuur en luchtvochtigheid (humidity), middels een digitale temperatuursensor HTS221
  • magnetisme en versnelling en daarmee richting, middels een magnetometer en een accelerometer, type LSM303AGR

De eerste twee sensoren zorgen voor de input voor een hoogtemeting. De magnetometer kan gebruikt worden om de richting te bepalen waarin een versnelling plaatsvindt. Daarover meer in de volgende blog!

NarrowBand IoT

We zijn weer een stap verder in onze zoektocht naar de beste manier om geodata te verzamelen en beschikbaar te stellen. Onze eerste gedachte hierbij was om de data via het LoRa-netwerk te verkrijgen, hier waren we al bekend mee. Dankzij onderzoek uitgevoerd door Paul Koenen, stagiair bij Elonisas IoT, leerde we al snel dat NB-IoT wellicht een interessantere oplossing is voor het verzenden en ontvangen van kleine pakketjes data.

Deze conclusie resulteerde uiteindelijk in de aanschaf van de nieuwste
NB-IoT module van Sodaq. Deze board kan overweg met geodata van diverse satellietnetwerken; GPS, Galileo, GLONASS, and BeiDou. Ideaal voor het doel wat we willen bereiken. Een T-Mobile SIM kaart werd meegeleverd. T-Mobile is een van de aanbieders van het NB-IoT netwerk met landelijke dekking.

In de bovenstaande foto toont ons prototype. De behuizing hebben we 3D geprint bij partnerbedrijf Myler Media. Ons einddoel is om apps en platformen te kunnen voeden met uitermate nauwkeurige geodata van bewegende objecten. Dit lijkt eenvoudig maar bijv. het aspect hoogte heeft aardig wat voeten in de aarde. Doorgaans wordt hoogte vanaf zeeniveau gemeten, maar hier zijn dus verschillende technieken voor met ieder weer voor- en nadelen (daarover meer in en volgende blog). Een ander aspect is bijv. de snelheid waarmee de realtime data aangeleverd kan worden aan het platform waarbinnen de informatie zo accuraat mogelijk getoond moet gaan worden.

Inmiddels krijgen we alle data die geleverd kan worden door de Sodaq-shield binnen. Het gaat hierbij om temperatuur, luchtvochtigheid, luchtdruk, de versnelling, richting en uiteraard de geo-data. De geo-data is indoor lastig te verkrijgen. De volgende stap is om deze data beschikbaar te stellen in een online platform. Hier gaat Paul i.s.m. Erik de komende tijd aan werken. Erik, mede-eigenaar van het bedrijf, is specialist in database-technieken en het ontsluiten van de data. Als software engineer heeft Erik zijn leven lang gewerkt aan complexe softwareapplicaties voor de handel, defensie en de overheid. Echt zorgen over of dit goed gaat komen hoeven we ons niet te maken!

Alle bovengenoemde data is momenteel inzichtelijk binnen het AllThingsTalk-platform (https://maker.allthingstalk.com). Communiceren met de cloud gebeurt via de AllThingsTalk Messaging API, gebaseerd op het MQTT protocol. (leer meer hierover op: http://docs.allthingstalk.com/developers/api/messaging). De komende tijd gaan we ons hier meer in verdiepen!