Skip to content

Commit

Permalink
added first draft of manual and switched to OTAA activation
Browse files Browse the repository at this point in the history
  • Loading branch information
Matthias Schneider committed Mar 8, 2017
1 parent 48c9468 commit 0025f64
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 37 deletions.
25 changes: 16 additions & 9 deletions README.md
@@ -1,22 +1,29 @@
# TTN Ulm particulate matter sensor

A small Arduino sketch to measure particulates in the air via the SDS011 sensor and sending them to TheThingsNetwork.
A Arduino sketch to measure particulates in the air via the SDS011 sensor and sending them to TheThingsNetwork.

## Intro




## Usage
1. Connect the SDS011 to the PINs configured in the sketch (PIN 8 and 9 are preconfigured)
2. Connect the 5V and GND pins
3. Fill in your TTN credentials
4. Make sure you have the SDS0011 and TheThingsNetwork library present in the Arduino library folder,
you can get the TTN library from the Arduino Library Manager or from github
5. Write the sketch to the arduino
3. Connect the DHT sensor to PIN 10, 3.3v and GND.
4. Fill in your TTN credentials
5. Make sure you have the TheThingsNetwork, DHT library installed,
you can get them from the Arduino Library Manager(see below).
6. Write the sketch to the arduino

## Quick explanation what this does
1. sleeps for a given amount of time.
2. spins up the fan for a minute to clean the fan and the housing.
2. spins up the fan for some time to clean the fan and the housing (1 minute recommened).
3. takes 10 samples of sensor data (pm2.5 and pm10)
4. calculates the median of each to avoid outlier
5. encodes the values into bytes
6. send them to the given TTN app
5. takes the current humidity and temperature values
6. encodes the values into bytes
7. send them to the given TTN app

## Arduino Libraries

Expand All @@ -33,7 +40,7 @@ See LICENSE file

## Other code used
SDS011 library by R. Zschiegner (rz@madavi.de) https://github.com/ricki-z/SDS011
We keep a local copy if this library in the libs/ subfolder. Makes building easier for new users.
We keep a local copy if this library. Makes building easier for new users.

TheThingsNetwork library by Johan Stokking (johan@stokking.nl)
https://github.com/TheThingsNetwork/arduino-node-lib
69 changes: 45 additions & 24 deletions bauanleitung.md
Expand Up @@ -6,6 +6,14 @@ der hier aufgeführten Informationen und Ideen stammen von
luftdaten.info, so dass man bei Fragen auch gut dort
nachlesen kann.

Die unten stehende Anleitung geht davon aus, dass du an unserem Ulmer
Feinstaub Projekt mit TTN teilnimmst, da wir die Daten an einer zentralen
Stelle aus TTN ausführen und von dort direkt gesammelt an die API von
luftdaten.info weiterleiten.

Wer dies nicht möchte oder braucht, kann natürlich die Daten in TTN z.B.
via MQTT selbst abholen und weiterverarbeiten.

## Benötigte Hardware

Neben den Sensoren hast du die Wahl zwischen zwei Arduinos.
Expand All @@ -14,7 +22,7 @@ ist kleiner und billiger und allgemein unsere Empfehlung.

