Sensores caseros para Arduino. Hogar inteligente basado en Arduino: instrucciones de montaje paso a paso. Conociendo Arduino

Pasé por allí, miré y aquí escriben cosas interesantes sobre varios productos caseros. También hice algo recientemente, déjame escribir, creo que tal vez sea útil para alguien o simplemente sea interesante. Estamos hablando de hardware de sensores de bricolaje económico para integrar en paneles de interruptores y enchufes.

Pero pongamos las cosas en orden.

Llevo bastante tiempo interesado en los sistemas de automatización para Smart Homes. Ahora tengo aquí varios sistemas diferentes conectados en un todo. Hay componentes tanto industriales como caseros. Quiero hablaros del último producto casero.

Hace un tiempo me encontré en Internet con el sistema domótico MySensors. Un sistema inalámbrico bastante desarrollado (y en constante desarrollo) basado en Arduino y nRF24L01+. Sin embargo, no se trata de quién está interesado: mire la fuente.

Las principales ventajas del sistema para mí fueron un buen soporte de software, comunicación bidireccional, disponibilidad de componentes y su bajo costo.

Habiendo jugado lo suficiente con las placas de desarrollo, decidí desarrollar un dispositivo que pueda integrarse adecuadamente en el interior de una casa (no se puede ignorar el WAF). El resultado es un dispositivo que, junto con otros, se puede empotrar en la pared en una caja estándar de 63 mm.

Este es el primer montaje, intentaré hacer los siguientes con más cuidado. El orificio grande (para el sensor de luz) se tapará con una varilla de plexiglás.

En forma semiensamblada se ve así:

Vista desde el otro lado:

Todo consta de un Arduino Pro Mini (chino) de 8MHz/3.3V, un módulo de radio nRF24L01+, un sensor de movimiento HC-SR510, un sensor DHT22 (temperatura y humedad), un sensor de luz BH1750 y un enchufe estándar JUNG (probablemente puedas usar otros, como Gira , Berker, etc. Solo usé lo que tenía a mano). Costo total alrededor de $15.

La PCB está diseñada por Eagle. Fuentes. Ordenado en ITEADStudio, estuvo bien hecho (a excepción de la seda, las inscripciones resultaron regulares).



Probablemente la fuente sea demasiado pequeña y delgada. Le quedó bien a la gerbera.



Durante el proceso de montaje se descubrieron algunos inconvenientes menores, algunas cosas podrían mejorarse, pero en general la placa es bastante utilizable.

Buenas tardes, hoy les compartiré instrucciones para hacer un reloj con termómetro de ambiente( Reloj Arduino de bricolaje). El reloj funciona con Arduino UNO; la pantalla gráfica WG12864B se utiliza para mostrar la hora y la temperatura. Como sensor de temperatura - ds18b20. A diferencia de la mayoría de los otros relojes, no usaré RTS (Reloj en tiempo real), pero intentaré prescindir de este módulo adicional.

Los circuitos Arduino se distinguen por su simplicidad y cualquiera puede empezar a aprender Arduino. Puede leer sobre cómo conectar bibliotecas y flashear Arduino en nuestro artículo.

Empecemos.

Para crear este reloj necesitaremos:

Arduino UNO (O cualquier otra placa compatible con Arduino)
- Pantalla gráfica WG12864B
- Sensor de temperatura ds18b20
- Resistencia 4,7 Kom 0,25W
- Resistencia 100 ohmios 0,25 W
- Compartimento de pilas para 4 pilas AA
- Caja a juego
- Archivo fino
- Esmalte de uñas (negro o color corporal)
- Un poco de plástico o cartón fino
- Cinta eléctrica
- cables de conexión
- Placa de circuito
- Botones
- Soldador
- Soldadura, colofonia
- Cinta de dos lados

Preparando la pantalla gráfica.
A primera vista, conectar la pantalla plantea muchos problemas y dificultades. Pero si primero comprende sus tipos, será mucho más fácil y claro. Hay muchas variedades y tipos de pantallas en el controlador ks0107/ks0108. Todas las pantallas se suelen dividir en 4 tipos:
Opción A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Opción B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Displays AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG12864J4, QY-12864 F, TM12 864L-2, 12864J-1
Opción C: Shenzhen Jinghua Displays Co Ltd. JM12864
Opción D: Wintek-Cascades WD-G1906G, Wintek - GEN/WD-G1906G/KS0108B, Wintek/WD-G1906G/S6B0108A, TECDIS/Y19061/HD61202, Varitronix/MGLS19264/HD61202

La lista no está completa, hay muchos. El más común y, en mi opinión, conveniente es el WG12864B3 V2.0. La pantalla se puede conectar a Arduino mediante un puerto serie o paralelo. Cuando se utiliza con Arduino UNO, es mejor elegir una conexión a través de un puerto serie; entonces necesitaremos solo 3 salidas del microcontrolador, en lugar de al menos 13 líneas cuando se conecta a través de un puerto paralelo. Todo se conecta de forma muy sencilla. Hay un matiz más: puedes encontrar a la venta dos opciones de pantalla, con potenciómetro incorporado (para ajustar el contraste) y sin él. Yo elegí, y os aconsejo que hagáis lo mismo, con el incorporado.


