Dit is de eerste les uit de Arduino IoT Cloud handleiding. In deze eerste les leer je hoe je je nieuwe Arduino Nano 33 IoT kunt configureren in Arduino Create. We leggen je de basis begrippen in de IoT cloud uit en laten je zien hoe je een lampje kunt aansturen via het internet.
Wat is Arduino Create?
Met Arduino Create kun je codes schrijven. Ook krijg je toegang krijgen tot inhoud, je kunt boards configureren en projecten delen. De Arduino Create is een altijd up-to-date en online versie van de Arduino IDE. Het biedt de mogelijkheid om builds te delen en feedback te ontvangen. Dit zorgt ervoor dat je efficiënt en effectief vanuit huis kunt werken. Als je een project niet helemaal opnieuw wilt starten, is er altijd de mogelijkheid om gebruik te maken van de kracht van de community. Dit kan door op de Arduino Project Hub door door projecten te bladeren en ze je eigen te maken.
- Niveau – Beginner 20%
- Tijdsduur – 30/60 Min 40%
- Kosten – €34.29 euro compleet 25%
Stap 1: Benodigheden
1X Arduino Nano 33 IoT
1X breadboard
3X jumper wires
1X LED lampje
1X 220 Ohm weerstand
Arduino Create
Stap 2: Setup Arduino Create
Als eerste gaan we het board configureren in Arduino Create. Ga naar: https://create.arduino.cc/. Je krijgt dan het hoofdmenu te zien. Selecteer hier IoT Cloud. Als je al ingelogd bent kom je uit op een scherm waar staat ”Your Things”. Als je nog niet ingelogd bent moet je even inloggen of een account aanmaken. Arduino Create is gratis maar er is ook een betaalde versie beschikbaar. Afhankelijk van wat je met Arduino Create wilt doen en hoeveel je het gebruikt kun je kiezen tussen deze versies.
Als je ingelogd bent en op de IoT Cloud pagina bent is er een blokje waar staat ”Create New Thing”, selecteer deze. Je komt nu op een nieuw scherm uit. Hier kan je een board kiezen. Aangezien wij in dit project werken met een Arduino Nano 33 IoT selecteer je deze. Je komt op een nieuwe pagina waar wat dingen worden uitgelegd. Om het board te configureren selecteer je ”Start”.
Sluit je Arduino Nano 33 IoT nu op je computer aan via een USB kabel. Als de computer het Arduino board vindt ga je automatisch naar de volgende stap. In deze stap moet je je Arduino Nano 33 IoT een naam geven. Wij hebben die van ons ”EVJ-33-iot” genoemd. Maar je kan die van jou een naam naar keuze geven.
Zodra je je board een naam hebt gegeven selecteer je ”Next”. Nu kun je je board configureren. Je krijgt de optie ”No Thanks” & ”Configure”. Selecteer ”Configure”. De Arduino Nano 33 IoT beschikt over een Microchip ECC508 crypto chip. Deze chip is gebruikt om de identiteit van je board te beschermen wanneer deze is gelinkt met je Arduino account. Zodra de chip is geconfigureerd is het board klaar voor gebruik. Selecteer nu ”Back to Cloud”, je komt dan bij ”Create New Thing”
Hier vullen we een naam in en kiezen we het board wat we willen gebruiken. Als je dit hebt ingevuld selecteer je ”Create”.
Nu je je Thing hebt aangemaakt kan je een property toevoegen. In dit project is de property een (rood) LED lampje. Selecteer ”Add property”
Op deze pagina geven we de LED een naam. In dit geval ”Led_rood”. Bij het type selecteren we ”ON/OFF (Boolean). Een Boolean is een data type met slechts 2 mogelijke waarden.
Bij ”Permission” selecteer je ”Read & Write” dit doen we omdat we vanuit de IoT cloud de LED aan en uit kunnen zetten.
We laten Update ook staan op “When the value changes”, dit zorgt ervoor dat wanneer de waarde van de eigenschap / variabele binnen de schets van het bord verandert, deze waarde onmiddellijk naar de Cloud wordt gestuurd. Zodra je dit allemaal hebt ingevuld selecteer je ”Create Property”
Onder het kopje ”Dashboard” Kun je de zojuist aangemaakte property terug vinden. Zoals je ziet is dit een aan/uit schakelaar. Als je meerdere properties hebt kun je deze ook verplaatsen door ze te slepen. De IoT cloud staat nu klaar. We gaan nu de LED aansluiten op de Arduino Nano 33 IoT, en deze vervolgens programmeren.
Stap 3: Bouwen en Bedraden
Nu gaan we het project in elkaar zetten.
We beginnen met het plaatsen van de Arduino Nano 33 IoT op het breadboard. In het midden van het breadboard zit een gleuf. Zorg dat de pins van het board aan beide kanten van de gleuf zitten zoals hieronder afgebeeld. Plaats nu het LED lampje op het board en verbind de + met uitgang D2. Plaats bij de – een 220 Ohm weerstand. Verbind deze vervolgens aan een GND pin. Dat was het! Je hebt nu je eerste IoT project bedraad.
Stap 4: Programmeren
Nu je klaar bent met het bedraden en bouwen van je Arduino IoT lampje kun je beginnen met het programmeren van de Arduino Nano 33 IoT. Als je in de IoT Cloud bent zie je ”Edit Sketch”, klik hier op. Je gaat nu automatisch naar de Arduino Web Creator. Hier is automatisch een nieuwe sketch aangemaakt waar al een paar waardes in staan.
Als eerste gaan we de internet verbinding instellen. Ga naar het tabje ”Secret”, hier kun je het SSID en wachtwoord van jouw netwerk invullen. Dit is nodig om de Arduino Nano 33 IoT met de IoT cloud te verbinden.
Nu nemen we een kijkje bij de tab ”thingProperties.h”
#include <ArduinoIoTCloud.h>
Hiermee wordt de ArduinoIoTCloud library geïmporteerd. Deze library zorgt er voor dat de lokale sketch variabelen worden gesynchroniseerd met IoT Cloud properties.
#include <Arduino_ConnectionHandler.h>
De WifFiConnectionManager wordt gebruikt om de WiFi verbinding te beheren.
char ssid[] = SECRET_SSID;
char pass[] = SECRET_PASS;
Deze waarden komen uit het tabje ”Secret”.
const char THING_ID[] = "df79a865-1cb7-455e-8b93-b3a26e90737e";
Dit is het unieke ID van het ”Thing”
void onLedRoodChange();
Deze regel verklaart een functie die moet worden aangeroepen telkens wanneer de waarde van onze LED Property wordt gewijzigd in het IoT dashboard. Dit type functie staat bekend als Callback.
bool light;
Verklaring van de LED variabele.
void initProperties()
Deze functie wordt aangeroepen in het setup () blok van het .ino bestand.
ArduinoCloud.setThingId(THING_ID);
Vertelt onze sketch waarmee het ”Thing” verbinding moet maken.
ArduinoCloud.addProperty(led_rood, READWRITE, ON_CHANGE, onLedRoodChange);
Vertelt de schets om de LED variabele te beschouwen als een property van ons ”Thing”, en om de callback-functie op LedRoodChange uit te voeren elke keer dat de waarde van de eigenschap wordt gewijzigd van Arduino IoT Cloud. De rechten zijn ingesteld op READWRITE voor deze property omdat dit is wat we hebben geselecteerd tijdens het maken van deze property.
WiFiConnectionHandler ArduinoIoTPreferredConnection(ssid, pass);
Initialiseert verbindingsbeheer met behulp van de naam van het WiFi-toegangspunt (SECRET_SSID) en wachtwoord (SECRET_PASS) dat we hebben ingesteld op het tabblad ”Secret”.
We gaan nu weer terug naar het eerste tabje. Hier gaan we de code in schrijven. Zoals elke Arduino Sketch bestaat de code uit 2 delen. De void setup en de void loop. De setup wordt één keer uitgevoerd zodra het board opstart of als de reset knop wordt ingedrukt. De loop blijft zich herhalen zolang als het board aan staat.
Er staan al wel een paar standaard regels code klaar. Deze beschrijven we hieronder.
#include "thingProperties.h"
Importeerd alle variabelen en functies uit het tabje ”thingProperties.h”.
setDebugMessageLevel(2);
Stelt het gewenste niveau van logberichten in die in de seriële monitor worden weergegeven. Dit staat nu ingesteld op niveau 2, maar we kunnen het wijzigen van 0 (die alleen fouten registreert) tot 3 (die ALLES registreert!). Als iets niet werkt met de verbinding met wifi of cloud, is het gemakkelijker om het probleem te vinden als dit op een hoger niveau is ingesteld. Voor nu kunnen we het laten zoals het is.
Serial.begin(9600);
Initialiseert de seriële monitor om deze af te weergeven en te lezen.
delay(1500);
Wacht 1,5 seconden om de seriële monitor de tijd te geven die die nodig heeft om te initialiseren.
initProperties();
Initialiseert de eigenschappen zoals gedefinieerd in thingProperties.h.
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
Initialiseert de Arduino Cloud met de eerder genoemde ConnectionManager.
ArduinoCloud.update();
Dit behandelt veel dingen achter de schermen, waaronder het synchroniseren van de waarden van properties tussen de cloud en het bord, het controleren van de verbinding tussen netwerk en Cloud en andere logica. Als de waarde van een eigenschap verandert in de schets, zal de bibliotheek het automatisch detecteren en de Cloud hiervan op de hoogte stellen, zodat een dergelijke waarde wordt weerspiegeld in het Arduino IoT Cloud Dashboard. Evenzo, wanneer de waarde van een eigenschap in het Dashboard wordt gewijzigd, zal de bibliotheek de overeenkomstige waarde op het apparaat bijwerken.
Hieronder staat de code de je kunt gebruiken om het Lampje te laten werken.
#include “thingProperties.h”
#define LED_PIN 2
void setup() {
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
delay(1500);
initProperties();
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
}
void loop() {
ArduinoCloud.update();
}
void onLedRoodChange() {
digitalWrite(LED_PIN, led_rood);
Serial.print(“De led_rood is “); //Dit wordt weergegeven in de monitor
if (led_rood) {
Serial.println(“AAN”); // Als de LED aan staat zie je ”De led_rood is AAN” in de monitor
} else {
Serial.println(“UIT”); // Als de LED uit staat zie je ”De led_rood is UIT” in de monitor
}
}
Deze code kun je nu uploaden naar de Arduino Nano 33 IoT. Als dit is gelukt selecteer je ”Go To IoT Cloud”. In je dashboard kan je nu met de virtuele knop de LED aan en uitzetten.
Je hebt de eerste les nu succesvol afgerond. Nu weet je hoe je een LED lampje via het internet aan en uit kunt zetten. Ook weet je nu waar de standaard functies van de IoT Cloud voor staan.