The Art of Connecting Things – Opdracht 1

Deze opdracht is onderdeel van de ICR3ATE | Digital Makers Lab IoT Workshop ‘The Art of Connecting Things’.

Je gaat in tweetallen zelf aan de slag om een (bescheiden) IoT casus te maken m.b.v. beschikbare hardware en software.

Alle opdrachten gaan ervan uit dat je redelijk handig bent met PC/Mac, hardware aansluiten en (draadloos) Internet. Er worden redelijk wat technische termen gebruikt en je moet een beetje Cloud vaardig zijn. Je hoeft niet te kunnen programmeren of solderen om de basis opdrachten succesvul uit te voeren.

Er zijn 5 opdrachten beschikbaar in oplopende moeilijkheidsgraad. De opdrachten 1 t/m 4 hebben het karakter van “assembleren en configureren” en zijn basis. Opdracht 5 heeft het karakter van zelf “ontwikkelen en programmeren” en is uitsluitend voor gevorderden.

Deze Opdracht 1 betreft sensorische data collectie in Cloud m.b.v. een MCU als IoT device en een draadloze Internet verbinding via Wifi.

Er worden omgevingstemperatuur en luchtvochtigheid gemeten. Met deze twee gemeten waarden worden vervolgens twee weerkundige grootheden berekend: de warmte-index en het dauwpunt.

1. Wat ga je doen en leren in deze opdracht?

Deze opdracht heeft de volgende leerdoelen:

  1. IoT device zelf kunnen samenstellen bestaande uit een MCU, één sensor en een Grove Shield
  2. IoT device kunnen verbinden met het Internet via Wifi
  3. IoT device voorzien van (voorbereide) MCU/Sensor software
  4. Sensor meetwaarden en berekende parameters kunnen uitlezen in Cloud ‘dashboard’

2. De benodigdheden

Je hebt het volgende nodig (zie hierna voor afbeelding met cijfer verwijzing):

  1. Particle Photon als MCU gemonteerd op Grove Base Shield (1)
  2. Grove Temperature / Humidity sensor DHT22 (2)
  3. Een Grove verbindingskabeltje (3)
  4. Een gekleurd micro USB kabeltje (4)
  5. Een login account op de Particle Web IDE https://build.particle.io (zie hieronder voor details)
  6. Software om de Photon MCU en Sensor te verbinden met de Particle Cloud
  7. Minimaal 1 deelnemer heeft: een PC/Mac met Internet access en USB poort om Photon te voeden

Gebruik als login naam de kleur van het micro USB kabletje dat je hebt gekregen volgens onderstaande lijstje:

3. Waar vind ik de benodigde software?

  • De kant en klare software die je nodig hebt voor opdracht 1 staat hieronder en is geschikt om te kopiëren en te plakken
  • Het is een zogeheten sketch die je nodig hebt om de Particle Photon te laten doen wat nodig is voor deze opdracht
  • Voordat dat kan ga je eerst de hardware aansluiten en verbinden met Internet
