[FERTIG]4x4 Key Matrix für SHC

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hab in letzter Zeit aus Zeitgründen nichts mit dem SHC gemacht, aber soweit ich mich erinnere gibt es doch die toggle Funktion. Heißt, bei jedem drücken wird umgeschaltet.

    Zur Matrix: Um alle Tasten nutzen zu können, müsstest Du m.E. eine Verknüpfung bei der Abfrage softwareseitig einsetzen.
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • Ich habe mir nun schon Gedanken gemacht wie man das machen kann.


    Ich würde über die EPS12 die Keypad´s betreiben wollen diese Senden an eine Webseite/php basierend die befehle diese schauen nach ob Ausgang auf HIGH oder LOW steht und schalten diesen den um soweit wäre es technisch möglich aber wenn das SHC diesen Befehl schon drin hat wäre das ja um ein Vielfaches besser/leichter für einen das zu realisieren.


    also um das Keypad zu betreiben ist mein Code vorhanden. dieser macht sich um ein Vielfaches besser als die Anderen Sachen die man im Netz findet da er sehr einfach aufgebaut ist. ich brauch halt den nur mal die toggle Funktion aus dem SHC werde mal auf die suche gehen wie man diese Funktion aufrufen kann.
  • Ich möchte auch euch etwas auf dem Laufenden halten.

    Ich habe nun schon die KeyPad und auch schon die Wlan Anbindung fertig ich habe nun nur noch Probleme mit der Einbindung der HttpSend befehle die ich zum Toggeln (umschalten) nutzen will. Wenn jemand von euch einen Plan dafür hat wäre das natürlich richtig super.


    Hier erstmal unser Code wie er bis jetzt aussieht:


    C-Quellcode: Wlan-Keypad.ino

    1. #include <ESP8266WiFi.h>
    2. #include <Keypad.h>
    3. const byte ROWS = 4;
    4. const byte COLS = 4;
    5. char keys[ROWS][COLS] = {
    6. {'D','#','0','*'},
    7. {'C','9','8','7'},
    8. {'B','6','5','4'},
    9. {'A','3','2','1'}
    10. };
    11. byte rowPins[ROWS] = {2, 0, 4, 5};
    12. byte colPins[COLS] = {15, 13, 12, 14};
    13. Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
    14. const char* ssid = "WLAN_NAME";
    15. const char* password = "KEY";
    16. void setup() {
    17. Serial.begin(9600);
    18. delay(10);
    19. Serial.println();
    20. Serial.println();
    21. Serial.print("Connecting to ");
    22. Serial.println(ssid);
    23. WiFi.begin(ssid, password);
    24. while (WiFi.status() != WL_CONNECTED) {
    25. delay(500);
    26. Serial.print(".");
    27. }
    28. Serial.println("");
    29. Serial.println("WiFi connected");
    30. Serial.println("IP address: ");
    31. Serial.println(WiFi.localIP());
    32. }
    33. int value = 0;
    34. void loop()
    35. {
    36. keypadin();
    37. }
    38. void keypadin()
    39. {
    40. char key = kpd.getKey();
    41. if(key)
    42. {
    43. switch (key)
    44. {
    45. case '1':
    46. Serial.println(key);
    47. break;
    48. default:
    49. Serial.println(key);
    50. }
    51. }
    52. }
    Alles anzeigen
    in meinem Fall habe ich das KeyPad 4x4 an einem esp8266 12 E Devkit dran und dieser hat danach noch Pins frei womit ich noch ein Relay steuern möchte so das ich die ganze Technik den hinten einem Lichtschalter verstecken kann. Ich habe mir auch schon keine 230v to 5v Netzteile Organisiert.(bei mir in der Wohnung liegen voll 230V hinter dem Lichtschalter an daher geht das da so einfach.Nur noch etwas platz machen mit einem Bohrer/meißel) So nun seit auch ihr alle auf dem Aktuellen stand. ich würde mich freuen wenn jemand von euch einen Einfach hat wie ich die send befehle am besten nutzen könnte.
  • So Leute gute Nachricht


    Es Geht nun zu 100% und ich kann Jede Taste für das SHC nutzen.

    Hier der code

    Quellcode

    1. #include <Arduino.h>
    2. #include <ESP8266WiFi.h>
    3. #include <ESP8266WiFiMulti.h>
    4. #include <ESP8266HTTPClient.h>
    5. #define USE_SERIAL Serial
    6. //==========================KeyPad-SETTINGS=============================
    7. #include <Keypad.h>
    8. const byte ROWS = 4; //four rows
    9. const byte COLS = 4; //four columns
    10. //define the cymbols on the buttons of the keypads
    11. char keys[ROWS][COLS] = {
    12. {'D','#','0','*'},
    13. {'C','9','8','7'},
    14. {'B','6','5','4'},
    15. {'A','3','2','1'}
    16. };
    17. byte rowPins[ROWS] = {2, 0, 4, 5}; //connect to the row pinouts of the keypad
    18. byte colPins[COLS] = {15, 13, 12, 14}; //connect to the column pinouts of the keypad
    19. // Create the Keypad
    20. Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
    21. //===========================WIFI-SETTINGS==============================
    22. IPAddress ip(192, 168, 178, 77);
    23. const char* ssid = "SSID";
    24. const char* password = "PASSWORD";
    25. ESP8266WiFiMulti WiFiMulti;
    26. HTTPClient http;
    27. //===============================SETUP==================================
    28. void setup() {
    29. Serial.begin(9600);
    30. delay(10);
    31. // We start by connecting to a WiFi network
    32. Serial.println();
    33. Serial.println();
    34. Serial.print("Connecting to ");
    35. Serial.println(ssid);
    36. WiFi.begin(ssid, password);
    37. while (WiFi.status() != WL_CONNECTED) {
    38. delay(500);
    39. Serial.print(".");
    40. }
    41. Serial.println("");
    42. Serial.println("WiFi connected");
    43. Serial.println("IP address: ");
    44. Serial.println(WiFi.localIP());
    45. Serial.flush();
    46. delay(200);
    47. // allow reuse (if server supports it)
    48. http.setReuse(true);
    49. }
    50. void loop()
    51. {
    52. keypadin();
    53. }
    54. void keypadin()
    55. {
    56. char key = kpd.getKey();
    57. if(key) // Check for a valid key.
    58. {
    59. switch (key)
    60. {
    61. case '1':
    62. Serial.println(key);
    63. //===============================http senden==========Wandboard================
    64. if((WiFiMulti.run() == WL_CONNECTED)) {
    65. http.begin("http://192.168.178.22/shc/index.php?app=shc&a&ajax=executeswitchcommand&sid=48&command=2");
    66. int httpCode = http.GET();
    67. http.end();
    68. }
    69. //===============================http senden===================================
    70. break;
    71. case '2':
    72. Serial.println(key);
    73. //===============================http senden===================================
    74. if((WiFiMulti.run() == WL_CONNECTED)) {
    75. http.begin("http://192.168.178.22/shc/index.php?app=shc&a&ajax=executeswitchcommand&sid=10&command=2");
    76. int httpCode = http.GET();
    77. http.end();
    78. }
    79. //===============================http senden===========GoldeneRose=============
    80. break;
    81. default:
    82. Serial.println(key);
    83. }
    84. }
    85. }
    Alles anzeigen


    zur Erklärung :
    Eine Taste wird damit Angelegt einfach bei der case '(Taste benennen)':

    mein SHC hat die IP 192.168.178.22 also müsst ihr die IP ändern zu eurer und denn die SID ändern damit eure Geräte geschalten werden können

    Die SID bekommt ihr per SHH angezeigt:

    php index.php app=shc -sw -l



    Quellcode

    1. case '2':
    2. Serial.println(key);
    3. //===============================http senden===================================
    4. if((WiFiMulti.run() == WL_CONNECTED)) {
    5. http.begin("http://192.168.178.22/shc/index.php?app=shc&a&ajax=executeswitchcommand&sid=10&command=2");
    6. int httpCode = http.GET();
    7. http.end();
    8. }
    9. //===============================http senden===========GoldeneRose=============
    10. break;

    so hab ich die ESP8266 12e verbaut mit einem kleinen 5v Netzteil was denn in der Wand verschwindet wo ich den immer noch ein Gerät laden könnte..


    IMG_5952.jpgIMG_5953.jpg


    Hier mal ein Video zum ansehen wie es Funktioniert.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von jannek ()

  • Für euch heute mal das Erste fast fertig Pad.

    IMG_5970.JPG


    Sollte ich den Code mal Ändern möchte brauche ich nur die Steckdosen Kappe abschrauben. und USB einstecken.Und los geht es.

    IMG_5971.JPG

    Das fertig Ergebnis seht ihr hier auf das Pad wurde erstmal ein Print drauf geklebt da kommt aber noch ein richtiger drauf da mein Drucker grade nicht wirklich drucken wollte.


    IMG_5973.JPG

    Ich würde dazu gern mal eure Meinungen wissen.. ?
  • Super Idee was du da umgesetzt hast.
    Werde es bei mir erstmal im Wintergarten
    einsetzen wo ich dann per Hand die Markise
    und Seitenschattierung bedienen kann.
    Falls du den Hersteller deiner Schalter/Steckdosen
    Kombi kennst, dann hätte ich da eine Idee.
    Siehe Bild. So soll es dann bei mir aussehen.
    Dateien
    • Unbenannt4.JPG

      (34,61 kB, 23 mal heruntergeladen, zuletzt: )
    Kann besser Hardware als Software !
  • premo schrieb:

    Super Idee was du da umgesetzt hast.
    Werde es bei mir erstmal im Wintergarten
    einsetzen wo ich dann per Hand die Markise
    und Seitenschattierung bedienen kann.
    Falls du den Hersteller deiner Schalter/Steckdosen
    Kombi kennst, dann hätte ich da eine Idee.
    Siehe Bild. So soll es dann bei mir aussehen.
    Ich werde bei mir in der Wohnung neue schalter Abdeckungen einsetzen da drüber hin naus sollen die keypad alles etwas leuchten bzw ich möchte auch in der Nacht die einzelnen tasten richtig sehen können
  • Habe die super Idee von jannek umsetzen können
    und für meine Zwecke eine Platine für die
    UP Dose erstellt.
    Anschliessen kann man einen 3x4 oder 4x4 Keypad.
    Dateien
    • Keypad 3x4_4x4 2..JPG

      (130,15 kB, 18 mal heruntergeladen, zuletzt: )
    • 3x4-keypad.JPG

      (60,56 kB, 16 mal heruntergeladen, zuletzt: )
    • 4x4-keypad.JPG

      (24,93 kB, 50 mal heruntergeladen, zuletzt: )
    Kann besser Hardware als Software !
  • Ich wollte euch heute nun die weitere Entwicklung nicht vorenthalten. Hier nun 4x4 Key Pad mit Beleuchtung... Ja ihr habe richtig gehört mit Beleuchtung Grins

    Da ich beruflich mit Handy Displays zutun habe komm ich natürlich da ganz einfach ran. also mal schnell die Beleuchtungseinheiten vom Einen Display mal zweck entfremdet. und hier und da noch etwas Folie damit man es richtig Drücken kann. und siehe da es geht..


    IMG_6127.JPG

    16 v anliegend

    Bildschirmfoto 2017-03-26 um 21.31.09.png


    Die Obere Klebe folie muss den noch mal angepasst werden aber für den ersten test finde ich es schon mal nicht Schlecht. oder was sagt ihr?

    Gruß jannek