Naadloze LED-dimmer met Bolt IoT en Arduino UNO
Onderdelen en benodigdheden
| Onderdeel | Aantal |
|---|---|
| Bolt IoT WiFi-module | 1 |
| Arduino UNO | 1 |
| LED (standaard) | 6 |
| Weerstand 330 Ω | 6 |
| Solderloos breadboard (half-size) | 1 |
| Jumperdraadjes (male-male) | 7 |
| USB A-naar-B kabel | 1 |
Apps en online diensten
- Arduino IDE
- Bolt Cloud (cloud.boltiot.com)
Over dit project
Continu brandende TL-buizen kosten geld en kunnen irriteren. Met dit project regel je de helderheid van tot 6 LEDs (als prototype voor verlichting) vanaf je smartphone via de Bolt Cloud.
Bolt IoT-platform
Bolt IoT biedt een veilige manier om apparaten te besturen en data te verzamelen, met machine learning voor anomaly-detectie en voorspellingen. Meer info: boltiot.com.
Pulsbreedtemodulatie (PWM)
PWM regelt de gemiddelde spanning door het signaal snel aan/uit te schakelen en de "aan"-tijd (duty cycle) te variëren. De Arduino UNO heeft 6 PWM-pinnen (3, 5, 6, 9, 10, 11).
Hardware-montage
- Controleer of alle LEDs werken.
- Kathodes van LEDs naar GND-rail; anodes via 330 Ω weerstanden naar de 6 PWM-pinnen.
- Arduino GND → breadboard GND.
- Bolt TX → Arduino RX (pin 0), Bolt RX → Arduino TX (pin 1).
- Bolt 5V → Arduino 5V, Bolt GND → Arduino GND.
- Belangrijk: Verwijder de TX/RX-verbindingen tussen Bolt en Arduino voordat je de sketch uploadt.
Bolt instellen
- Account aanmaken op cloud.boltiot.com.
- Bolt IoT-app downloaden, inloggen, apparaat toevoegen.
- Noteer Device ID en genereer een API Key (Cloud > API > Enable).
Bolt Cloud API
De API gebruikt HTTP GET-requests. Syntaxis:
https://cloud.boltiot.com/remote//?deviceName=¶m1=...
Belangrijke API-calls voor dit project
- Seriële communicatie starten:
.../serialBegin?baud=9600&deviceName=BOLTxxxxxx - LED aansturen (data = "ON
"): .../serialWrite?data=ON 1 120 &deviceName=BOLTxxxxxx(let op spatie aan het einde!) - Reactie lezen:
.../serialRead?till=10&deviceName=BOLTxxxxxx
Arduino-code
Installeer de BoltIoT-Arduino-Helper bibliotheek via GitHub, dan upload onderstaande sketch.
#include <BoltIoT-Arduino-Helper.h>
int pwm_pin[] = {3, 5, 6, 9, 10, 11};
String switchOn(String *data) {
int pin = data[0].toInt(); // 1-6
int pwm = data[1].toInt(); // 0-255
if (pin < 1 || pin > 6) {
return "pin number should be b/w 1 and 6";
}
pin--; // 0-based index
analogWrite(pwm_pin[pin], pwm);
return "Pin " + String(pin) + " was set to pwm value " + String(pwm);
}
void setup() {
for (int p : pwm_pin) pinMode(p, OUTPUT);
boltiot.begin(Serial);
boltiot.setCommandString("ON", switchOn, 2, ' '); // 2 params, gescheiden door spatie
}
void loop() {
boltiot.handleCommand();
}
Werkingsprincipe
De Arduino luist continu naar seriële commando's van de Bolt. Bij ontvangst van "ON" gevolgd door pin-nummer en PWM-waarde, valideert hij de pin, voert analogWrite uit en stuurt een bevestiging terug.
Schema
Productieproces
- Universele Android-afstandsbediening bouwen met Arduino, 1Sheeld en IR-besturing
- Een slimme voltmeter bouwen met Arduino en smartphone – Eenvoudig DIY-project
- Nauwkeurige Frequentie- en Duty Cycle-meting met Arduino UNO
- Slimme Zelfzittende Schoenen met Ingebouwde Energie-opwekking
- Realtime afstandsmeting met Arduino Sonar & Processing visualisatie
- Arduino & MPU6050: Precieze Servomotor Besturing met SG90 & MG996R
- Bouw een Slimme Arduino-gestuurde Robotarm: Eenvoudige DIY Handleiding
- Arduino Flip Clock met 8×8 LED Matrix – DIY Real-Time Clock Project
- Een 8×8 LED-matrix beheersen met Arduino Uno: Stap-voor-stap handleiding
- Bouw een compacte FM-radio met Arduino Nano en RDA5807M
- CNC-bewerking: precisiefabricatie van materialen en componenten