Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
O-Zone er en DIY Bluetooth-lampe. Du kan endre fargen på lampen og lysstyrken på lysdioder. Du kan bruke smarttelefonen, nettbrettet for å slå på lyset, endre fargene og stemningen i rommet ditt.
Materialene til lampen er:
1 x Lyseblå bønne med batteri
1 x Adafruit Neopixel ring (16 x lysdioder)
Praktisk Bluetooth -app iOS
Bluethooth Terminal for Android
Materialene for strukturen er:
3 mm (3,1 tommer) tre
1,5 mm (0,05 tommer) hvitt plexiglass
Trinn 1: Strukturen til kuben
For lampens struktur har jeg designet en terning. En enkel, men lineær trekube. Jeg har kuttet veden med min lasergraver. Jeg har også kuttet en sirkel inni kubens øvre flate. Inne i skjæret har jeg satt en hvit plexiglasring. Jeg kuttet plexiglasset med 40W laserskjæring. Du kan bruke det hvite plexiglasset, ettersom Adafruit led -ringen har mange farger. Du kan også bruke en gjennomsiktig Plexi, men jeg tror den hvite er bedre for jevningskvaliteten på lyset.
For å kutte strukturen kan du bruke laserskjæreren din, eller du kan bruke en laserskjæringstjeneste som Fablab, eller du kan også sende prosjektet til en online tjeneste som Shapeways.
Legg bitene sammen med et vinyllim. Etter montering av Adafruit Neopixel -ringen med plexiglassringen. For plastdelene kan du bruke et akryllim. Montering alt sammen.
Etter dette trinnet er strukturen din klar!
Trinn 2: Programmer stansen gjennom lyseblå bønne
For programmering av Light BlueBean kan du bruke Arduino IDE. Når du lader fastvaren på Light BlueBean, må du bruke Bluetooth -kommunikasjonen. Du kan bruke Arduino IDE og kombinere dette programmet med Punch Trough Light BlueBean loader. Se det offisielle nettstedet for detaljer.
Kom i gang med Light BLUEBean
Du kan bruke denne koden for Light BlueBean:
/* ******************************************
* O-sone Bluethooth-lampe
* 31. mars 2017
* Giovanni Gentile
* for Punch Through Light BlueBean
**********************************************/
#include "Adafruit_NeoPixel.h"
// Pinnen som er koblet til NeoPixels
#definere PIN 5
// Mengden lysdioder i NeoPixels
#define NUMPIXELS 16 int bright = 20; boolsk lumi = 1; boolsk foregåendeLumi = 1;
Stringkommando;
boolsk commandStarted = false; Adafruit_NeoPixel piksler = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); LedReading ledColor; LedReading previousLedColor; ugyldig oppsett () {Serial.begin (); // Initialiser NeoPixels pixels.begin (); }
void loop () {
getCommand (); }
/*
Denne funksjonen leser den serielle porten og ser etter starttegnet '#' hvis starttegnet hvis det blir funnet vil legge alle mottatte tegn til kommandobufferen til den mottar sluttkommandoen ';' Når sluttkommandoen er mottatt, kalles kommandoenCompleted () -funksjonen. hvis et annet starttegn blir funnet før et slutttegn, blir bufferen slettet og prosessen starter på nytt. */ void getCommand () {while (Serial.available ()) {char newChar = (char) Serial.read (); if (newChar == '#') {commandStarted = true; command = "\ 0"; } annet hvis (newChar == ';') {commandStarted = false; commandCompleted (); command = "\ 0"; } annet hvis (commandStarted == true) {kommando += newChar; }}}
/*
Denne funksjonen tar den fullførte kommandoen og kontrollerer den mot en liste over tilgjengelige kommandoer og kjører den riktige koden. Legg til ekstra 'if' -setninger for å legge til kommandoer med koden du vil utføre når kommandoen mottas. Det anbefales å opprette en funksjon for en kommando hvis det er mer enn noen få kodelinjer for som i eksempelet "av". */ void commandCompleted () {if (command == "low") {bright = bright - 10; lumi = -lumi; Serial.print (lyst); } hvis (kommando == "høy") {lys = lys + 10; lumi = -lumi; Serial.print (lyst); } if (kommando == "rød") {Bean.setLed (255, 0, 0); Serial.print ("LED ble rød"); } if (kommando == "grønn") {Bean.setLed (0, 255, 0); Serial.print ("LED ble grønn"); } if (kommando == "blå") {Bean.setLed (0, 0, 255); Serial.print ("LED ble blå"); } if (kommando == "gul") {Bean.setLed (255, 255, 0); Serial.print ("LED ble gul"); } if (kommando == "oransje") {Bean.setLed (255, 60, 0); Serial.print ("LED ble oransje"); } if (kommando == "lilla") {Bean.setLed (128, 0, 128); Serial.print ("LED ble lilla"); } if (kommando == "hvit") {Bean.setLed (255, 255, 255); Serial.print ("LED ble hvit"); } if (kommando == "av") {av (); } if (Bean.getConnectionState ()) {// Få verdiene fra Bean's innebygde LED ledColor = Bean.getLed (); } if (lumi! = previousLumi || ledColor.red! = previousLedColor.red || ledColor.green! = previousLedColor.green || ledColor.blue! = previousLedColor.blue) {for (int i = 0; i
/*
Bruk en egen funksjon som denne når det er mer enn bare noen få kodelinjer. Dette vil bidra til å opprettholde ren, lettlest kode. */ void off () {Bean.setLed (0, 0, 0); Serial.print ("LED slått av"); }
Trinn 3: Koble den lyseblå bønnen til Adafruit Neopixel Ring
Etter at fastvaren er lastet opp, kan du bruke Light BlueBean med smarttelefonen. Du kan prøve programmet ved å bruke rgb led onboard. Etter at du kan koble Adafruit 16x ringen.
Vær OBS, koble VCC til Light BlueBean 5v, GND til Light BlueBean GND og datapinnen på din Adafruit Neopixel ring på pin nummer 5
Trinn 4: Bluetooth -appen og seriell kommunikasjon
Koden inne i Light BlueBean mottar data fra serienummeret. Du kan sende den serielle strengen til BlueBean ved å bruke Bluetooth -protokollen. Jeg bruker Handy BLE for iOS. Du kan bruke denne appen til å sende hvilken som helst streng du vil bruke via Bluetooth -protokollen. Jeg har laget et dashbord som har 6 sirkelfarger, 1 Av -sirkel og to kvadrater Bright. Firkantkommandoene er for å sette opp og ned lysstyrken til lysdioder.
Den serielle kommandoen som BlueBean godtar er:
For å fargelegge lysdiodene:
#rød;
#lilla;
#blå;
#grønn;
#gul;
#oransje;
For å slå av lysdiodene:
#av;
For å regulere lysstyrken:
#lav;
#høy;