Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Onderdelen en benodigdheden

Arduino UNO 1
Espressif ESP8266 ESP-01 1
DHT22 Temperatuur/vochtigheidssensor 1
DS18B20 1-Wire digitale temperatuursensor (voor grond) 1
LDR (lichtgevoelige weerstand) 1
2-kanaals 5V Relaismodule 1

Apps en online diensten

  • Arduino IDE
  • ThingSpeak API
  • MIT App Inventor

Over dit project

Doel: data van een lokaal systeem (sensoren/actuatoren) verzamelen en naar internet sturen. Een gebruiker kan wereldwijd de data bekijken en opdrachten sturen naar actuatoren. We gebruiken de klassieke combinatie Arduino UNO + ESP-01, ThingSpeak als cloudplatform en een Android-app via MIT App Inventor.

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Het project meet:

  • Luchttemperatuur en relatieve vochtigheid (DHT22)
  • Grondtemperatuur (DS18B20)
  • Grondvochtigheid (YL-69 + LM393)
  • Lichtintensiteit (LDR)

Actuatoren:

  • Elektrische pomp
  • Elektrische lamp

De status van actuatoren (AAN/UIT) wordt ook naar de cloud gestuurd. Beslissingen: pomp AAN als grondvochtigheid te laag, lamp AAN als grondtemperatuur te laag. Bediening via Android-app.

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

ThingSpeak fungeert als centraal hub: de lokale unit schrijft sensordata naar een Status Channel en leest actuatorcommando's uit Actuator Channels. De app leest de Status Channel en schrijft naar Actuator Channels.

Stap 1: Introductie

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

We gebruiken ThingSpeak.com, een open IoT-platform voor data verzamelen, analyseren en actie ondernemen.

Stap 2: Stuklijst (BoM)

  • Arduino UNO – $10,00
  • ESP8266-01 – $3,50
  • DHT22 – $9,00
  • DS18B20 – $6,00
  • YL-69 + LM393 (grondvochtigheid) – $2,00
  • LDR – $0,20
  • 2x LEDs (rood/groen)
  • 2-kanaals 5V Relaismodule met optocoupler (laag-actief) – $7,00
  • 5V DC Pomp – $3,00
  • 220V Lamp
  • Weerstanden: 2x 330Ω (LEDs), 2x 10kΩ (DHT22, LDR), 1x 4k7Ω (DS18B20)
  • Breadboard, jumperdraden, externe 5V voeding voor relais

Stap 3: Hardwareopbouw

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Bouw en test stap voor stap:

  1. Installeer en test alle sensoren lokaal.
  2. Configureer ESP-01 (BareMinimum test).
  3. Pas ESP-01 aan voor definitieve configuratie en test.
  4. Configureer ThingSpeak Status Channel.
  5. Upload ThingSpeak-code naar Arduino en controleer sensordata in de cloud.
  6. Ontwikkel eerste app-versie voor statusweergave.
  7. Installeer actuatoren (LEDs, relais).
  8. Configureer ThingSpeak Actuator Channels.
  9. Test Arduino-code met actuatoren.
  10. Ontwikkel finale app-versie.

Stap 4: Sensoren aansluiten

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Benodigde bibliotheken: OneWire, DallasTemperature, DHT. Voorbeeld initialisatie:

// DS18B20
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 5
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);
int soilTemp = 0;

// DHT22
#include "DHT.h"
#include <stdlib.h>
int pinoDHT = 11;
int tipoDHT = DHT22;
DHT dht(pinoDHT, tipoDHT);
int airTemp = 0, airHum = 0;

// LDR
#define ldrPIN A1
int light = 0;

// Grondvochtigheid
#define soilHumPIN A0
int soilHum = 0;

In setup() en loop():

void setup() {
  Serial.begin(9600);
  DS18B20.begin();
  dht.begin();
}
void loop() {
  readSensors();
  displaySensors();
  delay(10000);
}

Functies readSensors() en displaySensors() lezen de sensoren uit en printen naar de seriële monitor. Zie de originele code voor details.

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Stap 5: ESP8266-01 initiële configuratie

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

De ESP-01 fungeert als seriële bridge met AT-commando's. Stel de baudrate in op 9600 (fabrieksstandaard is vaak 115200). Gebruik AT+UART_DEF=9600,8,1,0,0 voor permanente instelling. Zet de module in Station Mode (AT+CWMODE=1) en verbind met WiFi (AT+CWJAP="SSID","wachtwoord"). Controleer IP met AT+CIFSR.

Stap 6: ESP-01 testen

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Na configuratie, sluit ESP-01 aan op Arduino: RX→D7, TX→D6, CH_PD→3.3V, RST→D8, VCC→3.3V, GND→GND. Test met een eenvoudige SoftwareSerial-bridge sketch en AT-commando's (AT, AT+RST, AT+GMR, AT+CWMODE?, AT+CWLAP, AT+CIFSR). Voeg een connectWiFi() functie toe aan setup() voor automatische herverbinding na reset.

Stap 7: Sensoren en ESP-01 combineren

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Alle sensoren en ESP-01 zijn nu klaar voor dataverzending naar internet.

Stap 8: ThingSpeak instellen

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Maak een ThingSpeak-account en een nieuw kanaal met velden:

  • Veld 1: Actuator 1 (pomp)
  • Veld 2: Actuator 2 (lamp)
  • Veld 3: Luchttemperatuur (°C)
  • Veld 4: Luchtvochtigheid (%)
  • Veld 5: Grondtemperatuur (°C)
  • Veld 6: Grondvochtigheid (%)
  • Veld 7: Lichtintensiteit (%)
  • Veld 8: Reserve (bijv. foutenteller)

