Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

SomfyDuino IO

Componentes y suministros

Arduino Nano R3
× 1
Cable plano
× 1
Somfy IO Remote
× 1

Herramientas y máquinas necesarias

Soldador (genérico)

Acerca de este proyecto

Ideación

Hola,

Intenté implementar un adaptador USB a Somfy IO con un Arduino Nano para incluir mis persianas enrollables en la sala de estar. Quería conectarme a mi sistema de automatización del hogar de bricolaje sin tener que obtener ningún hardware basado en la nube del proveedor original, ¡y bueno! FUNCIONÓ, usando solo un simple control remoto IO.

Necesitas:

  • Un Somfy IO Remote:utilicé el GX037.
  • Casi cualquier Arduino con un conector USB servirá, pero el serial suave también funciona.
  • Un cable plano de siete núcleos y una manguera retráctil para un empaque ordenado.

Cableado según los accesorios. El control remoto se alimenta a través del Arduino:usa aproximadamente 20 mA durante el envío, por lo que debería estar súper bien. Así que asegúrese de quitar la batería.

Sobre el código:

Si desea conectar todo el artilugio a, por ejemplo, un RPi, es posible que desee considerar eliminar todos los elementos de Serial.print; es mucho más fácil comunicarse con el Arduino si solo escucha y se apaga.

Cómo enviar comandos se explica en el código.

Diviértete, ¡los comentarios son bienvenidos!

Saludos,

Bjoern

PD - Usé un control remoto de un canal. Básicamente usa el mismo diseño que el control remoto de 5 canales, pero faltan algunas partes (como los LED adicionales). Me pregunto si saltará a diferentes canales si se activa SELECT. Aún no lo he probado porque me alegré de tener un canal que funcionara, pero lo mantendré actualizado

P.P.S. recién marcado - el botón de selección desafortunadamente ahora tiene efecto - no cambiará los canales pero tampoco estropeará el control remoto.

Código

  • Serial a Somfy
Serie a Somfy Arduino
 // SomfyDuino // por Bjoern Foldenauer // 05 / 2017int progPin =8; int upPin =12; int downPin =10; int myPin =11; int selectPin =9; int ledPin =13; boolean upPress =false; boolean downPress =false; boolean myPress =false; boolean progPress =false; boolean selectPress =false; unsigned long holdTime =0; int repeatSend =0; char entranteChar; void setup () {Serial.begin (9600); Serial.println ("SomfyDuino 0.71"); Serial.println ("Bjoern Foldenauer"); Serial.println ("-----"); Serial.println ("recibe caracteres de serie únicos como:"); Serial.println ("u - prepárate para presionar ARRIBA"); Serial.println ("d - prepárate para presionar ABAJO"); Serial.println ("m - prepárate para presionar Mi"); Serial.println ("p - prepárate para presionar PROG"); Serial.println ("s - prepárese para presionar SELECT"); Serial.println ("r - aumentar el recuento de envíos en uno"); Serial.println ("cualquier dígito X - aumentar el tiempo de retención en X * 100 ms"); Serial.println ("e - Execute! Ejecuta un (botón múltiple) presionado y sostenido"); /erial.println (""); Serial.println ("Ejemplo:normal UP:u5e"); Serial.println ("3 segundos ARRIBA / ABAJO:ud9993e"); Serial.println ("PROG de 5 segundos:p999995e"); Serial.println (""); pinMode (progPin, SALIDA); pinMode (upPin, SALIDA); pinMode (downPin, SALIDA); pinMode (myPin, SALIDA); pinMode (ledPin, SALIDA); pinMode (selectPin, SALIDA); digitalWrite (progPin, HIGH); digitalWrite (upPin, HIGH); digitalWrite (downPin, HIGH); digitalWrite (myPin, ALTO); digitalWrite (selectPin, HIGH); digitalWrite (ledPin, LOW);} bucle vacío () {while (Serial.available () ==0) {retardo (50); } // esperar hasta que entre el comando serial if (Serial.available ()> 0) {entranteChar =Serial.read (); Serial.println (entranteChar); if (entranteChar =='u') {upPress =true;} if (entranteChar =='d') {downPress =true;} if (entranteChar =='m') {myPress =true;} if (entranteChar =='p') {progPress =true;} if (entranteChar =='s') {selectPress =true;} if (entranteChar =='1') {holdTime + =100;} if (entranteChar =='2') {holdTime + =200;} if (entranteChar =='3') {holdTime + =300;} if (entranteChar =='4') {holdTime + =400;} if (entranteChar =='5') {holdTime + =500;} if (entranteChar =='6') {holdTime + =600;} if (entranteChar =='7') {holdTime + =700;} if (entranteChar =='8') {holdTime + =800;} if (entranteChar =='9') {holdTime + =900;} if (entranteChar =='r') {repeatSend ++;} if (entranteChar =='e') {somSend ();}}} void somSend () {Serial.print ("Presionando:"); for (int i =0; i <=repeatSend; i ++) {if (upPress) {digitalWrite (upPin, LOW); Serial.print ("arriba");} if (downPress) {digitalWrite (downPin, LOW); Serial.print ("abajo");} if (myPress) {digitalWrite (myPin, LOW); Serial.print ("mi");} if (progPress) {digitalWrite (progPin, LOW); Serial.print ("prog");} if (selectPress) {digitalWrite (selectPin, LOW); Serial.print ("seleccionar");} digitalWrite (ledPin, HIGH); Serial.print ("para"); Serial.print (holdTime); Serial.println ("ms"); delay (holdTime); digitalWrite (progPin, HIGH); digitalWrite (upPin, HIGH); digitalWrite (downPin, HIGH); digitalWrite (myPin, ALTO); digitalWrite (selectPin, HIGH); digitalWrite (ledPin, BAJO); delay (holdTime); } upPress =falso; downPress =falso; myPress =falso; progPress =falso; selectPress =falso; holdTime =0; repeatSend =0; Serial.println ("hecho");} 

Esquemas

Sin documento.


Proceso de manufactura

  1. Monitoreo remoto del clima usando Raspberry Pi
  2. Mando a distancia universal Raspberry Pi
  3. Uso del control remoto por infrarrojos con Raspberry Pi sin LIRC
  4. Monitor de frecuencia cardíaca remoto
  5. Interruptor de alimentación de CA controlado por SMS de Raspberry Pi / Hologram
  6. ROObockey:Robot de hockey callejero asistido por objetivo y controlado a distancia
  7. Monitoreo en la nube, un sistema de control remoto
  8. 5 ventajas del control remoto de la producción
  9. gRPC remoto usando grpcurl
  10. 3 ventajas principales de la supervisión remota
  11. Actualizaciones a los sistemas de monitoreo remoto