Skip to content

ITalk MCS 1608

Matthias Schneider edited this page Feb 22, 2017 · 14 revisions

iTalk MCS 1608

Die 5 iTalks von TTN Ulm

TTN Ulm hat 5 iTalks zur Verfügung, die für verschiedene Projekte (z.B. die Abdeckungskarte) verwendet werden. Diese sind fest auf eine App konfiguriert. Wer ein Projekt mit den iTalks starten will, oder an der Abdeckungskarte teilhaben möchte, kontaktiert bitte @dermatthias (auch 'dermatthias' im Slack). Er fügt euch dann als Collaborator zur App hinzu, damit habt ihr Zugang zu den Sensordaten.

Kaufen

Uns sind aktuell keine Bezugsquellen bekannt, ausser direkt beim Hersteller.

Infos vom Hersteller

https://www.mcs-nl.com/producten/italks-mcs-1608-full-lora-sensor/

Downlink Messages

Die Node wird komplett von aussen über Downlink Messages konfiguriert. Dazu schickt man am einfachsten via TTN Console die entsprechenden Bytes zum Device.

In der Doku (Download) findet man ab Seite 10 die entsprechenden Bytes, die downlink zur Node gesendet werden müssen, um die Optionen zu setzen.

Beispiel, GPS einschalten, in HEX ohne 0x:

01 17 01

Das erste 01 ist die command sequence, die 17 die Nummer des Kommandos und die hintere 01 bedeutet "einschalten" (00 wäre ausschalten). Wichtig ist die command sequence, da diese stimmen muss, damit das Kommando akzeptiert wird. Hierbei wird bei jedem Befehl die Sequenz um 1 hochgezählt. Wenn die Inkrementierung nicht passt, wird das Kommando verworfen.

Wenn man GPS Daten bekommen und damit die Node tracken will, sind diese beiden Kommandos zu senden:

01 0e 01   //enable tracker
01 0b 01   //enable motion detection 
01 17 01   //enable gps while moving  

Software

Die iTalks sind nicht, wie man es von den Arduinos oder Raspberry Pis kennt, via USB flashbar oder via SSH konfigurierbar. Bisher wurden die iTalks nur über die Downlink Messages konfiguriert, was ausreichend war. Wer sich an die PINs auf der Platine traut, kann gerne im Verschwörhaus mal experimentieren (aber vorsichtig, die waren teuer :))

Payload Function für TTN die Console

TODO: _Genauer auf die einzelnen Teile der Message Types eingehen. _

function Decoder(bytes, port) {
  var lat, lng;
  if (bytes[0] === 0 || bytes[0] == 1) {
    lat = ((bytes[6] << 16) + (bytes[7] << 8) + bytes[8]) / 100000;
    lng = ((bytes[9] << 16) + (bytes[10] << 8) + bytes[11]) / 100000;  
  } else {
    lat = -1;
    lng = -1;
  }

  var decoded = {
    lat: lat,
    lng: lng
  };

  return decoded;
}