Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

SomfyDuino IO

Komponenten und Verbrauchsmaterialien

Arduino Nano R3
× 1
Flachkabel
× 1
Somfy IO Remote
× 1

Notwendige Werkzeuge und Maschinen

Lötkolben (generisch)

Über dieses Projekt

Idee

Hallo,

Ich habe gerade versucht, einen USB-zu-Somfy-IO-Adapter mit einem Arduino Nano zu implementieren, um meine Rollläden im Wohnzimmer zu integrieren. Ich wollte mich mit meinem Heimwerker-Hausautomationssystem verbinden, ohne Cloud-basierte Hardware vom Originalanbieter beziehen zu müssen - und hey! ES FUNKTIONIERT - mit nur einer einfachen IO-Fernbedienung.

Du brauchst:

  • Eine Somfy IO Remote - Ich habe das GX037 verwendet.
  • Fast jeder Arduino mit einem USB-Anschluss reicht aus - aber Soft Serial funktioniert auch.
  • Ein siebenadriges Flachbandkabel und ein Schrumpfschlauch für eine saubere Verpackung.

Verkabelung gemäß den Anhängen. Die Fernbedienung wird über den Arduino mit Strom versorgt - sie verbraucht beim Senden etwa 20 mA, also sollte es Ihnen gut gehen. Stellen Sie also sicher, dass Sie den Akku entfernen.

Zum Code:

Wenn Sie den gesamten Apparat z.B. ein RPi, sollten Sie erwägen, alle Serial.print-Elemente zu entfernen - es ist viel einfacher, mit dem Arduino zu kommunizieren, wenn es nur zuhört und den Mund hält.

Das Senden von Befehlen wird im Code erklärt.

Viel Spaß - Kommentare sind willkommen!

Prost,

Björn

PS - Ich habe eine Einkanal-Fernbedienung verwendet. Es verwendet im Grunde das gleiche Layout wie die 5-Kanal-Fernbedienung, aber einige Teile (wie die zusätzlichen LEDs) fehlen. Ich frage mich, ob es zu anderen Kanälen springt, wenn SELECT ausgelöst wird. Ich habe es noch nicht versucht, weil ich nur froh war, dass ich einen Kanal zum Arbeiten bekommen habe, aber ich werde dies auf dem Laufenden halten

P.P.S. gerade gecheckt - der Select-Knopf hat leider jetzt Wirkung - wechselt nicht den Kanal, aber auch die Fernbedienung nicht kaputt.

Code

  • Seriell an Somfy
Seriell an SomfyArduino
// SomfyDuino// von 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 eingehendeChar;void setup() { Serial.begin(9600); Serial.println ("SomfyDuino 0.71"); Serial.println ("Bjoern Foldenauer"); Serial.println("-----"); Serial.println ( "erhält einzelne serielle Zeichen wie:"); Serial.println ( "u - Vorbereitung zum Drücken von UP"); Serial.println ( "d - bereiten Sie sich darauf vor, DOWN zu drücken"); Serial.println("m - Bereiten Sie sich vor, My zu drücken"); Serial.println ( "p - Vorbereitung zum Drücken von PROG"); Serial.println("s - Bereiten Sie sich vor, AUSWÄHLEN zu drücken"); Serial.println ( "r - Sendezähler um eins erhöhen"); Serial.println ( "beliebige Ziffer X - Haltezeit um X * 100 ms erhöhen"); Serial.println("e - Execute! Führt ein definiertes Drücken und Halten (mehrere Tasten) aus"); /erial.println(""); Serial.println("Beispiel:regulär UP:u5e"); Serial.println("3 Sekunden UP/DOWN:ud9993e"); Serial.println("5 Sekunden PROG:p999995e"); Serial.println(""); pinMode (progPin, AUSGANG); pinMode (upPin, AUSGANG); pinMode (downPin, AUSGANG); pinMode (myPin, AUSGANG); pinMode (ledPin, AUSGANG); pinMode (selectPin, AUSGANG); digitalWrite (progPin, HIGH); digitalWrite (upPin, HIGH); digitalWrite (downPin, HIGH); digitalWrite (myPin, HOCH); digitalWrite (selectPin, HIGH); digitalWrite (ledPin, LOW);} ungültige Schleife () { während (Serial.available () ==0) { Verzögerung (50); aufrechtzuerhalten. // warten, bis der serielle Befehl eintrifft if (Serial.available ()> 0) {eingangszeichen =Serial.read (); Serial.println (incomingChar); if (incomingChar =='u') {upPress =true;} if (incomingChar =='d') {downPress =true;} if (incomingChar =='m') {myPress =true;} if (incomingChar =='p') {progPress =true;} if (incomingChar =='s') {selectPress =true;} if (incomingChar =='1') {holdTime +=100;} if (incomingChar =='2') {holdTime +=200;} if (incomingChar =='3') {holdTime +=300;} if (incomingChar =='4') {holdTime +=400;} if (incomingChar =='5') {holdTime +=500;} if (incomingChar =='6') {holdTime +=600;} if (incomingChar =='7') {holdTime +=700;} if (incomingChar =='8') {holdTime +=800;} if (incomingChar =='9') {holdTime +=900;} if (incomingChar =='r') {repeatSend++;} if (incomingChar =='e') {somSend();} }}void somSend () { Serial.print ( "Drücken:"); 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 ("mein");} if (progPress) {digitalWrite (progPin, LOW); Serial.print ("prog");} if (selectPress) {digitalWrite (selectPin, LOW); Serial.print ("select");} digitalWrite (ledPin, HIGH); Serial.print ("für"); Serial.print (holdTime); Serial.println("ms"); Verzögerung (holdTime); digitalWrite (progPin, HIGH); digitalWrite (upPin, HIGH); digitalWrite (downPin, HIGH); digitalWrite (myPin, HOCH); digitalWrite (selectPin, HIGH); digitalWrite (ledPin, LOW); Verzögerung (holdTime); } upPress =false; downPress =false; myPress =false; progPress =false; selectPress =false; Haltezeit =0; wiederholenSenden =0; Serial.println("fertig.");}

Schaltpläne

Kein Dokument.


Herstellungsprozess

  1. Wetterfernüberwachung mit Raspberry Pi
  2. Raspberry Pi Universal-Fernbedienung
  3. Verwenden der IR-Fernbedienung mit Raspberry Pi ohne LIRC
  4. Ferngesteuerter Herzfrequenzmesser
  5. Raspberry Pi/Hologramm SMS-gesteuerter Netzschalter
  6. ROObockey:Ferngesteuerter, zielunterstützter Straßenhockey-Roboter
  7. Cloud-Überwachung, ein Fernsteuerungssystem
  8. 5 Vorteile der Fernsteuerung der Produktion
  9. Remote-gRPC mit grpcurl
  10. 3 Hauptvorteile der Fernüberwachung