HomeBright: Slimme thuisonverlichting met Leap Motion & Arduino UNO
Onderdelen en benodigdheden
| Onderdeel | Aantal | Opmerkingen |
|---|---|---|
| Arduino UNO | 1 | |
| Leap Motion Controller | 1 | |
| LED (algemeen) | 4 | |
| Draadjes (algemeen) | 10 |
Apps en online diensten
- Arduino IDE
Over dit project
Deze app gebruikt Leap Motion en Arduino Uno om een huishoudautomatiseringssysteem te creëren dat de intensiteit van de verlichting in kamers regelt. Een huisplattegrond wordt toegewezen aan de Leap Motion-coördinaten om een specifieke kamer te bepalen. Terwijl de palmpositie de verlichting van een doelkamer regelt, regelt het omhoog of omlaag bewegen van de palm de intensiteit van de verlichting in die kamer.
Instructies
- Installeer Node.js
- Installeer Leap Motion SDK
- Installeer Cylon.js voor Arduino en Leap Motion (zie nuttige links hieronder)
- Of gebruik het package.json-bestand om alle benodigde Node-modules te installeren
Hoe te draaien
Voer uit: node homebright-console.js (zie code sectie)
Nuttige links
- https://developer.leapmotion.com/
- https://cylonjs.com/documentation/platforms/arduino/
- https://cylonjs.com/documentation/platforms/leapmotion/
- https://cylonjs.com/documentation/drivers/led/
Code
- homebright-console.js
- package.json
homebright-console.js JavaScript
Cylon robot die de LED-verlichting bestuurt
"use strict";
var cylon = require("cylon");
cylon.robot({
connections: {
leapmotion: { adaptor: "leapmotion" },
arduino: { adaptor: "firmata", port: "COM7" }
},
devices: {
leapmotion: { driver: 'leapmotion' },
livingroom: { driver: "led", pin: 6, connection: "arduino" },
dininghall: { driver: "led", pin: 9, connection: "arduino" },
bedroom: { driver: "led", pin: 10, connection: "arduino" },
studyroom: { driver: "led", pin: 11, connection: "arduino" }
},
work: function(my) {
my.leapmotion.on("hand", function(hand) {
var on = hand.grabStrength > 0.5 ? false : true;
var x = hand.palmPosition[0];
var z = hand.palmPosition[2];
var value = 0;
if (on) {
value = hand.palmPosition[1];
}
console.log(value);
if (x > 0 && z > 0) {
// woonkamer
my.livingroom.brightness(value);
} else if (x > 0 && z < 0) {
// eetzaal
my.dininghall.brightness(value);
} else if (x < 0 && z > 0) {
// studeerkamer
my.studyroom.brightness(value);
} else {
// slaapkamer
my.bedroom.brightness(value);
}
});
}
}).start();
package.json JavaScript
Node package configuratiebestand
{
"name": "homebright-console",
"version": "1.0.0",
"dependencies": {
"cylon": "1.2.0",
"cylon-gpio": "0.27.0",
"cylon-i2c": "0.23.0",
"cylon-leapmotion": "0.20.0",
"serialport": "1.7.4",
"firmata": "0.5.5",
"cylon-firmata": "0.23.0"
}
}
Schema's
Productieproces
- Bluetooth-gecontroleerde Arduino Spybot bouwen
- FlickMote: Gebarengecontroleerde IR-afstandsbediening voor Slimme Huizen
- DIY Arduino TV-B-Gone: Universele TV-uit-schakelaar
- Bouw een Aangepaste LED Hoofdklok met Alarm – Zichtbaar vanaf 12 Meter
- Find Me: Slimme Item Locator met Arduino en Bluetooth
- Geoptimaliseerde Voedingsoplossingen voor Arduino Projecten
- Arduino Boter-Kaas-Eieren met MAX7219 LED Matrix en Kartonnen Behuizing
- Bouw een Slimme Arduino Vierpotige Robot: Stap-voor-Stap Handleiding
- Bouw een Aangepaste Arduino Joystick Stuurwiel voor Gaming
- Bouw een Volledig Functionele CNC-machine met Arduino Nano R3
- Earth Analyzer: Geavanceerde IoT Sensor Kit voor Milieumonitoring