// This #include statement was automatically added by the Particle IDE.
#include "Adafruit_DHT/Adafruit_DHT.h"
// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain
#define DHTPIN 4 // what pin we’re connected to
// Uncomment whatever type you’re using!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Connect pin 1 (on the left) of the sensor to +5V
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHT11 test");
dht.begin();
}
void loop() {
// Wait a few seconds between measurements.
delay(2000);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds ‘old’ (its a
// very slow sensor)
float h = dht.getHumidity();
// Read temperature as Celsius
float t = dht.getTempCelcius();
// Read temperature as Farenheit
float f = dht.getTempFarenheit();
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Compute heat index
// Must send in temp in Fahrenheit!
float hi = dht.getHeatIndex();
float dp = dht.getDewPoint();
float k = dht.getTempKelvin();
Serial.print("Humid: ");
Serial.print(h);
Serial.print("% - ");
Serial.print("Temp: ");
Serial.print(t);
Serial.print("*C ");
Serial.print(f);
Serial.print("*F ");
Serial.print(k);
Serial.print("*K - ");
Serial.print("DewP: ");
Serial.print(dp);
Serial.print("*C - ");
Serial.print("HeatI: ");
Serial.print(hi);
Serial.println("*C");
Serial.println(Time.timeStr());
Particle.publish("Humidity", String(h));
Particle.publish("Temperature", String(t));
Particle.publish("Dew point", String(dp));
Particle.publish("Heat Index", String(hi));
delay(5000);
}

4. Sluit de DHT22 sensor aan op de Photon Grove shield

  • Gebruik daarvoor het Grove verbindingkabeltje (1)
  • De stekker past maar op één manier; let daar goed op b.v. door de gele draad aan te houden zoals hieronder getoond (2) en (3)
  • Kies de connector positie op de Photon Grove Shield zoals onderstaande afbeelding toont (4)
  • Dit is een zogenaamde Digitale GPIO aansluiting D4
  • Alleen deze aansluiting gaat werken, alle andere niet!

5. Sluit de Photon aan op je PC/Mac via USB

  • Gebruik daarvoor het gekleurde micro USB kabeltje (1) en (2)
  • Wanneer je dit hebt gedaan zie je een kleuren LED aangaan op de Photon (3)
  • De betekenis van alle modi waarin de Photon kan zijn die d.m.v. kleuren LED wordt aangegeven, vind je hier
  • De noodzakelijke precondiguratie van Wifi met toegangscode, is reeds voor je gedaan omwille van snelheid en eenvoud
  • Daarom heb je na deze stap een Photon die gelijk al aan Internet verbonden is
  • Dat zou niet het geval zijn als je zelf met een Photon vanaf scratch gaat beginnen!

6. Login op de Web IDE van Particle

  • Ga daarvoor naar: https://build.particle.io
  • En gebruik de login naam die overeenkomt met je kleur
  • Dus voor team ‘geel‘: [email protected]
  • Het wachtwoord is identiek aan de login naam zonder @icr3ate.nl erachter

7. Je bent nu in het Particle WebIDE Console

Dat ziet er na inloggen uit zoals onderstaande afbeelding

8. Maak een App en haal de software op

  • Creeer een App ‘Opdracht1’ genaamd
  • Verwijder je de eerste 7 regels die er stonden toen je inlogde in Particle WebIDE Console
  • Je bent nu zo ver als onderstaande afbeelding laat zien
  • Copy de eerder genoemde sketch via de Copy/Paste handeling van jouw PC/Mac

9. Kopieer de source code

  • Plak de code in App Opdracht1 die je zojuist hebt gemaakt in de WebIDE

10. Sla de App op

  • Zie bijgaande afbeelding om Opdracht1 op te slaan

11. Zoek de benodigde software library voor de DHT22

Er is een software libray nodig om deze sketch te kunnen gebruiken

Activeer de Library mogelijkheid in WebIDE middels onderstaande knop (1)

Zoek op ‘DHT’ (2)

En selecteer de gevonden library ADAFRUIT_DHT (3)

12. Voeg deze library toe aan je App

  1. Neem deze library op je in je App middels onderstaande knop
  2. En sla je App opnieuw op

13. Flash de software op de Photon

  • Controleer of je Photon on line is
    • Dat kun je zien door naar ‘Devices’ te gaan in het Console (1)
  • Als dat het geval is kun je je code ‘flashen’ (2)
  • Lees goed de aanwijzingen in het WebIDE scherm tijdens het flashen om te controleren of het proces goed verloopt

14. Controleer de juiste werking met kleuren LED op Photon

  • De kleuren LED geeft de huidige modus aan van de Photon
  • De betekenis van alle modi waarin de Photon kan zijn die d.m.v. kleuren LED wordt aangegeven, vind je hier
  • Ga zelf na of de modus klopt met wat je verwacht in dit stadium

15. Ga naar Particle Dashboard

  • Met onderstaande knop activeer je het Particel Dashboard
  • Dit opent een nieuw venster in je Web-browser

16. Zie de data binnenkomen

  • In dit venster activeer je de ‘data view’ met onderstaande knop (1)
  • Wacht enkele seconden en zie vervolgens de data stroom live binnenkomen (2)
  • Wat is de gemeten waarde en wat is de berekende parameter?
  • Klopt de data?

17. Verwijder deze App uit je Particle WebIDE

  • Je bent nu klaar met deze eerste opdracht
  • Verwijder deze App uit de WebIDE
  • Dit is alleen nodig in deze leer setting; normaliter kun je deze App natuurlijk gewoon bewaren

18. Resultaat van deze opdracht

  • Gefeliciteerd met je praktische IoT resultaat
  • Wat heb je bereikt?
    • Deze opdracht heeft de volgende leerdoelen:
    • IoT device zelf kunnen samenstellen bestaande uit een MCU, één sensor en een Grove Shield
    • IoT device kunnen verbinden met het Internet via Wifi
    • IoT device voorzien van sensor software
    • Sensor meetwaarden en berekende parameters kunnen uitlezen in Cloud ‘dashboard’
  • Ga voor jezelf na hoe dit resultaat past in het eerder gepresenteerde 5 dimensies model
Translate »
Share This