Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

SomfyDuino IO

Componentes e suprimentos

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

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)

Sobre este projeto





Ideação


Olá,

Eu apenas tentei implementar um adaptador USB para Somfy IO com um Arduino Nano para incluir minhas persianas na sala de estar. Eu queria me conectar ao meu sistema de automação residencial DIY sem precisar obter nenhum hardware baseado em nuvem do fornecedor original - e ei! FUNCIONOU - usando apenas um controle remoto IO simples.





Você precisa de:

  • Um Somfy IO Remote - Usei o GX037.
  • Quase qualquer Arduino com um conector USB serve - mas o soft serial também funciona.
  • Um cabo plano de sete núcleos e uma mangueira retrátil para uma embalagem organizada.

Fiação de acordo com os acessórios. O controle remoto é alimentado pelo Arduino - ele usa cerca de 20 mA durante o envio, então você deve estar bem. Portanto, certifique-se de remover a bateria.





Sobre o código:


Se você deseja conectar toda a engenhoca, por exemplo, um RPi, você pode querer considerar a remoção de todos os itens Serial.print - é muito mais fácil se comunicar com o Arduino se ele apenas ouvir e desligar.

Como enviar comandos é explicado no código.

Divirta-se - comentários são bem-vindos!

Saúde,

Bjoern

P.S. - Usei um controle remoto de um canal. Ele basicamente usa o mesmo layout do controle remoto de 5 canais, mas algumas partes (como os LEDs adicionais) estão faltando. Eu me pergunto se ele irá pular para canais diferentes se SELECT for acionado. Ainda não tentei porque estou feliz por ter um canal para funcionar, mas vou manter isso atualizado



P.P.S. apenas verificado - o botão de seleção infelizmente agora tem efeito - não mudará os canais, mas também não danificará o controle remoto.

Código

  • Serial para Somfy
Serial para 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; tempo de espera longo sem sinal =0; int repeatSend =0; char entrandoChar; void setup () {Serial.begin (9600); Serial.println ("SomfyDuino 0,71"); Serial.println ("Bjoern Foldenauer"); Serial.println ("-----"); Serial.println ("recebe caracteres seriais únicos como:"); Serial.println ("u - prepare-se para pressionar UP"); Serial.println ("d - prepare-se para pressionar PARA BAIXO"); Serial.println ("m - prepare-se para pressionar My"); Serial.println ("p - prepare-se para pressionar PROG"); Serial.println ("s - prepare-se para pressionar SELECT"); Serial.println ("r - aumenta a contagem de envios em um"); Serial.println ("qualquer dígito X - aumentar o tempo de espera em X * 100 ms"); Serial.println ("e - Execute! Executa um pressionamento definido (botão múltiplo) e mantém"); /erial.println (""); Serial.println ("Exemplo:UP regular:u5e"); Serial.println ("3 segundos PARA CIMA / PARA BAIXO:ud9993e"); Serial.println ("5 segundos PROG:p999995e"); Serial.println (""); pinMode (progPin, OUTPUT); pinMode (upPin, OUTPUT); pinMode (downPin, OUTPUT); pinMode (myPin, OUTPUT); pinMode (ledPin, OUTPUT); pinMode (selectPin, OUTPUT); digitalWrite (progPin, HIGH); digitalWrite (upPin, HIGH); digitalWrite (downPin, HIGH); digitalWrite (myPin, HIGH); digitalWrite (selectPin, HIGH); digitalWrite (ledPin, LOW);} void loop () {while (Serial.available () ==0) {delay (50); } // espere até que o comando serial chegue if (Serial.available ()> 0) {EntryChar =Serial.read (); Serial.println (entrandoChar); if (entrandoChar =='u') {upPress =true;} if (entrandoChar =='d') {downPress =verdadeiro;} if (entrandoChar =='m') {minhaPressão =verdadeiro;} if (entrandoChar =='p') {progPress =true;} if (EntryChar =='s') {selectPress =true;} if (EntryChar =='1') {holdTime + =100;} if (EntryChar =='2') {holdTime + =200;} if (entrandoChar =='3') {holdTime + =300;} if (entrandoChar =='4') {holdTime + =400;} if (entrandoChar =='5') {holdTime + =500;} if (entrandoChar =='6') {holdTime + =600;} if (entrandoChar =='7') {holdTime + =700;} if (entrandoChar =='8') {holdTime + =800;} if (entrandoChar =='9') {holdTime + =900;} if (entrandoChar =='r') {repeatSend ++;} if (entrandoChar =='e') {somSend ();}}} void somSend () {Serial.print ("Pressionando:"); for (int i =0; i <=repeatSend; i ++) {if (upPress) {digitalWrite (upPin, LOW); Serial.print ("up");} if (downPress) {digitalWrite (downPin, LOW); Serial.print ("down");} if (myPress) {digitalWrite (myPin, LOW); Serial.print ("meu");} if (progPress) {digitalWrite (progPin, LOW); Serial.print ("prog");} if (selecionePressione) {digitalWrite (selectPin, LOW); Serial.print ("selecionar");} digitalWrite (ledPin, HIGH); Serial.print ("para"); Serial.print (holdTime); Serial.println ("ms"); atraso (holdTime); digitalWrite (progPin, HIGH); digitalWrite (upPin, HIGH); digitalWrite (downPin, HIGH); digitalWrite (myPin, HIGH); digitalWrite (selectPin, HIGH); digitalWrite (ledPin, LOW); atraso (holdTime); } upPress =false; downPress =false; myPress =false; progPress =false; selectPress =false; holdTime =0; repeatSend =0; Serial.println ("pronto.");} 

Esquemas


Sem documento.

Processo de manufatura

  1. Monitoramento remoto do clima usando Raspberry Pi
  2. Controle remoto universal Raspberry Pi
  3. Usando remoto infravermelho com Raspberry Pi sem LIRC
  4. Monitor de frequência cardíaca remoto
  5. Raspberry Pi / Hologram SMS interruptor de alimentação CA controlado
  6. ROObockey:Robô de hóquei de rua com controle remoto e auxílio de mira
  7. Monitoramento em nuvem, um sistema de controle remoto
  8. 5 vantagens do controle remoto de produção
  9. gRPC remoto usando grpcurl
  10. 3 principais benefícios do monitoramento remoto