Un sistema de hogar inteligente solo es realmente divertido cuando puede comunicarse con otros componentes.
Dado que muchos sistemas utilizan conexiones de radio para la comunicación, es lógico hacer que FHEM tenga capacidad de radio tan pronto como sea posible.
La mayoría de los sensores y actuadores en el sector del hogar inteligente se basan en frecuencias en el rango de 433 o 866 Mhz además de W-Lan y Bluetooth.
Los dos últimos también son utilizados por varias estaciones meteorológicas inalámbricas, controles de persianas, controles de motores, etc.
Hay dos formas de hacer que FHEM sea apto para radio:
1. Usted compra un adaptador USB a inalámbrico listo para usar que ya está ensamblado pero que también es costoso.
2. Usted construye su propio adaptador de USB a radio y ahorra mucho dinero.
Construirlo usted mismo no es un problema en este caso, porque hay otro magnífico proyecto de código abierto:
El nanoCul.
El nanoCul es un adaptador de USB a radio que se puede soldar a partir de componentes estándar simples y programar. Cómo funciona el ensamblaje que he descrito en este artículo.
Instrucciones de seguridad
Sé que las siguientes notas siempre son un poco molestas y parecen innecesarias. Desafortunadamente, muchas personas que sabían "mejor" han perdido ojos, dedos u otras cosas debido a un descuido o se lesionaron. La pérdida de datos es casi insignificante en comparación, pero incluso estos pueden ser realmente molestos. Por lo tanto, tómese cinco minutos para leer las instrucciones de seguridad. Porque incluso el proyecto más genial no vale la pena lesionarse u otros problemas.
https://www.nerdiy.de/sicherheitshinweise/
Enlaces afiliados / enlaces publicitarios
Los enlaces a las tiendas en línea enumerados aquí son los llamados enlaces de afiliados. Si hace clic en dicho enlace de afiliado y realiza una compra a través de este enlace, Nerdiy.de recibirá una comisión de la tienda en línea o el proveedor correspondiente. El precio no cambia para usted. Si realiza sus compras a través de estos enlaces, ayuda a Nerdiy.de a poder ofrecer otros proyectos útiles en el futuro. 🙂
Requisitos
Artículos útiles:
Antes de que pueda comenzar a instalar el nanoCul, debe haber preparado el RaspberryPi para que se pueda acceder a él a través de Putty y FHEM esté instalado en él.
Los siguientes tres artículos describen lo que se debe hacer para preparar la RaspberryPi:
RaspberryPi: ¡configuración para nerdiys!
RaspberryPI – ¡La primera configuración!
Tu propia casa inteligente – instalación e ingreso a FHEM
RaspberryPi: controle el RaspberryPi a través de SSH
Material requerido:
-No-
Material requerido:
En la siguiente lista encontrará todas las piezas que necesita para implementar este artículo.
Estructura del nanoCul
El nanoCul consta esencialmente de cuatro componentes importantes:
1. El módulo de radio CC1101: está disponible para 433Mhz y 866Mhz
2. Un convertidor de nivel: Dado que el módulo de radio CC1101 (3.3V) y el Arduino Nano (5V) funcionan con diferentes niveles lógicos, deben ajustarse en cada caso.
3. Un Arduino Nano: un microcontrolador que es relativamente fácil de programar y operar a través de la interfaz USB.
4. La placa de circuito donde todo está soldado.
5. Opcional: Una vivienda para que todo el conjunto también esté protegido.
Conecte nanoCul a la RaspberryPi
Instalar el compilador AVR C-Cross
Para adaptar el firmware (casi el sistema operativo del nanoCul) a nuestras necesidades, tenemos que compilarlo nosotros mismos. Lo primero que tenemos que hacer es instalar el compilador AVR C-Cross.
Después de usted masillas en el Rasp Pi puedes hacer esto con el siguiente comando.
sudo apt-get install make gcc-avr avrdude avr-libc
Durante la instalación, es posible que se le pregunte si acepta que la instalación ocupe espacio de almacenamiento adicional. Confirmas esta solicitud con una “j” y Enter. A continuación, la instalación continuará.
Descargar firmware nanoCul
Para descargar el firmware actual para el nanoCul, primero debe encontrar el enlace actual. Ir a: https://sourceforge.net/p/culfw/code/HEAD/tarball
Por ejemplo, el comando completo se vería así para la versión actual (556):
wget https://sourceforge.net/projects/culfw/
El Rasp Pi luego descarga el archivo y muestra el progreso en una pequeña animación.
Descomprimir firmware
El firmware descargado ahora está oculto en un archivo zip. Para poder seguir trabajando con él, primero debemos descomprimirlo.
Esto se puede hacer (con la versión actual) con el comando:
descomprimir culfw-code-566-trunk.zip
Si la versión (en el ejemplo, la 566) ha cambiado mientras tanto, debe ajustar la parte después de "descomprimir" según su versión.
Cambiar a la carpeta con el firmware
Ahora debe cambiar a la carpeta que acaba de crear al descomprimir.
El comando para esto es:
cd culfw-code-566-trunk/culfw/Devices/nanoCUL
Aquí nuevamente, la parte con el "566" debe notarse para ver si su versión ha cambiado
Configurar board.h correctamente
Antes de compilar el firmware, debemos agregarle los parámetros.
configurar correctamente. Esto se hace en el archivo "board.h". esto miente
en la carpeta a la que acaba de cambiar.
con el comando
tablero sudo nano.h
llegas al editor de texto "nano" y puedes usarlo para editar el archivo
Editar tablero.h.
No se alarme: la vista de la consola desaparece y todo se ve un poco diferente.
Aquí se pueden configurar varios parámetros. Por ejemplo, la frecuencia de reloj del microcontrolador o la frecuencia de radio del módulo de radio.
Si quieres usar un módulo de radio con 433Mhz y tu microcontrolador o la placa Arduino corresponde a un Arduino, no necesitas cambiar nada aquí.
Sin embargo, si usa un módulo de radio con 866Mhz, debe cambiar la siguiente parte.
Use las teclas de flecha en su teclado para navegar a "#define HAS_CC1100_433" y escriba "//" delante de él.
Esto comenta esa parte y le dice al compilador que use el
El firmware debe ensamblarse para que no sean para un 433Mhz sino
para ser configurado para un adaptador inalámbrico de 866Mhz.
Para guardar los cambios en el archivo board.h, presione CTRL+X, luego presione
“y” (porque desea guardar el archivo modificado) y luego haga clic en
Ingresar. Nano luego se cierra y estás de vuelta en la consola.
Montar firmware (let)
Este paso es fácil. El comando para esto es:
hacer
Este comando hace que se compile el firmware que acaba de configurar. Esto significa que el código legible por humanos se traduce a lenguaje de máquina y luego se puede programar en el microcontrolador de nanoCul en el siguiente paso.
Firmware del programa
Una vez compilado el firmware, es hora de programarlo en el microcontrolador del nanoCul.
Para ello tienes que introducir el siguiente comando:
hacer programa
El microcontrolador se programa y el código programado se vuelve a comprobar.
Averigua el ID del nanoCul
Para registrar el nanoCul en FHEM, primero tenemos que averiguar su identificación única.
Esto es importante, de lo contrario podrían surgir conflictos si, por ejemplo, dos nanoCuls están conectados a una RaspberryPi. (por ejemplo, porque desea ejecutar uno para 433Mhz y otro para 866Mhz).
Para obtener la identificación correcta, nada debe estar conectado a la RaspberryPi aparte del nanoCul.
Luego puede averiguar la ID del nanoCul con el siguiente comando:
ls /dev/serial/by-id
Luego se emite una identificación. En mi caso es el "usb-1a86_USB2.0-Serial-if00-port0". Por supuesto, esta identificación puede ser diferente para usted. Ahora tenemos que recordar este ID porque es necesario para el siguiente paso
Registrar nanoCul en FHEM
Para registrar el nanoCul en FHEM, debe cambiar a la interfaz web de FHEM. Hay un campo de entrada en el área superior a través del cual podemos ingresar la definición del nanoCul.
Esta definición dice:
definir nanoCUL CUL /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400 1234
"nanoCul" representa el nombre de su nanoCul en FHEM. Puede elegir un nombre diferente aquí.
"CUL" describe la función del dispositivo definido y no debe modificarse.
"/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0"
representa la interfaz con el nanoCul. Ahora tienes que hacerlo aquí.
asegúrese de utilizar el ID determinado en el paso anterior.
"@38400"
representa la tasa de baudios (~velocidad) con el FHEM con el nanoCul
comunica. Este valor debe ser igual a 38400.
"1234" es un código que en realidad solo se requiere cuando los diagramas nanoCUL FHT
debe enviar Entonces debe ser ajustado en consecuencia. De cualquier manera, esto debe especificarse.
Si todo funciona, recuerda guardar tu configuración de FHEM haciendo clic en "Guardar configuración" en la barra izquierda.
Ahora debería haber conectado un nanoCul a su RaspberryPi y registrado en FHEM.
Diviértete con el proyecto.
Espero que todo te haya funcionado como se describe. Si no es así, o si tiene alguna pregunta o sugerencia, hágamelo saber en los comentarios. Si es necesario, lo añadiré al artículo.
Las ideas para nuevos proyectos siempre son bienvenidas. 🙂
PS Muchos de estos proyectos, especialmente los proyectos de hardware, cuestan mucho tiempo y dinero. Por supuesto que hago esto porque lo disfruto, pero si crees que es genial que comparta la información contigo, me encantaría hacer una pequeña donación al fondo del café. 🙂
Hola,
lo siento, no puedo descargar el archivo correcto.
Intenté crear el archivo board.h en Raspberry simplemente copiando el código del sitio web, pero cuando intento iniciar el proceso de “creación”, el resultado es “no hay nada que hacer para 'board.h'.
Entonces, ¿puedes actualizar tu buen tutorial con el nuevo enlace al archivo actualizado?
¡Muchas gracias!
Hola franco,
¿podría decirme qué archivo no puede descargar? 🙂
El firmware culfw parece ser descargable.
atentamente
Fabian
Hola Fabián,
si hago clic en su enlace (https://sourceforge.net/p/culfw/code/HEAD/tarball) aparece el siguiente error:
“Comprometerse [r568]
Estamos teniendo problemas para encontrar esa instantánea. ¿Le gustaría volver a enviarlo?
Lamentablemente, no puedo agregar una captura de pantalla a este comentario...
¡Gracias!
Hola franco,
Lo intenté de nuevo y parece que el enlace me funciona. ¿Tal vez puedas probar con un navegador diferente (para mí funciona en Google Chrome)? Tan pronto como abro este enlace, comienza la descarga de la fila ubicada en: https://sourceforge.net/code-snapshots/svn/c/cu/culfw/code/culfw-code-r568-trunk.zip
Este es el archivo de firmware que está buscando. Entonces, en caso de que todavía no funcione, puede usar este enlace. 🙂
atentamente
Fabian
Hola Fabián,
Genial, ahora funciona 🙂
¡Muchas gracias por tu apoyo!
Atentamente
Franco
Hola franco,
Me alegra saber que ahora funciona. 🙂
De nada.
atentamente
Fabian
Hola Fabián,
En primer lugar, muchas gracias por esta gran guía, con la que incluso yo, como un principiante completamente desprevenido, puedo arreglármelas.
Desafortunadamente me encuentro con un error con el comando "make":
ecki@raspberrypi:~/Descargas/culfw-code-r569-trunk/culfw/Devices/nanoCUL $ marca
Compilando C: ../../clib/somfy_rts.c
../../clib/somfy_rts.c: En la función 'send_somfy_rts_frame':
../../clib/somfy_rts.c:200:85: error: extraviado '#' en el programa
my_delay_us(30415 + (((cuadro[6] >> 7) & 1) ? 0 : somfy_rts_interval_half)); # 129341
^
../../clib/somfy_rts.c:200:87: advertencia: declaración sin efecto [-Wunused-value]
my_delay_us(30415 + (((cuadro[6] >> 7) & 1) ? 0 : somfy_rts_interval_half)); # 129341
^
../../clib/somfy_rts.c:202:1: error: esperado ';' antes del token '}'
}
^
hacer: *** [makefile:328: ../../clib/somfy_rts.o] error 1
¿Tienes un consejo para mí?
Gracias
Ecki
Hola Ecki,
Eso me parece un error en los componentes del programa del firmware. El archivo somfy_rts.c probablemente tenga un problema en la línea 202, por lo que no se puede construir el paquete. Desafortunadamente, tendría que ponerse en contacto con los desarrolladores del firmware. 🙂
Atentamente
Fabian
Hola Fabián,
En primer lugar, muchas gracias por esta gran guía, con la que incluso yo, como un principiante completamente desprevenido, puedo arreglármelas.
Desafortunadamente, cuando ejecuto el comando "hacer", me encuentro con un error:
ecki@raspberrypi:~/Descargas/culfw-code-r569-trunk/culfw/Devices/nanoCUL $ marca
Compilando C: ../../clib/somfy_rts.c
../../clib/somfy_rts.c: En la función 'send_somfy_rts_frame':
../../clib/somfy_rts.c:200:85: error: extraviado '#' en el programa
my_delay_us(30415 + (((cuadro[6] >> 7) & 1) ? 0 : somfy_rts_interval_half)); # 129341
^
../../clib/somfy_rts.c:200:87: advertencia: declaración sin efecto [-Wunused-value]
my_delay_us(30415 + (((cuadro[6] >> 7) & 1) ? 0 : somfy_rts_interval_half)); # 129341
^
../../clib/somfy_rts.c:202:1: error: esperado ';' antes del token '}'
}
^
hacer: *** [makefile:328: ../../clib/somfy_rts.o] error 1
¿Tienes un consejo para mí?
Gracias
Ecki