Noteer de Write API Key van dit Status Channel.

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Stap 9: Status naar de cloud sturen

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Data versturen gebeurt in drie stappen via AT-commando's:

  1. AT+CIPSTART="TCP","184.106.153.149",80 (TCP verbinding met ThingSpeak)
  2. AT+CIPSEND=116 (lengte van GET-string)
  3. GET-string: GET /update?api_key=YOUR_WRITE_KEY&field1=pomp&field2=lamp&field3=airTemp&field4=airHum&field5=soilTemp&field6=soilHum&field7=light&field8=spare

De volledige Arduino-code voor dit deel is beschikbaar op GitHub: SendingStatusTS_EXT.ino.

Stap 10: Android App – Deel 1: Status monitoring

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Maak in MIT App Inventor een interface met labels voor sensorwaarden en actuatorstatus. Elke 2 seconden (Clock1) haalt de app de laatste data op van de ThingSpeak Status Channel via een HTTP GET. De JSON-respons wordt geparsed en weergegeven. Een alarmprocedure (Clock2, 1 sec) laat waarschuwingen knipperen bij te lage grondtemperatuur (<10°C) of vochtigheid (<60%).

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor
Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor
Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor
Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

App-broncode: ArduFarmBot_Status_App_EXT.aia op GitHub.

Stap 11: Actuatoren installeren (LEDs en relais)

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Relaismodule met optocoupler (laag-actief) wordt aangesloten op Arduino pinnen 10 (pomp) en 12 (lamp). Relais-GND niet verbinden met Arduino-GND om ruis te voorkomen.

Stap 12: ThingSpeak Actuator Channels configureren

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Maak twee aparte kanalen: één voor pomp (kanaal ID 375598), één voor lamp (kanaal ID 375599). Alleen Veld 1 wordt gebruikt: 0 = UIT, 1 = AAN. Noteer Read/Write API Keys.

Stap 13: Arduino-code met actuatoren testen

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Nu leest de Arduino van de Actuator Channels (GET /channels/ID/fields/1/last) om commando's op te halen. Elke 10 seconden wordt gecontroleerd. Code: ReadingCommandTS_EXT.ino op GitHub.

Stap 14: Handmatig actuatoren testen via browser

Je kunt actuatoren ook handmatig schakelen via URL's in een browser:

Pomp AAN:  https://api.thingspeak.com/update?api_key=ACT1_WRITE_KEY&field1=1
Pomp UIT:  https://api.thingspeak.com/update?api_key=ACT1_WRITE_KEY&field1=0
Lamp AAN:  https://api.thingspeak.com/update?api_key=ACT2_WRITE_KEY&field1=1
Lamp UIT:  https://api.thingspeak.com/update?api_key=ACT2_WRITE_KEY&field1=0

Stap 15: Android App afmaken (besturing toevoegen)

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Voeg knoppenparen (AAN/UIT) toe voor pomp en lamp. Bij indrukken verandert knopkleur (blauw/rood) en wordt een WRITE naar het bijbehorende Actuator Channel gedaan. Test de volledige app.

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor
Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor
Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

Complete app: ArduFarmBot_V1_EXT.aia op GitHub.

Stap 16: Alles combineren

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

De finale code combineert periodiek sensoren uitlezen & naar Status Channel schrijven, en actuatorcommando's lezen van Actuator Channels. Er is een watchdog voor ESP-01 (AT-commando check, anders hardware reset). Volledige code: ArduFarmBot_Light_EXT.ino op GitHub.

Stap 17: Conclusie

Bouw eenvoudige IoT-projecten met Arduino UNO, ESP-01, ThingSpeak & MIT App Inventor

De combinatie Arduino UNO + ESP-01 biedt een uitstekende, lage-kosten instap in IoT. Meer projecten op MJRoBot.org en GitHub: ArduFarmBot_Light.

Code

Alle codefragmenten (sensoren testen, ESP-01 configureren, ThingSpeak schrijven/lezen, gecombineerde finale sketch) zijn beschikbaar in de originele projectpagina en op GitHub.

Schema

Elektrisch schema (Fritzing): GitHub link

Productieproces

  1. Parallelle C++17 SYCL-code Bouwen op Raspberry Pi 4B+ IoT-boards
  2. Real-time IoT hartslagmonitor met Arduino en MAX30100
  3. Arduino Uno WiFi Webserver: LED aan/uit schakelen via browser
  4. Bouw een eenvoudige rekenmachine met Arduino UNO – Makkelijk project
  5. Een draagbaar Persistence-of-Vision-display bouwen met Arduino UNO en ATtiny85
  6. Contactloze temperatuurgate voor snelle, accurate screening
  7. Arduino UNO & WiFi Shield: Realtime Temperatuurweergave op het Web via Serieel
  8. Realtime Weerstation met Arduino & ThingSpeak IoT
  9. Slim Temperatuurmonitoring Systeem voor Scholen: Nauwkeurig, Real-time en Beveiligd
  10. Thermistor Gebruik Gemaakt Eenvoudig: Stap-voor-Stap Arduino Handleiding
  11. Azure IoT Zwembadbeheersysteem: Slimme Sensoren & Remote Monitoring