-
-
WEDSTRIJDEN
Greenhouse
In EDUvision Seizoen 3 Aflevering 02 hebben we een project gedemonstreerd waarbij gebruik wordt gemaakt van de Explore IoT Kit om een kas te bouwen die voor uw planten zorgt! In dit project maken we gebruik van de interne sensoren en relais in de MKR IoT Carrier om een luchtbevochtiger en een waterpomp te activeren.
Benodigde materialen
- Ontdek de IoT-kit (vochtigheids-, temperatuur-, licht- en vochtigheidssensoren, relais, printplaat en drager)
- Kas
- Planten
- Computer
- Luchtbevochtiger (optioneel)
- Waterpomp (optioneel)
- Telefoon (optioneel)
Deze kit bevat hardware, software en leermateriaal om 10 stapsgewijze activiteiten te bouwen die een breed scala aan onderwerpen bestrijken, van het verzamelen van gegevens en het maken van eenvoudige huishoudelijke apparaten tot oplossingen voor stadslandbouw en weersmonitoringsystemen.
Hardware
- Arduino MKR WiFi 1010-kaart
- MKR IoT-drager
- Plastic omhulsel
- Micro-USB-kabel
- Vochtigheidssensor
- PIR-sensor
- Plug-and-play-kabels voor alle sensoren
Software De Explore IoT Kit bevat een gratis proefperiode van 12 maanden voor het Arduino Create Maker Plan. Arduino Create is een online platform waarmee iedereen code kan schrijven, toegang heeft tot content, boards kan configureren en projecten kan delen. Met het Arduino Create Free Plan kunt u de Web Editor gebruiken om uw board te programmeren, meerdere apparaten verbinden met de Arduino IoT Cloud, een verzameling projecten bekijken op Arduino Project Hub en op afstand verbinding maken met uw boards met Arduino Device Manager. Met het Arduino Create Maker Plan krijgt u toegang tot extra functies en verhoogt u de productiviteit van uw tools.
MKR IoT-drager
De MKR IoT Carrier is een uitbreiding van het MKR WiFi 1010-bord en is ontwikkeld voor de Explore IoT Kit. De carrier is niet uitgerust met een microcontroller, wat betekent dat hij samen met een Arduino-bord moet worden gebruikt. Met behulp van een carrier ontgrendelen we veel nuttige en interessante functies, zoals een display, RGB-leds, een gyroscoop en verschillende sensoren. Met relais kunnen we bijvoorbeeld een Arduino-kaart gebruiken om circuits met een hoger vermogen te regelen dan de Arduino-kaart zelf kan regelen.
De MKR IoT Carrier omvat:
- Twee 24 V-relais
- SD-kaarthouder
- Vijf tactiele knoppen
- Plug-and-play-connectoren voor verschillende sensoren
- Temperatuursensor
- Vochtigheidssensor
- Druksensor
- RGBC, gebaren en nabijheid
- IMU
- RGB-scherm van 1,20 inch
- 18650 Li-Ion oplaadbare batterijhouder (batterij niet inbegrepen)
- Vijf RGB-leds
Bedrading
MKR IoT Carrier heeft alle sensoren die we nodig hebben ingebouwd en voor extra functionaliteit kunnen we de vochtigheidssensor aansluiten met behulp van de plug-and-play-kabel. Om de luchtbevochtiger te bedienen, hebben we deze gehackt en de USB-kabel die bij het product werd geleverd doorgeknipt en aangesloten op het relais op de MKR IoT Carrier. Op dezelfde manier is ook de waterpomp aangesloten op het relais.
De Arduino IoT Cloud configureren
Open de Arduino IoT Cloud en log in met je Arduino-account. Met het gratis Create Base Plan kun je 1 IoT Thing met 5 variabelen hebben. Klik op de knop Create Thing. Om te beginnen, moet u eerst een naam geven aan uw Thing en vervolgens uw apparaat configureren. Om uw Arduino-kaart te configureren, sluit u deze aan op de computer met behulp van de USB-kabel, klikt u op de knop Select Device en kiest u de optie Set up an Arduino device.
Variabelen
Klik op de knop Variabele toevoegen. Er wordt een nieuw venster geopend waarin we de naam, het gegevenstype, de update-instelling en de machtigingsinstelling kunnen kiezen.
Wi-Fi®-netwerkgegevens
Als we op de knop Configureren klikken, verschijnt er een nieuw venster. Hier moeten we onze inloggegevens voor ons Wi-Fi®-netwerk invoeren en op de knop Opslaan klikken. Houd er rekening mee dat de netwerknaam en het wachtwoord altijd hoofdlettergevoelig zijn.
Dashboard
Zodra we variabelen hebben aangemaakt, kunnen we verdergaan met het creëren van de interactie hiervoor. Dit gebeurt via de Dashboards. Klik op de knop Build Dashboard en geef het een naam. We moeten nu verschillende widgets kiezen om de gegevens te visualiseren. Als we linksboven op de knop Add klikken, kunnen we kiezen uit een breed scala aan widgets, waarvan sommige geschikter zijn voor de gegevens die we bijhouden.
Code
#include "thingProperties.h"
#include "Arduino_MKRIoTCarrier.h"
MKRIoTCarrier carrier;
int timer_delay = 2000;
int timer_start = 0;
int humidity_histeresys = 10;
int moisture_histeresys = 20;
void setup() {
pinMode(A6, INPUT);
// Initialize serial and wait for port to open:
Serial.begin(9600);
Serial.println("started");
// This delay gives the chance to wait for a Serial Monitor without blocking if none is found
delay(1500);
// Defined in thingProperties.h
initProperties();
// Connect to Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
/*
The following function allows you to obtain more information
related to the state of network and IoT Cloud connection and errors
the higher number the more granular information you’ll get.
The default is 0 (only errors).
Maximum is 4
*/
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
carrier.begin();
carrier.display.print("Initializating");
humidity = 100;
moisture = 1023;
}
void loop() {
ArduinoCloud.update();
// Your code here
//carrier.display.fillScreen(ST77XX_BLACK);
if(timer()){
updateReadings();
work();
}
}
bool timer(){
if ((millis() - timer_start) > timer_delay){
timer_start = millis();
return true;
}else{
return false;
}
}
void work(){
if(moisture > target_moist - (moisture_histeresys / 2) ){
water(false);
} else if(moisture < target_moist + (moisture_histeresys / 2) ){
water(true);
}
if (humidity > target_humidity - (humidity_histeresys / 2)) {
humidify(false);
} else if(humidity < target_humidity + (humidity_histeresys / 2) ){
humidify(true);
}
}
void updateReadings(){
//temperature = carrier.Env.readTemperature();
humidity = carrier.Env.readHumidity();
moisture = analogRead(A6);
Serial.println("Reading sensors");
/*Serial.print("Temperature: \t");
Serial.println(temperature);*/
Serial.print("Humidity: \t");
Serial.println(humidity);
Serial.print("Moisture: \t");
Serial.println(moisture);
Serial.print("Target humid: \t");
Serial.println(target_humidity);
}
void printData(){
}
void printEmoji(){
}
void humidify(bool status){
if(status){
carrier.Relay2.open();
}else{
carrier.Relay2.close();
}
}
void onHumidifierActiveChange() {
// Do something
humidify(humidifier_active);
}
void water(bool status){
if (status){
carrier.Relay1.open();
}else{
carrier.Relay1.close();
}
}
void onWaterPumpActiveChange() {
// Do something
water(waterPump_active);
}
void onTargetHumidityChange() {
// Do something
}
void onTargetMoistChange() {
// Do something
}
Gerelateerde artikelen
-
18/11/2025
Help het Mangrove-rif te reinigen met behulp van VEXcode VR!
Posted in: Posts03/12/2020Bij het Schoonmaken van koraalriffen activiteit zijn de leerlingen uitgerust met een VR Oceaanreiniginsrobot om te... -
19/11/2025
Hoe educatieve robotica STEM disciplines met elkaar verbindt
Posted in: Posts21/01/2021Robotica is altijd interdisciplinair op een manier die tastbaar en toepasbaar is voor leerlingen. Leerlingen krijgen... -
23/11/2025
Robotica? Op school? Waarvoor?
Posted in: Posts16/02/2021Door een robot te bouwen kunnen leerlingen hun kennis verdiepen in wiskunde, mechanica, engineering en programmeren.... -
23/11/2025
Python onderwijzen met VEXcode VR
Posted in: Posts29/05/2021Ontdek hoe u Python kunt onderwijzen met het online platform VEXcode VR. -
23/11/2025
Begeleiding bij het schrijven van subsidie aanvraag
Posted in: Posts07/06/2021Financiering is er, uit veel verschillende bronnen. De aanvraagprocedure voor deze financiering kan ontmoedigend...


.png)