2340
Hogar Lámparas decorativas RRT-W "Evlampiya"
Francamente, no me acuerdo cómo empezó todo. Supongamos, de nuevo estaba aburrido y quería un poco de luz al final del túnel, aunque, al menos en principio. Poco a poco la forma deseada en luz de noche que se convierte en un movimiento de su mano. Y posteriormente transformado en una lámpara decorativa con brillo ajustable, diferentes tonos brillan y todo tipo de características adicionales. A saber, indicador de temperatura detrás e iluminación sala de control.
Y todo esto sucedió porque las luces interiores más barato de IKEA, un par de metros de tira de LED, Arduino, y un pequeño puñado de módulos y componentes.
Conoce Evlampiya h4> Me gustaría algún tipo de lenguaje burocrático como "Lámpara RRT-Z" Evlampiya "está destinada a ser utilizada con fines decorativos dentro de las instalaciones", pero entonces será necesario escribir sobre el cumplimiento estricto de las instrucciones, lo que están ausentes. Así que voy a ser más fácil, sobre todo porque es el principio básico de la gestión Evlampiev.
.
Así que lo que ella es capaz de:
1) lamparita trabajo
2) Luz de trabajo Lámpara de fondo
3) muestra la temperatura en la calle
4) El trabajo decorativo pantalla de la lámpara con el cambio manual de
5) El trabajo decorativo pantalla de la lámpara con un cambio cíclico
6) para controlar la luz en la habitación *
* Controles y conmutadores Livolo chips de radio-roseta SC / PT2260 / 2262 y código fijo similares.
Como se puede adivinar, la lámpara se controla los movimientos horizontales y verticales. En este caso, el barrido horizontal de los controles o de la lámpara, o modos de conmutación en un círculo (lámparas, termómetros, arco iris mano, arco iris automático).
La razón es que yo quería conseguir de alguna manera lejos de todas las consolas, interruptores y otros vayfay. Conocer, los tonos claros y dependen, por así decirlo, un juego de manos. Mano, por supuesto, mencionó condicional - adaptarse a cualquier obstáculo. Pero ya que la gente por lo general las manos en lugar de obstáculos en el futuro -. La mano
Teniendo en cuenta esta especificidad elegido sensor - IR telémetro Sharp, sobre el que escribió una persona que el dispositivo de destino - urinario automático y otros interesados en ese tipo de un urinario, si algunos sensores familia distancia máxima de trabajo de unos 40 cm. Por otro lado, sé que estos sensores se utilizan en una aspiradora robótica para evitar colisiones con obstáculos.
No es la esencia.
La distancia de trabajo del sensor seleccionado - 80 cm (aunque, de hecho, parece ser mucho más), en el que la tensión de salida es mayor cuanto más cerca del objeto. Pero hay un obstáculo acercándose al umbral en el que la tensión baja, a pesar de que el obstáculo esté más próximo. Desagradable, pero no fatal, especialmente en mi caso es de aproximadamente 4 pulgadas, que pueden compensar la "empotrado" en el diseño del sensor.
Después de seleccionar el sensor, de repente me di cuenta de que sólo la luz suficiente para mí. Y quería un arco iris, y muchos otros bollos - una vez que aún en el tubo será el controlador, cuyos recursos no se utilizan. Así la lista de componentes apareció LED RGB-cinta en lugar de un simple transmisor y el receptor 433 MHz, así como el montaje transistor para controlar cinta. Última parecía más atractivo que sólo unos transistores de efecto de campo, no preguntes por qué.
Para no dejar ambigüedades. El receptor necesita obtener datos sobre los comandos de temperatura y externos - de hecho, sería absurdo dejar pasar la oportunidad de encender y apagar la lámpara con iluminación de fondo a distancia. Se requiere que el transmisor para controlar una luz externa: el fondo sobre la base de enchufes controlados por radio convencionales y la parte superior a través de radio cambia Livolo
.
Accesorios h4> En resumen, yo tenía una lámpara de IKEA, depurar pañuelo Arduino Pro Mini, placa de prototipo, sensor de distancia Sharp, receptor y transmisor con modulación de amplitud a 433 cinta de LED RGB MHz del Banco bajo cerveza, botellas de agua, una caja de polvo de dientes, adaptador AC 9V, elementos de sujeción y un puñado de pequeños alambres potable. No es que fuera suficiente para revivir la estación orbital "Mir", pero Evlampiev suficiente.
Así que (enlaces sólo como un ejemplo):
- Lámpara Qarn ;
- IR sensores de distancia Sharp GP2Y0A21YK , y eso es sólo ficha técnica ;
- Приемник 433 MHz - superheterodino porque receptores regenerativos, me decepcionó. Ya sea porque son, o porque yo no puedo hacer antena normal;
- Передатчик 433 MHz subjetiva - bastante decente y, por otra parte, ya que la antena;
- Arduino Pro Mini ;
- Montaje Transistor ULN2003A ;
- RGB tira de LED - al gusto, me he comprado fuera de línea;
- Adaptador de red - también al gusto, yo pongo algún viejo 9V (a 12 V, que podría ser mejor - de hecho en la cinta 12B);
- Latas de aluminio de 0.5 litros fuera de cualquier bebida;
- Botella de plástico con un diámetro de las latas de aluminio de diámetro interior;
- Dentífrico Banco diámetro al diámetro interior de la lámpara. Similar a un (que compré en tiendas de conveniencia);
- Placa de prototipo, cables de construcción - al gusto;
- Opcional: condensadores 10 uF 0.1 uF 10k resistencia
.
Conducción h4>
Condensadores y pull-up resistor opcional, y no se dan en el diagrama. Los usé como parte de la campaña contra los falsos positivos, pero al final resultó que los potenciales fantasma en nada.
. Espero que más o menos correctamente dibujado.
. así parece que lo que pasó en virtud del régimen. Disculpe, eso es feo. Estoy seguro de que definitivamente va a ser mejor!
Asegúrese de prestar atención a la nutrición sensor de infrarrojos y el receptor. Ellos no necesitan más de 5 V, por lo que comen del estabilizador de Arduino, y no directamente de la fuente de alimentación.
Milagro de milagros h4> Montaje de todo esto en una sola unidad estaba ocupado absolutamente increíble. Para empezar, excepto la lámpara de IKEA también necesitará una botella de plástico con una capacidad de 0,5 litros, lata de aluminio de la misma capacidad de cualquier bebida y plástico lata de polvo de dientes. Eso es porque en mi cabeza había un concepto siguiente: RGB-cinta está pegada a la lata de aluminio. Resulta que algunos análogo de la famosa "kukuruzin" chino, que se coloca dentro de la lámpara de techo.
. lámpara original, cuidadosamente dividir en partes
Banco son necesarios para servir a algún disipador de calor y no hay medios para observar la geometría elaborado por lo que el emisor de luz. En el mismo banco en un plan del creador (es decir, yo) y colocar la placa de control. Pero como el metal banco, entonces el corto circuito de protección primitiva:. Laying pre-recortado dentro de una botella de plástico, que sirve como un aislante del
Por lo tanto la ley Eulampia: diámetro exterior de la botella no debe exceder el diámetro interior de la lata
.
En cuanto a los bancos de polvo de diente, se exige que, en primer lugar, más o menos estéticamente agradable cubierta contra el polvo y las miradas indiscretas parte superior de la lámpara. Y al mismo tiempo - es conveniente fijar el sensor y colocar el receptor al transmisor. Después de todo, en un metal puede tener pocas posibilidades de actividades productivas.
Otros milagros en orden:
azar compró un par de metros de tira de LED sólo lo suficiente para envolver el tarro Banco para cortar con cuidado la punta de la rosa perfecta en la lámpara botella aislante encajan perfectamente en el banco < / Banco desde el diámetro polvo de dientes casi encaja en el diámetro interior del techo. "Casi" en este caso significa que hay violaciónes menores geometría cubiertas que en parte debido al hecho de que los bancos de la vivienda todavía comprimen, y en parte al hecho de que la tapa de la jarra tenía para hacer un agujero para el sensor IR. ul > . aproximadamente a la deformación
"Kukuruzina" está unido a la cúpula inferior en el patrón regular el punto de montaje inferior. Por supuesto, por este apego tuvo que romper los elementos "extra", pero el hecho es.
De acuerdo con mi versión del proceso de montaje es el siguiente:
1) Corte la punta de latas de aluminio y corte en su orificio inferior correspondiente al diámetro del agujero en la tuerca de fijación del zócalo de la lámpara. Tuerca pegado a la parte inferior de los bancos - en el futuro será todo enrosca en el soporte de cartucho
.
. como esto
2) Desde el cartucho de montaje elimina su propio cartucho y detalles que impiden enhebrar el cable en el orificio con un tapón para alimentar el controlador.
.
3) Aquí tendría que cortar cuidadosamente la parte inferior de la botella y cortó la nariz, de modo que, por un lado de la nariz, que se coloca cerca de la parte inferior de los bancos, el controlador elimina el contacto con las paredes de metal, y por el otro, de modo que la botella no sobresalga más allá de los bancos de altura. Pero a medida que los dos hicieron un error, el resultado puso en la parte inferior de la parte inferior bancos de la botella (con el agujero, por supuesto, y la parte superior (corte nariz excesivamente hacia abajo) - el resto de la botella
.
.
4) tira de LED se pega alrededor de los bancos a fin de crear una densidad suficiente de LEDs y simultáneamente mantener en longitud (2 metros). Pegado desde el fondo de los bancos, de entrada conduce hasta luego bajarlos en el frasco, al controlador.
.
5) En una olla limpia de polvo de dientes ¿Los dos grandes agujeros. En la parte inferior y la tapa tanto en el transmisor. Las aberturas no deben ser menores que el diámetro del sensor. En el fondo del agujero puede ser casi cualquier forma, pero de manera óptima rectangular, porque al lado de él para hacer un par de agujeros más pequeños - para el montaje del sensor montantes. La cubierta estaba cómodo haciendo una ronda, ya que fue en realidad marcada por sellado de fábrica, y me cortó cuidadosamente su-una oficina cuchillo pintura normal.
. En primer lugar me perforado dos agujeros redondos para el sensor, pero cuando se hizo evidente que se necesita para pasar de la orilla de los bancos, luego tuvo que hacer un "fracaso" de verdad, o se refleja desde el fondo de los bancos
Cuidadosamente, taladre el agujero para el sensor M4 (si hay un hardware M3 - tomarlo y no perforar) y pincho en los tornillos, tuercas de seguridad.
.
Enrosque los tornillos todavía en la tuerca y rosca a través de agujeros en la parte inferior de sus bancos, y en la parte superior - incluso en la tuerca. Este diseño le permite ajustar la posición del sensor mecánico para afinar la línea de base. De cara al futuro - nivel básico es el nivel en el que Evlampiya cree que su mano estaba cubierta, y todos debemos apagar
.
.
El banco también requieren agujeros para receptor y transmisor de 433 MHz, que también debe ser más o menos perfectamente escondido.
6) conectado a las tiras de LED del controlador, IR sensor, transmisor y receptor de 433 MHz. Pase la parte inferior para cubrir el cable de alimentación y también está conectado al controlador.
. ya están visto parcialmente un agujero rectangular en la parte inferior de los bancos "diente"
7) Pone el kukuruzinu controlador, cerrar toda la estructura lata de polvo de dientes.
8)? !!!
9) RESULTADO !!!
algoritmo h4> Aquí me han tratado de presentar las funciones del núcleo algoritmo Eulampia, con exclusión de radio control. Además, este algoritmo - una parte del ciclo ejecutable indefinidamente
.
Código h4>
Además del código requerido dos bibliotecas:
Cambiar RC Livolo También, usted primero tiene que averiguar empíricamente, y luego en las variables sección para establecer el alcance del sensor, dependiendo de cómo usted lo pone.
Esta top variables y abajo , comentarios marcados "Ajuste de la zona superior" y "Ajuste de la zona inferior».
El código también se mantuvo líneas de depuración - si es necesario, se puede convertir
.
PD Evlampiya hasta que reciba mostrar el modo de temperatura se ha parpadea constantemente tres colores y cambia al modo siguiente.
Todo lo que se adquiere por el exceso de trabajo
& lt; code class = & quot; cpp & quot; & gt; // beta 3 - zona de la distancia calibrada a un profesional de ajuste proporcional de brillo y tono // beta 4 - añadido Tally luz externa conmutable, control remoto de la lámpara // beta 4 - compresión de los valores de temperatura de entrada para las temperaturas de color fijos // beta 4 - ajustar la temperatura de color: / * -35 a -25 -25 0 Azul - turquesa 15 -15 -15 - cian claro 0 50 0 - 15 Luz Verde 85 15-20 100 Verde 20-25 Amarillo-verde 170 25 - 30 Amarillo-Rojo Frambuesa 30 + 235 254 // RED: si (colorv & lt; 100) {targetR = colorv * 0,05; } Else {targetR = 5+ (colorv-100) * 1,29; } // VERDE si (colorv & lt; 75) {// 0-180 targetG = 2.4 * colorv; } Si (colorv & gt; 75 & amp; & amp; colorv & lt; 100) // {180-254 targetG = 180 + (colorv-75) 2.96 *; } Si (colorv & gt; 100 & amp; & amp; colorv & lt; 150) {// 254 targetG = 254; } Si (colorv & gt; 150 & amp; & amp; colorv & lt; 200) // {254-154 targetG = 254 - (colorv-150) * 2; } Si (colorv & gt; 200) {// 154-0 targetG = 154 - (colorv-200) * 2,85; } // Si AZUL (colorv & lt; 100) {targetB = 254 - colorv * 2.54; } Else {targetB = colorv * 0.05; } * / #include & Lt; RCSwitch.h & gt; // Control de sockets SC2260 / 2262 http://code.google.com/p/rc-switch/ #include & lt; livolo.h & gt; // Control switches Livolo #define TxPin 8 // pin transmisor Livolo Livolo (8); // Objeto Livolo RCSwitch myswitch = RCSwitch (); // Objeto RC-Switch int WeatherData = 0; dimmerDelay largo sin signo, Timerstart, TimerStop, timerSwitchStart, timerSwitchStop, timerRange; // Timers int prevRange, nowRange, tempRange, switchRange, vectorRange, initRange, telémetro, tempC; byte nightLightLevel, arco iris, delta, redb, Greenb, blueB, targetL, targetR, targetG, targetB, lastValueRGB; LightMode byte = 0; // Lámpara Modo (0 - luz de noche 1 - lámpara, 2 - termómetro, 3 - Manual de arco iris, 4 - arco iris automático) byte lastMode = 1; // Modo para la primera convocatoria siempre lámpara byte valueRGB = 0; // Brillo o tono (nowRange valor normalizado) rainbowUp boolean, followMeLight; // Dirección arco iris momento boolean = false; // Sign corriendo temporizador (mano sobre la lámpara) SWITCHLOCK boolean = false; // Firma la prohibición de cambiar a la eliminación de la lámpara de mano con tempLock boolean = false; // Sign prohibición de la temperatura de la pantalla para producir una nueva luz de fondo boolean = false; // Sign corriendo mainLight boolean nuevo la luz = false; // Señal de trabajar tragaluz boolean NightLight = false; // Sign modo de luz nocturna tempRcvd boolean = false; // Señal de la temperatura resultante 65 // #define nightLightLimit brillo de luz nocturna #define rangePin A0 // #define redPin sensor de obstáculos 9 // #define greenPin rojo verde 10 // 11 inferior #define azul // #define BluePin 630 // zona inferior ajuste // #define ajuste de zona top 20 // #define delta desviación admisible superior 135 en la determinación del #define shortDelay distancia 350 // retardo para cambiar los modos #define longDelay 3000 se necesita 100 // #define timeOutRange cálculo distancia de separación desde & quot ; slip & quot; distancia mano varía, y cambiando así el brillo o el color #define rainbowStep 75 // cambiar sombra intervalo del arco iris 35 // #define velocidad dimmerStep lamparita mudo void setup () {// Serial.begin (9600); pinMode (rangePin, INPUT); pinMode (redPin, OUTPUT); pinMode (greenPin, OUTPUT); pinMode (BluePin, OUTPUT); mySwitch.enableTransmit (TxPin); // Permite permanecer mySwitch.enableReceive (0); // Recepción de compañía (interrumpir 0 - & gt; pin 2) rgbLight (0, 0, 0); // La lámpara está apagada lastMode = 1; // Primero inclusión es siempre en el modo de luz timerRange = millis (); // Inicia el temporizador para leer periódicamente nowRange distancia = GetRange (); // Primero distancia de cálculo} void loop () {// DISTANCIA calcular periódicamente si ((millis () - timerRange) & gt; timeOutRange) {// tiempos de cálculo de distancia timeOutRange prevRange = nowRange; // Memoria del valor anterior de la distancia nowRange = GetRange (); // El valor actual de la distancia timerRange = millis (); // Cambiar la distancia temporizador cálculo del intervalo // Serial.print (& quot; Rango: & quot;); // Serial.println (nowRange); } // Pasó la mano - se inicia la mano temporizador y de conmutación (en su caso), detenido - funciones de servicio (si es necesario) si ((nowRange & lt; inferior + delta) & amp; & amp; (nowRange & gt; superior)) {// si la distancia es mayor que el umbral y menor que el límite superior si (nowRange & gt; inferior - delta) {// apagar la luz antes de & quot; abajo & quot; como un indicador de la mano con la exclusión completa de (2 * delta) valueRGB = 0; } Else {valueRGB = 254 - mapa (nowRange, superior, inferior, 0, 254); // Fundido el valor actual a una gama de 0 a 254 y & quot; revolución & quot; } // Serial.print (& quot; valueRGB: & quot;); // Serial.println (valueRGB); // Mapa Color para cambiar el fondo y un tragaluz si (LightMode == 1) {// si el modo de lámpara si (valueRGB & gt; 70 & amp; & amp; valueRGB & lt; 110) {// si la mano en la mitad de la mitad inferior de followMeLight = true ; // Kill mordió Dimming está permitido luz blanca único indicador sombra lastValueRGB = valueRGB; // Memoria de la última valores de brillo rgbLight (0, 255, 0); // El color verde como un indicador de la capacidad de cambiar & quot; cerca de & quot; Luz // Serial.println (& quot; Conjunto verde a 255 & quot;); } Else {if (valueRGB & gt; 175 & amp; & amp; valueRGB & lt; 215) {// si la mano en la mitad de la mitad superior followMeLight = true; lastValueRGB = valueRGB; // Memoria de la última valores de brillo rgbLight (0, 0, 255); // El color azul como un indicador de la capacidad de cambiar & quot; ahora & quot; Luz // Serial.println (& quot; Set Blue a 255 & quot;); } Else {if (valueRGB & gt; 235) {// si la mano está en el límite superior followMeLight = true; lastValueRGB = valueRGB; // Memoria de la última valores de brillo rgbLight (valueRGB, 0, 0);