Esto reduce el número de piezas y el tiempo de soldadura. También vale la pena instalar una resistencia limitadora de corriente de 100 ohmios para la iluminación. Al conectar 5 voltios directamente, existe el riesgo de quemar la luz de fondo.
WG12864B – Arduino UNO
1 (TIERRA) - TIERRA
2 (VCC) - +5V
4 (RS) – 10
5 (R/W) – 11
6 (mi) – 13
15 (PSB) – TIERRA
19 (BLA) – a través de una resistencia - +5V
20 (NEGRO) – TIERRA

La forma más conveniente es ensamblar todo detrás de la pantalla y sacar 5 cables que se conectan al Arduino UNO. El resultado final debería verse así:


Para aquellos que todavía eligen coneccion paralela Proporcionaré una tabla de conexión.

Y el diagrama para pantallas de la opción B:



Se pueden conectar varios sensores a una línea de comunicación. Uno es suficiente para nuestros relojes. Conectamos el cable del pin “DQ” del ds18b20 al “pin 5” del Arduino UNO.

Preparando el tablero con botones.
Para configurar la hora y fecha en el reloj utilizaremos tres botones. Para mayor comodidad, soldamos tres botones en la placa de circuito y retiramos los cables.


Nos conectamos de la siguiente manera: conectamos el cable común de los tres botones al “GND” del Arduino. El primer botón, que se utiliza para ingresar al modo de configuración de hora y cambiar por hora y fecha, está conectado al "Pin 2". El segundo, el botón para aumentar el valor, es para “Pin 3”, y el tercero, el botón para disminuir el valor, es para “Pin 4”.

Poniendolo todo junto.
Para evitar cortocircuitos, la pantalla debe estar aislada. Lo envolvemos formando un círculo con cinta aislante, y en la parte trasera pegamos una tira de material aislante con cinta de doble cara, cortada a medida. Cartón grueso o plástico fino servirán. Usé plástico de una tableta como papel. El resultado es el siguiente:


Delante de la pantalla, a lo largo del borde, pegamos cinta de espuma de doble cara, preferiblemente negra.


Conecte la pantalla a Arduino:


Conectamos el más del compartimento de la batería al “VIN” del Arduino, el menos al “GND”. Lo colocamos detrás del Arduino. Antes de instalarlo en la carcasa, no olvide conectar el sensor de temperatura y la placa con botones.


Preparando y rellenando el boceto.
El sensor de temperatura requiere la biblioteca OneWire.

La salida a la pantalla se realiza a través de la biblioteca U8glib:

Para editar y completar un boceto, necesita instalar estas dos bibliotecas. Hay dos maneras de hacer esto. Simplemente descomprima estos archivos y coloque los archivos descomprimidos en la carpeta "bibliotecas" ubicada en la carpeta de instalación de Arduino IDE. O la segunda opción es instalar las bibliotecas directamente en el entorno de programación. Sin descomprimir los archivos descargados, en el IDE de Arduino, seleccione el menú Sketch - Connect Library. En la parte superior de la lista desplegable, seleccione "Agregar biblioteca Zip". En el cuadro de diálogo que aparece, seleccione la biblioteca que desea agregar. Abra el menú Sketch nuevamente: Conectar biblioteca. En la parte inferior de la lista desplegable debería ver la nueva biblioteca. Ahora la biblioteca se puede utilizar en programas. No olvides reiniciar el IDE de Arduino después de todo esto.

El sensor de temperatura funciona mediante el protocolo One Wire y tiene una dirección única para cada dispositivo: un código de 64 bits. No es práctico buscar este código cada vez. Por lo tanto, primero debes conectar el sensor al Arduino, subir el boceto que se encuentra en el menú Archivo – Ejemplos – Temperatura de Dallas – OneWireSearch. A continuación, inicie Herramientas - Monitor de puertos. Arduino debe encontrar nuestro sensor, escribir su dirección y las lecturas de temperatura actuales. Copiamos o simplemente anotamos la dirección de nuestro sensor. Abra el boceto Arduino_WG12864B_Term, busque la línea:

Byte addr=(0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97);//dirección de mi sensor

Escribimos la dirección de tu sensor entre llaves, reemplazando la dirección de mi sensor.

Existencias:

//u8g.setPrintPos(44, 64); u8g.print(seg); // Salida de segundos para controlar la corrección del movimiento.

Sirve para mostrar los segundos junto a la inscripción "Datos". Esto es necesario para fijar con precisión el paso del tiempo.
Si el reloj está adelantado o atrasado, debes cambiar el valor en la línea:

