Grondwater Multiflexmeter
Overzicht Multiflexmeter
Hieronder staat een overzicht van de verschillende componenten van het Multiflexmeter systeem en de verbinding naar het Sensorbucket systeem.
In het geval van de Grondwater Multiflexmeter zal de Sensor Module specifiek gemaakt zijn om een Druksensor uit te lezen.
Energie voorziening
De Multiflexmeter gebruikt 2x LS14500 lithium-thionyl-chloride batterijen (AA formaat). Deze batterijen:
leveren 9.63 Wh (2600mAh a 3.6V);
zijn AA Formaat;
zijn bestendig tegen -80 graden celsius tot +125 graden celsius;
hebben een zelfontlading van 1-2% per jaar;
kunnen geen grote spanningpieken leveren.
Deze batterij is gekozen omdat de karakteristieken passen bij die van de Multiflexmeter:
Gaat langere tijd mee (5-10 jaar);
bestendig tegen buitentemperaturen;
standaard formaat;
Ondanks het standaard formaat leveren deze batterijen het dubbele van standaard AA Alkaline batterijen.
Onze batterijen zijn ingekocht bij NKON: https://www.nkon.nl/saft-ls14500-aa-lithium-battery-3-6v.html.
Communicatie tussen modules
De hoofdprinplaat communiceert met de sensor modules via een I2C bus. De hoofdprintplaat maakt gebruik van twee commandos:
Doe een meting
Wat is je meetresultaat
Deze commando’s zijn geformateerd als SMBus functies; zie hoofdstuk 6.5 http://smbus.org/specs/SMBus_3_1_20180319.pdf.
Voor de meeste toepassingen heeft I2C een hoog genoege bitrate. Echter, het LoRaWAN protocol zal eerder bottlenecken dan de I2C bus.
Nadelen
I2C vereist addresseerbare modules. Deze addressen zijn over het algemeen hardcoded of via 1 of 2 pinnen aan te passen (maximaal ~4 varianten!). SMBus specificeert een Address Resolution Protocol om automatisch addressen toe te wijzen aan modules op de bus. Dit is een mooie oplossing, maar met het nadeel dan men niet weet welke module welk adres krijgt. Dit vormt een probleem bij het verwerken van de data.
Onze voorgestelde oplossing is de I2C Bus te voorzien van een extra lijn die als daisychain gebruikt wordt. De Hoofdprintplaat begint een Address Resolutie Sequence.
De hoofdprintplaat reset alle addressen. De modules hebben geen addressen meer (0x??)
De hoofdprintplaat zet het signaal op de daisychain hoog.
De hoofdprintplaat stuurt het ARP Commando
De eerste module zonder adres, maar met een hoog daisy chain signaal ACK’ed dit commando
De hoofdprintplaat wijst een adres toe aan deze module
De module heeft nu een adres en stuurt het daisy chain signaal door naar de volgende module
Zodra er geen module meer aangesloten is zal het signaal niet geACKnowledged worden en weet de hoofdprintplaat dat er geen extra modules meer zijn.
Dit protocol is niet volledig uitgewerkt. Niet alle addressen in het 128-bit adres block kunnen gebruikt worden omdat deze gereserveerd zijn voor SMBus functies of I2C functies.
Tevens gaat er een address gereserveerd moeten worden waarop de hoofdprintplaat in stap 5 de module kan aanspreken voordat deze zelf een adres heeft.
Communicatie via LoRaWAN
Uplink (Device → Server)
Na een network_join zal het apparaat eerst zijn hardware en software versies versturen voor (backwards)compatibility doeleinden.
Bij een meting krijgt de Hoofdprintplaat van elke sensor module een standaard block aan meetdata binnen. De hoofdmodule hoeft niet te weten wat deze data inhoud en hoeft dit alleen door te sturen via LoRaWAN.
De sensormodule prefixed de data wel met een module type, waardoor het eindsysteem weet in wat voor dataformaat er verstuurd is.
De hoofdprintplaat prefixed de sensormodule data met het address van de sensormodule zodat er onderscheid gemaakt kan worden tussen verschillende modules van hetzelfde type.
Downlink (Server → Device)
Elke uplink wacht de sensor 2 RX windows op een downlink bericht. Als er vanuit de server een downlink bericht gequeued is zal deze op het moment van een uplink verstuurd worden naar het apparaat.
De volgende eigenschappen zijn variabel:
MEASUREMENT_INTERVAL
TTN_FAIR_USE_POLICY
REMOTE_RESTART (reboot het device en joint opnieuw het netwerk via OTAA)