# Weergave waarde

In het volgende voorbeeld wordt een getal weergegeven dat afkomstig is van een interne teller. Dit getal kan in een praktische toepassing vervangen worden door een temperatuursensor, luchtvochtigheidssensor, grondvochtigheidssensor …. De code is zowel voor de ESP8266 als de ESP32 bruikbaar.

Blokschema

# Adafruit.IO gedeelte

# Feeds

Om een feed aan te maken is het nodig in te loggen op het adafruit.io platform.

io.adafruit.com (opens new window)

Kies “Feeds” en vervolgens “view all”.

Feeds

Een nieuwe feed aanmaken voor een digitale uitgang is mogelijk via “Create a New Feed”.

Nieuwe feed aanmaken

Vul de naam en de omschrijving van de feed in.

Nieuwe feed aanmaken

# Dashboard

Met een dashboard is het mogelijk de waarde van de teller weer te geven.

Om een dashboard aan te maken is het nodig in te loggen op het adafruit.io platform.

io.adafruit.com (opens new window)

Kies “Dashboards” en vervolgens “view all”.

Dashboard

Een nieuw dashboard aanmaken is mogelijk via “Create a New Dashboard”.

Nieuw dashboard

Vul de naam en de omschrijving van het dashboard in.

Invullen gegevens dashboard

Klik vervolgens op het aangemaakte dashboard.

Selecteren aangemaakt dashboard

Kies “Create a new block”.

Create a new block

Selecteer de gewenste weergave. In dit voorbeeld kiezen we voor “Line Chart”.

Line Chart

Selecteer de feed verbonden met de “line chart” op het dashboard.

Keuze feed

Vul de instellingen aan.

Aanpassen instellingen knop

Klik rechts onderaan op “create block”.

# Arduino gedeelte

Vertrek van een voorbeeld. adafruitio_00_publish. Dit voorbeeld is zowel bij de ESP8266 als de ESP32 bruikbaar.

Voorbeeld

Stel de config.h file in.

Instellen config.h file

Vul in de config.h file de IO_USERNAME en IO_KEY afkomstig van het adafruit.IO platform in.

#define IO_USERNAME   "your_username"
#define IO_KEY        "your_key"
1
2

De IO username en de IO key zijn te vinden in het adafruit.io platform onder AIO key.

AIO key

De IO_USERNAME is te vinden bij “Username” en IO_KEY is te vinden bij “Active Key”.

AIO key

Voor de communicatie met het wifinetwerk kan enkel gebruik gemaakt worden van WPA2 Personal. Geef de SSID van het wifi-netwerk en het paswoord in de config.h file in.

#define WIFI_SSID   "your_ssid"
#define WIFI_PASS   "your_pass"
1
2

De rest van de code komt in het .ino bestand.

keuze .ino bestand

In het voorbeeld hebben we gekozen om in adafruit.io de feed "teller" aan te maken. Hierdoor zijn geen aanpassingen nodig in de voorbeeldcode.

Indien je ervoor gekozen hebt de feed in adafruit.io een andere naam te geven, is het nodig de naam van de feed aan te passen in onderstaande regel code.

// set up the 'teller' feed
AdafruitIO_Feed *counter = io.feed("andere naam feed");
1
2

Voorbeeldcode:

// set up the 'teller' feed

// Adafruit IO Publish Example
//
// Adafruit invests time and resources providing this open source code.
// Please support Adafruit and open source hardware by purchasing
// products from Adafruit!
//
// Written by Todd Treece for Adafruit Industries
// Copyright (c) 2016 Adafruit Industries
// Licensed under the MIT license.
//
// All text above must be included in any redistribution.

/********************* Configuration ***********************************/

// edit the config.h tab and enter your Adafruit IO credentials
// and any additional configuration needed for WiFi, cellular,
// or ethernet clients.
#include "config.h"

/******************* Example Starts Here *******************************/

// this int will hold the current count for our sketch
int count = 0;

// set up the 'teller' feed
AdafruitIO_Feed *counter = io.feed("teller");

void setup() {

  // start the serial connection
  Serial.begin(115200);

  // wait for serial monitor to open
  while(! Serial);

  Serial.print("Connecting to Adafruit IO");

  // connect to io.adafruit.com
  io.connect();

  // wait for a connection
  while(io.status() < AIO_CONNECTED) {
    Serial.print(".");
    delay(500);
  }

  // we are connected
  Serial.println();
  Serial.println(io.statusText());

}

void loop() {

  // io.run(); is required for all sketches.
  // it should always be present at the top of your loop
  // function. it keeps the client connected to
  // io.adafruit.com, and processes any incoming data.
  io.run();

  // save count to the 'counter' feed on Adafruit IO
  Serial.print("sending -> ");
  Serial.println(count);
  counter->save(count);

  // increment the count by 1
  count++;

  // Adafruit IO is rate limited for publishing, so a delay is required in
  // between feed->save events. In this example, we will wait three seconds
  // (1000 milliseconds == 1 second) during each loop.
  delay(3000);

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76

Via het dashboard kan de interne teller in de Arduino weergegeven worden.

Resultaat

# Opdrachten

  • Geef de temperatuur weer afkomstig van een DS18B20 temperatuur sensor
  • Geef de temperatuur en luchtvochtigheid weer afkomstig van een DHT22 sensor.