If (micros() - prevmicros >494000) ( // cambia a otra cosa para corregir que era 500000

Determiné empíricamente con bastante precisión el número en el que funciona el reloj. Si tu reloj está adelantado, debes aumentar este número; si está atrasado, disminuirlo. Para determinar la precisión del movimiento, es necesario mostrar los segundos. Después de una calibración precisa del número, los segundos se pueden comentar y así eliminar de la pantalla.

La idea de este proyecto surgió y me cautivó durante mis vacaciones.

El pensamiento era más o menos así: "¡Sería genial tener un brazo robótico que pudiera controlar yo mismo!". Y después de un tiempo comencé a desarrollar e implementar este proyecto. ¡Espero lo encuentres interesante!

Los componentes principales del proyecto son el guante y el propio brazo robótico. Se utilizó Arduino como controlador. El movimiento del brazo robótico lo proporcionan servomotores. El guante está equipado con sensores de flexión: resistencias variables que cambian su resistencia a la flexión. Están conectados a un lado del divisor de voltaje y resistencias fijas. El Arduino lee el cambio de voltaje a medida que los sensores se doblan y transmite la señal a los servomotores, que giran proporcionalmente. A continuación se muestra un vídeo del proyecto en funcionamiento.

El diseño de la mano está tomado del proyecto de código abierto InMoov. En la página del proyecto puede descargar modelos 3D de todos los nodos e imprimirlos en una impresora 3D.

A continuación se detallan todos los pasos para implementar su propio brazo robótico controlado con guantes.

Materiales necesarios

Para el proyecto necesitarás:

¡Todo! ¡Puedes comenzar tu proyecto de brazo robótico!

imprimiendo una mano

La mano es parte de un proyecto de código abierto llamado InMoov. Este es un robot impreso en una impresora 3D. La mano es sólo una unidad separada de la estructura general. Descargue desde esta página e imprima los siguientes detalles:

Auricular3.stl

MuñecapequeñaV3.stl

Por si acaso, adjunto una lista de piezas en las que se puede hacer clic, porque algunas de ellas se han eliminado de la página principal del proyecto.

RobCableFrontV1.stl

RobRingV3.stl (tuve que hacer agujeros adicionales en esta parte para que mis servos encajaran)

RobCableBackV2.stl

RobServoBedV4.stl

(Estas son dos partes “piel”; no son necesarias desde el punto de vista de la rigidez estructural y su funcionamiento)


En total, la impresión tardó entre 13 y 15 horas. Depende de la calidad de impresión. Utilicé MakerBot Replicator 2X. Recomiendo imprimir las partes de los dedos en resolución estándar o alta para evitar fricciones no deseadas en el diseño.


Conexión de sensores de curvatura a Arduino

Para conectar sensores de curvatura a Arduino, necesitamos incluir un divisor de voltaje en el circuito. Los sensores de curvatura son esencialmente una resistencia variable. Cuando se usa junto con una resistencia fija, se puede monitorear la diferencia de voltaje entre las dos resistencias. Puedes rastrear la diferencia usando los pines analógicos de Arduino. El diagrama de conexión se muestra a continuación (el conector rojo es el voltaje, el negro es la tierra, el azul es el conector de la señal en sí, que se conecta a la entrada analógica del Arduino).


Las resistencias de la foto tienen un valor nominal de 22 kOhm. Los colores de los cables corresponden a los colores que se muestran en el diagrama de conexión.

Todos los pines GND de los sensores están conectados a una tierra común. La tierra va al pin GND del Arduino. +5V en Arduino está conectado al pin de fuente de alimentación común de todos los sensores. Cada conector de señal azul se conecta a una entrada analógica separada en el microcontrolador.




Monté el circuito en una pequeña placa de circuito. Es recomendable elegir tamaños de tablas más pequeñas para poder sujetarlas a un guante en el futuro. Adjunte nuestro guante a circuito ensamblado Se puede hacer con hilo y aguja. Además, no seas perezoso y utiliza inmediatamente cinta aislante en los contactos expuestos.




Instalación de sensores en el guante.

Ya podemos empezar a instalar los sensores y nuestra placa de circuito en el propio guante. Primero, taladra un pequeño agujero en el plástico de los sensores. Se perforan agujeros en los lugares donde termina el elemento sensor. ¡IMPORTANTE! Nunca taladre un agujero en material sensible. Después de esto, ponte un guante. Haz marcas con un lápiz o bolígrafo en la parte superior de cada articulación. Utilizará estos lugares para montar los sensores. Los sensores de curvatura se fijan con hilo normal. Coser los sensores al guante. Utilice el agujero que hizo en los extremos del sensor. En los lugares donde están marcadas las juntas, los sensores son “agarrados” por el hilo de arriba. Todo esto se muestra con más detalle en la foto de abajo. La placa de circuito está cosida al guante de manera similar a los sensores. Tenga en cuenta que para que los dedos se muevan, debe dejar un cierto margen de longitud de los conductores. Esto hay que tenerlo en cuenta a la hora de instalar nuestra placa de circuito y elegir la longitud de los conectores desde la misma hasta los sensores.






No entraré en detalles sobre este paso. Se trata con gran detalle en el sitio web de InMoov (en "Bocetos de ensamblaje" y "Ayuda de ensamblaje"):

Cuando monte el brazo, asegúrese de que los nodos estén instalados correctamente en términos de orientación en el espacio. No olvide perforar los agujeros en los dedos del brazo robótico para sujetadores de 3 mm para reducir la fricción entre las articulaciones. CON afuera Rellené los tornillos con pegamento.


No se apresure a instalar la línea. Primero verifique el funcionamiento de los servomotores.

Comprobación de servomotores

En este punto, los servos ya deberían estar instalados en la parte posterior de su brazo robótico. Para conectar los servos al Arduino y a la fuente de alimentación, utilicé una pequeña placa de pruebas. Conecte el pin positivo (rojo) de cada servomotor a un riel de la placa y el pin negativo (negro o marrón) al otro riel.

¡IMPORTANTE! No olvides conectar el pin Arduino al riel con carga negativa: Recuerde que todos los contactos de tierra deben estar conectados entre sí. El pin VCC se puede conectar a diferentes fuentes de alimentación, pero el GND debe ser el mismo.

Descargue el programa al Arduino (se adjunta el archivo del programa). Asegúrese de que las conexiones de sensores, servomotores, etc. Estuvo bien. Ponte el guante y enciende el Arduino. Los servomotores deben girar dependiendo del dedo que muevas. Si los servos se mueven, entonces ¡todo funciona!


Si es un usuario de Arduino con más experiencia y sabe cómo verificar los valores actuales de los sensores de curvatura, puede ajustar el rango en el programa para adaptarlo a sus realidades. Supongo que todos los sensores de curvatura son más o menos iguales, pero si no es así, calibrarlos definitivamente te ayudará.

Si los servos no funcionan correctamente, asegúrese de haberlos conectado correctamente (por ejemplo, cuando estaba trabajando en este proyecto, como siempre, olvidé conectar el pin GND del Arduino al GND de la fuente de alimentación y todos los servos, en este caso nada funcionará). Asegúrate de que todo salga bien antes de continuar.

Agregar hilo de pescar

Agregar hilo de pescar es probablemente la parte más difícil y exigente del proyecto del brazo robótico. Hay instrucciones para esto en el sitio web de InMoov. El concepto es simple, pero su implementación prácticamente no es tan fácil. Tenga en cuenta que esta parte del proyecto requiere concentración y paciencia. La única diferencia entre mi versión y el diseño de InMoov es el uso de pegamento. Gracias a esto, podemos conseguir ajustes más flexibles a la hora de calibrar los servos. Para hacer esto, simplemente derrita el pegamento y apriete los tornillos que necesitamos. Aunque, por supuesto, la fiabilidad del diseño disminuye. Al final, tras la configuración y calibración final, podemos utilizar una opción de fijación diferente en cualquier momento.

Para calibrar los servos, gire los rotores de modo que los dedos del brazo robótico queden sobre la mesa. Conecte su Arduino y la fuente de alimentación. Alinee los balancines de accionamiento de modo que cuando el brazo esté completamente "acostado", la tensión sea máxima.


Explicar el proceso de calibración es bastante difícil. Además, las instrucciones con InMoov, por ejemplo, no me convenían. Es decir, a la hora de sujetar, debe mostrar su imaginación y adaptarse a sus realidades, tales como: el tipo de mecedora, el tipo de hilo o hilo de pescar, errores de diseño y montaje, la distancia de instalación de los servomotores con respecto a las juntas. del brazo robótico.

¡Afortunadamente, esta es la última etapa del proyecto!

Epílogo


A pesar de que existen diseños mucho más complejos y precisos (y también caros), el proyecto anterior es muy interesante y tiene un excelente potencial para la aplicación práctica. Estos diseños no deben utilizarse en contacto directo con una persona, debido a la falta de precisión del concepto en sí. Pero la industria, la medicina, etc. Para tareas que no requieren mayores requisitos de precisión de los movimientos articulares, nuestro brazo robótico es muy adecuado. Bueno, desde el punto de vista de una mayor "mejora" de la mano, este campo generalmente no está arado. Desde el control inalámbrico hasta la sustitución de variadores, dimensiones y el desarrollo de grados de libertad adicionales.

Por eso me encanta Arduino: puedes montar muy rápidamente y por poco dinero una placa de pruebas o un prototipo de un dispositivo que no sólo es fácil de programar, sino que también puede realizar tareas realmente interesantes.

Deje sus comentarios, preguntas y comparta sus experiencias personales a continuación. ¡A menudo surgen nuevas ideas y proyectos de las discusiones!

Actualmente, sistemas como el “hogar inteligente” han pasado de ser algo increíblemente exótico, accesible sólo para las personas más ricas, a convertirse en algo común, al que cualquiera puede unirse. Hay mucho para elegir: muchos desarrolladores dominan la producción de este tipo de sistemas de hardware y software. Una de las más famosas es la empresa Arduino, cuyos productos conoceremos a continuación.

Que es un hogar inteligente"

Este término tiene un análogo más comprensible: "domótica". La esencia de estas soluciones es garantizar la ejecución automática de diversos procesos que tienen lugar en el hogar, la oficina o las instalaciones especializadas. El ejemplo más sencillo es el encendido automático de la iluminación en el momento en que uno de los residentes entra en la habitación.

El sistema de hogar inteligente Arduino es un conjunto de equipos para controlar el funcionamiento de varios dispositivos mediante un teléfono móvil basado en el sistema operativo Android.

En cualquier sistema de “hogar inteligente” se pueden distinguir los siguientes componentes:

  1. Parte sensorial. Se trata de un conjunto de dispositivos, la parte principal de los cuales está representada por todo tipo de sensores que permiten al sistema registrar eventos de diversos tipos. Los ejemplos incluyen sensores de temperatura y movimiento. Otros dispositivos de la parte táctil se utilizan para transmitir comandos del usuario al sistema. Se trata de botones remotos y mandos a distancia con receptores.

    Uno de los elementos del hogar inteligente más utilizados es el sensor de movimiento.

  2. Parte ejecutiva. Se trata de dispositivos que el sistema puede controlar, reaccionando así ante un evento particular de acuerdo con un escenario especificado por el usuario. En primer lugar, se trata de relés a través de los cuales el controlador doméstico inteligente puede suministrar energía a cualquier aparato eléctrico, es decir, encenderlo y apagarlo. Por ejemplo, al aplaudir (el sistema lo "escuchará" usando un micrófono), puede configurar el relé para que se encienda, suministrando energía al ventilador. Tenga en cuenta: en este ejemplo, el ventilador puede ser cualquier cosa. Pero también se puede utilizar un dispositivo fabricado especialmente para funcionar como parte de un sistema concreto. Por ejemplo, la empresa Arduino produce motores eléctricos para sus sistemas, con la ayuda de los cuales se puede, por ejemplo, cerrar o abrir una ventana, y la empresa Xiaomi (un fabricante chino de sistemas similares) produce dispositivos de control de purificadores de aire. Dicho dispositivo está completamente controlado por el sistema, es decir, no solo puede encenderlo, sino también cambiar la configuración.

    Un motor eléctrico es un actuador que se activa mediante una señal del controlador del sistema y pone en movimiento el mecanismo conectado a él.

  3. UPC. También puede denominarse controlador. Este es el "cerebro" del sistema, que coordina y coordina el trabajo de todos sus componentes.

    La placa del procesador (o controlador) controla los actuadores según el programa integrado y los datos recibidos de los sensores.

  4. Software. Este es un conjunto de instrucciones que guían al procesador. En sistemas de algunos fabricantes, incluidos los de Arduino, el usuario puede escribir un programa de forma independiente, en otros utilizan soluciones listas para usar, en el que sólo los escenarios típicos están disponibles para el usuario.

Los sistemas domésticos inteligentes modernos se dividen en varios tipos:

  1. Equipado con su propio controlador.
  2. Utilizar el procesador de la computadora de un usuario (tableta, teléfono inteligente) en esta capacidad.
  3. Procesamiento de información mediante un servidor remoto propiedad de la empresa desarrolladora (servicio en la nube).

El sistema no solo puede activar un dispositivo en particular, sino también informar al usuario sobre el evento ocurrido enviando un mensaje al teléfono o de alguna otra forma. Por lo tanto, se le pueden asignar funciones de alarma, incluida la alarma contra incendios.

Los escenarios pueden ser mucho más complejos de lo que hemos descrito en los ejemplos. Por ejemplo, puede enseñarle al sistema a encender la caldera y transferir el suministro. agua caliente a él cuando se corta el suministro centralizado, si se detecta la presencia de uno de los residentes en la casa (los sensores infrarrojos, ultrasónicos y los sensores de movimiento ayudan).

Conociendo Arduino

Arduino es una empresa italiana dedicada al desarrollo y producción de componentes y software para sistemas domésticos inteligentes sencillos destinados a no especialistas. Cabe destacar que este desarrollador hizo que la arquitectura de los sistemas creados por él fuera completamente abierta, lo que hizo posible que otros fabricantes desarrollaran nuevos dispositivos compatibles con Arduino y copiaran los existentes, así como también lanzaran software para ellos.

El kit Arduino Uno contiene los componentes necesarios para implementar los dispositivos descritos en el libro incluido.

Este enfoque ha asegurado una gran popularidad para los sistemas de la empresa italiana, pero también tiene un inconveniente: debido a que, por así decirlo, todo el que no es demasiado vago se dedica a la producción de componentes para sistemas Arduino, no es Siempre es posible comprarlos la primera vez. producto de calidad. A menudo tenemos que enfrentarnos al problema de la compatibilidad de componentes de diferentes fabricantes.

Los usuarios potenciales deben saber que desde 2008 existen dos empresas que fabrican productos bajo la marca Arduino. El primero, que inició esta dirección, tiene un sitio web oficial en www.arduino.cc; el segundo, recién formado, en www.arduino.org. Lo desarrollado antes de la división se presenta de forma idéntica en ambos sitios, pero la gama de novedades ya es diferente.

El software para sistemas domésticos inteligentes Arduino toma la forma de un shell de software (llamado IDE) en el que se pueden escribir y compilar programas. Distribuido gratuitamente. Los programas están escritos en C++.

Las versiones del programa Arduino IDE presentadas en estos sitios también son muy diferentes, aunque no solo tienen el mismo nombre, sino también los mismos números de versión. Debido a esto, es bastante fácil confundirse con ellos. La diferencia es que cada software admite sus propias bibliotecas y placas.

El "hardware" del sistema consta de una placa con un microcontrolador (placa de procesador) y tarjetas de expansión instaladas, que comúnmente se denominan escudos. Conectar el escudo a la placa del procesador le permite agregar nuevos componentes a la casa inteligente. El sistema ensamblado puede ser completamente autónomo o funcionar en conjunto con una computadora a través de una interfaz estándar cableada o inalámbrica.


Puede instalar extensiones especiales (escudos) en la placa del procesador, que aumentan la funcionalidad del sistema.

Ventajas del sistema Arduino

Este complejo de hardware y software atrae al usuario por las siguientes ventajas:

  • la posibilidad de funcionamiento autónomo debido a la presencia de su propio controlador;
  • amplias oportunidades para personalizar el funcionamiento del sistema (el propio usuario escribe un programa que puede contener escenarios de cualquier complejidad);
  • simplicidad del proceso de carga del programa en el controlador: no se requiere un programador para esto, basta con tener un cable USB (el microcontrolador tiene firmware Bootloader);
  • Costo asequible de los componentes debido a la ausencia de derechos de monopolio de uno u otro fabricante (la arquitectura es abierta).

Si el gestor de arranque comienza a funcionar mal o el microcontrolador comprado no lo tiene, el usuario tiene la oportunidad de actualizarlo usted mismo. El shell del software IDE brinda soporte para varios de los programadores más accesibles y populares para este propósito. Además, casi todas las placas procesadoras Arduino tienen un encabezado que permite la programación en circuito.

El programa Arduino IDE presentado en el sitio web arduino.cc incluye la capacidad de crear plataformas de hardware y software personalizadas, mientras que la versión del programa en arduino.org no tiene dicha función.

¿Qué soluciones ofrece Arduino?

Dado que muchas empresas se dedican a la producción de sensores y dispositivos compatibles con Arduino, la gama de estos productos es bastante amplia. Esto es lo que se usa con más frecuencia:

  1. Sensores que monitorean los parámetros climáticos:
  2. Sensores que le permiten determinar la posición espacial del objeto al que están conectados:
  3. Sensores que permiten registrar la presencia de diversos objetos:
  4. Sensores de emergencia:
  5. Otros dispositivos, por ejemplo:
    • micrófono;
    • mirar;
    • sensor de apertura de puerta;
    • mandos a distancia (radiofrecuencia e infrarrojos) con receptores;
    • Botones remotos.

Algunos de estos dispositivos están incluidos en el kit básico Arduino Start, que algunos fabricantes denominan StarterKit.


El kit de inicio Arduino incluye una placa procesadora y varios dispositivos de uso común.

La parte ejecutiva contiene un enorme conjunto de dispositivos, por ejemplo:

  • motor electrico;
  • relés y diversos interruptores;
  • atenuadores (le permiten cambiar suavemente la intensidad de la iluminación);
  • cierrapuertas;
  • válvulas y válvulas de 3 vías con servoaccionamientos.

Si planea conectar la iluminación a través de un relé Arduino, entonces es más correcto usarlo como lámparas. Bombillas led. Las lámparas incandescentes se queman rápidamente cuando se conectan a través de dichos relés.

Video: primeros pasos con Arduino: control del LED a través de la interfaz web

Creando un proyecto en Arduino

Mostraremos el proceso de creación y configuración de una “casa inteligente” Arduino usando el ejemplo de un sistema que incluirá las siguientes funciones:

  • monitoreo de temperatura interior y exterior;
  • seguimiento del estado de la ventana (abierta/cerrada);
  • monitorear las condiciones climáticas (despejado/lluvioso);
  • generación de una señal sonora cuando se activa un sensor de movimiento si la función de alarma está activada.

Configuraremos el sistema de tal forma que los datos puedan visualizarse mediante una aplicación especial, así como un navegador web, es decir, el usuario podrá hacerlo desde cualquier lugar donde tenga acceso a Internet.

Abreviaturas utilizadas:

  1. "GND" - puesta a tierra.
  2. "VCC" - fuente de alimentación.
  3. "PIR" - sensor de movimiento.

Componentes necesarios para hacer un sistema de hogar inteligente

Para el sistema de hogar inteligente Arduino necesitarás lo siguiente:

  • Placa de microprocesador Arduino;
  • Módulo Ethernet ENC28J60;
  • dos sensores de temperatura marca DS18B20;
  • micrófono;
  • sensor de lluvia y nieve;
  • Sensor de movimiento;
  • interruptor de láminas;
  • relé;
  • resistencia con una resistencia de 4,7 kOhm;
  • cable de par trenzado;
  • Cable de ethernet.

Todos los componentes cuestan aproximadamente $90.


Para producir un sistema con las funciones que necesitamos, necesitaremos un conjunto de dispositivos que cuesten alrededor de 90 dólares.

Montar una “casa inteligente”: instrucciones paso a paso

Este es el orden en el que debes actuar.

Conexión de actuadores y dispositivos sensores.

Conectamos todos los componentes según el diagrama.


El montaje del sistema se reduce principalmente a conectar los actuadores a los contactos correspondientes de la placa del procesador.

Desarrollo de código de programa.

El usuario escribe todo el programa en el shell Arduino IDE, para lo cual este último está equipado con un editor de texto, administrador de proyectos, compilador, preprocesador y herramientas para cargar el código del programa en el microprocesador de la placa Arduino. Se han desarrollado versiones IDE para los sistemas operativos Mac OS X, Windows y Linux. El lenguaje de programación es C++ con algunas simplificaciones. Los programas de usuario para Arduino suelen denominarse bocetos o sketches, el programa IDE los guarda en archivos con la extensión “.ino”.

La función main(), que es obligatoria en C++, es creada automáticamente por el shell IDE, especificando en ella una serie de acciones estándar. El usuario debe escribir las funciones setup() (ejecutada una vez durante el inicio) y loop() (ejecutada en un bucle sin fin). Ambas funciones son necesarias para Arduino.

No es necesario insertar archivos de encabezado de bibliotecas estándar en el programa; el IDE lo hace automáticamente. Esto no se aplica a las bibliotecas de usuario; deben especificarse.

La adición de bibliotecas al IDE "Project Manager" se realiza de varias maneras: de una manera inusual. Como fuentes escritas en C++, se agregan a una carpeta especial en el directorio de trabajo del shell IDE. Después de esto, los nombres de estas bibliotecas aparecerán en el menú IDE correspondiente. Aquellos que el usuario seleccione se incluirán en la lista de compilación.

El IDE proporciona un mínimo de configuraciones y no existe ninguna posibilidad de personalizar el compilador. De este modo, un programador novato está protegido contra errores.

A continuación se muestra un ejemplo del programa más simple que hace que el LED conectado al pin 13 de la placa parpadee cada 2 segundos:

void setup() ( pinMode (13, SALIDA); // Asigna el pin 13 de Arduino como salida)

bucle vacío () ( digitalWrite (13, ALTO); // Active el pin 13, parámetro para llamar a la función digitalWrite ALTO: una señal de un nivel lógico alto

retraso(1000); // Bucle de retardo durante 1000 ms - 1 segundo

escritura digital (13, BAJO); // Apague el pin 13, llame al parámetro BAJO: una señal de un nivel lógico bajo

retraso(1000); // Retraso de bucle durante 1 segundo)

Sin embargo, por el momento, el usuario no siempre se enfrenta a la necesidad de escribir un programa personalmente: muchas bibliotecas y bocetos ya preparados se publican en Internet (consulte aquí: http://arduino.ru/Reference). Existe un programa listo para usar para el sistema considerado en este ejemplo. Debe descargarse, descomprimirse e importarse al IDE. El texto del programa cuenta con comentarios que explican el principio de su funcionamiento.


Todos los programas Arduino funcionan según el mismo principio: el usuario envía una solicitud al procesador y este carga el código necesario en la pantalla de la computadora o del teléfono inteligente.

Cuando el usuario presiona el botón “Actualizar” en el navegador o aplicación instalada en el teléfono inteligente, el microcontrolador Arduino envía datos a este cliente. De cada una de las páginas, designadas como “/tempin”, “/tempout”, “/rain”, “/window”, “/alarm”, se recibe un código de programa, que se muestra en la pantalla.

Instalación de la aplicación cliente en un teléfono inteligente (para sistema operativo Android)

Para recibir datos del sistema de hogar inteligente en línea, puede descargar una aplicación lista para usar.

Esto es lo que debe hacer el propietario del dispositivo:


Con esta aplicación, no solo puede recibir información del sistema doméstico inteligente, sino también controlarlo: encender y apagar la alarma. Si está habilitado, se enviará una notificación a la aplicación cuando se active el sensor de movimiento. La aplicación sondea el sistema Arduino para detectar la activación del sensor de movimiento una vez por minuto.

Al activar el icono de “Configuración”, podrás editar tu dirección IP.

Configurar su navegador para que funcione con una casa inteligente

En la barra de direcciones de su navegador, ingrese XXX.XXX.XXX.XXX/all, donde “XXX.XXX.XXX.XXX” es su dirección IP. Después de esto, será posible recibir datos del sistema y administrarlos.

El código del programa presentado aquí le permite encender y apagar la luz a través del navegador, mientras que dicha función no está implementada en la aplicación para teléfonos inteligentes Android.

Trabajar con un enrutador


Configurar una cuenta en noip.com

Este paso es opcional, pero es obligatorio si desea asignar un nombre de dominio a la dirección. Para hacer esto, debe registrarse en el sitio web https://www.noip.com/, ir a la sección "Agregar host" e ingresar la dirección IP del sistema.


Después de registrarse en el sitio web noip.com, podrá acceder al sistema no solo por dirección IP, sino también por nombre de dominio completo.

Se completa la creación del proyecto, puede comprobar la funcionalidad del sistema.

Vídeo: casa inteligente usando Arduino

Características de algunos hardware Arduino

Debido al hecho de que los componentes compatibles con Arduino son producidos por muchas empresas de terceros, cuya calidad no está controlada por el propio Arduino, es probable que el usuario compre un componente que no funcione del todo correctamente.

Una situación similar se ha desarrollado en el campo del desarrollo de computadoras personales. Hubo un tiempo en que IBM abrió la arquitectura de sus computadoras, como resultado de lo cual muchas empresas comenzaron a producir computadoras y componentes individuales compatibles con IBM. Como resultado, los "equipos personales" de este tipo se difundieron ampliamente por todo el mundo; sin embargo, la calidad de los componentes y el grado de compatibilidad en muchos casos no estaban al más alto nivel. Apple siguió la táctica opuesta. Limitó el número de desarrolladores que tenían acceso a la arquitectura e implementó la misma política en el campo del desarrollo de software. Como resultado, las computadoras Apple resultaron ser menos comunes y más caras, pero su calidad es un orden de magnitud superior a la de los dispositivos compatibles con IBM que ejecutan Windows.

Los usuarios han notado lo siguiente con respecto a algunos componentes de los sistemas Arduino:

  1. El sensor de temperatura DHT11, suministrado con el kit básico (StarterKit), da un error significativo de 2-3 grados. Se recomienda utilizar el sensor de temperatura DHT22 en interiores, que proporciona lecturas más precisas, y para instalación en exteriores, DHT21, que es capaz de funcionar a temperaturas bajo cero y está protegido contra daños mecánicos.
  2. En algunas placas de microprocesador Arduino, cuando los relés conectados a ellas están en cortocircuito, el puerto COM falla. Debido a esto, el boceto no se puede cargar en el microcontrolador: tan pronto como comienza la carga, el procesador se reinicia. Al mismo tiempo, el relé hace clic, el puerto COM se apaga y el proceso de carga del boceto se detiene.
  3. El sensor de ventana/puerta a veces da sorpresas en forma de falsas alarmas. Teniendo esto en cuenta, el boceto se escribe de manera que el sistema realice la acción requerida solo al recibir varias señales seguidas.
  4. Para configurar el control del proceso mediante aplausos, algunos usuarios, por inexperiencia, solicitan un detector de sonido con ajuste manual de umbral en lugar de un micrófono. Este componente no es adecuado para tales fines, ya que tiene un alcance demasiado corto: es necesario colocarlo a no más de 10 cm del detector. Además, este sensor transmite señales en pulsos de corta duración, por lo que si hay un boceto grande, cuyo procesamiento lleva un tiempo relativamente largo, el microcontrolador simplemente no tiene tiempo para registrarlos.
  5. El dispositivo de alarma contra incendios debe utilizar un detector de humo en lugar de un detector de incendios. Este último detecta la llama a no más de 30 cm de sí mismo.
  6. En caso de mal funcionamiento del microcontrolador o error en el código, es mejor utilizar relés normalmente cerrados con interruptores manuales conectados en serie.

Para evitar comprar componentes de baja calidad, los usuarios experimentados recomiendan estudiar primero las reseñas publicadas en Internet sobre ellos. Se pueden comprar sensores económicos en varias variedades para probar usted mismo cuál funciona mejor.

Quizás el sistema de hogar inteligente de la empresa Arduino no sea de la más alta calidad, pero la más amplia selección de componentes y su costo asequible lo han convertido definitivamente en uno de los más populares. Con nuestros consejos, aprenderá rápidamente cómo crear proyectos Arduino, automatizando varios procesos domésticos.



Compartir