* SDS011 - [Bestellen](http://de.aliexpress.com/wholesale?site=deu&SortType=price_asc&shipCountry=de&SearchText=sds011&CatId=523)
* DHT22 - [Bestellen](http://de.aliexpress.com/wholesale?site=deu&SortType=price_asc&shipCountry=de&SearchText=dht22&CatId=523)
* LoRA Node
* LoRA Node (nur eine nötig)
* The Things UNO - [Bestellen](https://shop.thethingsnetwork.com/index.php/product/the-things-uno/)
* Adafruit Feather - [Bestellen](http://www.exp-tech.de/adafruit-feather-m0-with-rfm95-lora-radio-900mhz) (nicht wundern, 900Mhz ist korrekt)
* Micro USB Flachband Kabel, 2m - [Bestellen](https://www.amazon.de/s/?field-keywords=micro+usb+flachbandkabel+2m)
Expand All @@ -32,18 +40,17 @@ dich mit der Materie auskennst, ist das sicher sehr einfach anzupassen.
Den Arduino-Sketch bekommt man in unserem [Github Repository](https://github.com/verschwoerhaus/ttn-ulm-feinstaub)
bzw. als [direkter Download](https://github.com/verschwoerhaus/ttn-ulm-feinstaub/archive/master.zip).

Kopiere (oder cloned) einfach den kompletten Order in dein
Arduino Sketch Verzeichnis.
Kopiere (oder git clone) den kompletten Ordner in dein Arduino Sketch Verzeichnis
und öffne diesen in deiner Arduino IDE.

Damit der Sketch funktioniert, musst du noch folgende Bibliotheken in
deiner Arduino IDE über den Arduino Library Manager hinzufügen:
der Arduino IDE über den Arduino Library Manager hinzufügen:

* TheThingsNetwork
* Adafruit Unified Sensor (weit nach unten scrollen)
* DHT sensor library



## Zusammenbauen

#### The Things UNO
Expand All @@ -53,25 +60,31 @@ deiner Arduino IDE über den Arduino Library Manager hinzufügen:
Am Feinstaubsensor werden von links nach rechts (wenn der Sensor flach
auf dem Tisch liegt, Lüfter oben) folgende Pins verbunden:

* 5V
* GND
* PIN 8
* PIN 9
* PIN 1: freilassen
* PIN 2: freilassen
* PIN 3: 5V am The Things Uno
* PIN 4: freilassen
* PIN 5: GND am The Things Uno (egal welcher GND, gibt 2)
* PIN 6: PIN 8 am The Things Uno
* PIN 7: PIN 9 am The Things Uno

(Wer sich auskennt dann die Belegung der PINs auch im Sketch ändern.)

**DHT22 Temperatur- und Feuchtigkeitssensor**

Am Sensor werden vorne (das Gitter) von links nach rechts folgende Pins
verbunden:

* 3.3V
* GND
* PIN 10
* PIN 1: 3.3V am The Things Uno
* PIN 2: PIN 10 am The Things Uno
* PIN 3: freilassen
* PIN 4: GND am The Things Uno (egal welcher GND, gibt 2)

Eventuell kann es helfen, die Kabel am Sensorrücken mit einem Stück
Gewebeband zu fixieren. Manche Kabel sitzen nicht sehr satt and den
dünnen Beinchen.

(Auch hier kann man die PIN-Belegung im Sketch anpassen, falls nötig.)

#### Adafruit Feather

Expand All @@ -80,31 +93,33 @@ Anleitung hierzu folgt bald.

#### Zusammensetzen

Wie man die Einzelteile ins Rohr einsetzt wird sehr gut direkt
bei [luftdaten.info erklärt](http://luftdaten.info/feinstaubsensor-bauen/#komponenten-zusammenbau).
Wie man die Einzelteile in das Rohr einsetzt wird sehr gut direkt
bei [luftdaten.info erklärt](http://luftdaten.info/feinstaubsensor-bauen/#komponenten-zusammenbau)
erklärt. Besser könnten wir das hier auch nicht.


## Bei TTN registrieren & freischalten

Damit du Daten via TTN versenden und empfangen kannst, musst
du dich bei TTN anmelden und dann von uns in die Ulmer Feinstaub TTN App
hinzugefügt werden. Danach kannst du in dieser App ein Device
erstellen, dass deinen Feinstaubsensor identizifiert.
`ttnulm-particulates` hinzugefügt werden. Danach kannst du in dieser App
ein Device erstellen, das deinen Feinstaubsensor identifiziert.

1. [Anmelden bei The Things Network](https://www.thethingsnetwork.org/). Rechts oben auf *Sign up* klicken
und registrieren.
2. Deinen The Things Network Username über [dieses Formular]() an uns schicken.
1. [Anmelden bei The Things Network](https://www.thethingsnetwork.org/).
Rechts oben auf *Sign up* klicken und registrieren.
2. Deinen The Things Network Username über [dieses Formular](TODO) an uns schicken.
3. Wir fügen dich über deinen Username zu unserer TTN Feinstaub App hinzu
und benachrichtigen dich via E-Mail (wir verwenden diese für nichts anderes,
versprochen).
4. Erstelle in deiner neuen TTN Feinstaub App ein neues Device. Die
Device EUI kannst du automatisch generieren lassen (2 Pfeilchen links).
versprochen), wenn du hinzugefügt wurdest.
4. Erstelle in deiner neuen TTN Feinstaub App `ttnulm-particulates` ein
neues Device. Die Device EUI kannst du zuerst automatisch generieren
lassen (2 Pfeilchen links), diese wird aber später nochmal ersetzt.
Achte darauf, dass du bei der Erstellung die Aktivierungsmethode OTAA
auswählst (sollte aber der Default sein).
5. Das luftdaten.info Projekt möchte zu jedem Sensor noch Details wie
Aufstellort, Umgebung, etc. wissen, damit die Daten möglichst gut
ausgewertet werden können. Wir übernehmen diese Kommunikation für dich,
fülle dazu einfach [dieses Formular]() aus.
fülle dazu einfach [dieses Formular](TODO) aus.
6. Du bekommst von uns nochmal eine Mail, wenn alles freigeschalten und
abgeschlossen ist.

Expand All @@ -123,8 +138,14 @@ zuvor) hinzugefügt werden.
mit den zwei Zeilen, die du am unteren Ende der Device Seite bei TTN
siehst.

Danach kannst du we gewohnt über die Arduino IDE den Flashvorgang starten.
Danach kannst du wie gewohnt über die Arduino IDE den Flashvorgang starten.

**Wichtiger Schritt:**

Beim ersten Start wird dir auf der seriellen Konsole die *echte* Device EUI
der Node angezeigt. Kopiere diese und ersetze die vorher generierte Device EUI
unter `Settings` bei deinem Device in der TTN Console. Nur dann kann deine OTAA Aktivierung funktionieren, es muss
die Device EUI bei TTN mit der auf der seriellen Console übereinstimmen.

## Funktioniert es?

Expand Down
7 changes: 3 additions & 4 deletions ttnulmdust/ttnulmdust.ino
Expand Up @@ -23,9 +23,8 @@
//*******************************

// copy and paste these values from your TTN console application
const char *devAddr = "";
const char *nwkSKey = "";
const char *appSKey = "";
const char *appEui = "";
const char *appKey = "";

// PIN configuration
#define PIN_RX 8 // connect the SDS011 RX pin to this Arduino pin
Expand Down Expand Up @@ -96,8 +95,8 @@ void setup() {
setupPowerMode();
#endif

ttn.personalize(devAddr, nwkSKey, appSKey);
ttn.showStatus();
ttn.join(appEui, appKey); // OTAA
}

void loop() {
Expand Down

0 comments on commit 0025f64

Please sign in to comment.