Ankündigung

Einklappen
Keine Ankündigung bisher.

ARDUINO am KNX

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Catter
    antwortet
    Soundaktor

    Hallo Leute,

    Wollten hier mal mein kleines Projekt vorstellen um ein Feedback zu bekommen.

    Es handelt sich um einen Sound-Aktor der 6 Eingänge hat und jeweils einen auf den Ausgang legt.
    Ich will es verwenden um zwischen den verschiedenen Eingangsquellen meiner Stereoanlage (BluRay, Fernseher, Playstation, usw) bequem hin und her schalten zu können.

    Derzeit "hört" der Aktor auf 7 verschiedenen Gruppenadressen (Input1-6 und AUS/EIN)

    Morgen spendiere ich ihm noch irgendeine Statusanzeige und integriere den Raspberry Pi als MedienCenter (vorallem für Google Music).

    Zusätzlich will ich ihn noch über Infrarot steuern können und eine Lautstärkenregelung ist auch noch geplant.

    Es ist erst der erste Prototyp und sieht deshalb noch sehr chaotisch aus (Bild im Anhang).

    Sollte das Projekt gut ankommen mach ich selbstverständlich einen eigenen Thread auf
    Ich freue mich auf euer Feedback
    Angehängte Dateien

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    @Tessi: gut aufgepasst.
    Also noch zwei 1er dazu an den richtigen Stellen :-)
    Danke.

    Hab's korrigiert. Nachher schau ich mal ob's läuft und baue es in die Lib ein.
    Bin noch unterwegs...

    Einen Kommentar schreiben:


  • Tessi
    antwortet
    Also minutes und seconds benötigen aber jeweils 6 Bit, nicht nur 5.

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    So - ich hab noch ein bisschen gebastelt: das müsste passen:
    KnxTelegramm.cpp:
    Code:
    void KnxTelegram::setKNXTime(int day, int hours, int minutes, int seconds) {
        setPayloadLength(3);
    
        // Day um 5 byte nach links verschieben
        day = day << 5;
        // Buffer[8] füllen: die ersten 3 Bits day, die nächsten 5 hour
        buffer[8] = (day & B11100000) + (hours & B00011111);
    
        // buffer[9] füllen: 2 bits leer dann 6 bits für minuten
        buffer[9] =  minutes & B00111111;
        
        // buffer[10] füllen: 2 bits leer dann 6 bits für sekunden
        buffer[10] = seconds & B00111111;
    }
    Jetzt noch ein bisschen das "außenrum" in die Lib und es müsste gehen.
    Vielleicht komme ich heute abend dazu.

    So - "aus dem Kopf" - alles ungetestet:
    KnXTPUart.h:
    Code:
    bool groupWriteTime(int, int, int, int, int, int, int);
    KnXTPUart.cpp:
    Code:
    bool KnxTpUart::groupWriteTime(int mainGroup, int middleGroup, int subGroup, int day, int hours, int minutes, int seconds) {
    	createKNXMessageFrame(2, KNX_COMMAND_WRITE, mainGroup, middleGroup, subGroup, 0);
    	_tg->setKNXTime(day, hours, minutes, seconds);
    	_tg->createChecksum();
    	return sendMessage();
    }
    KnxTelegram.h:
    Code:
        void setKNXTime(int day, int hours, int minutes, int seconds);

    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • Schnakaus
    antwortet
    Ich habe den Empfänger :
    DCF-Empfangsmodul DCF1 - Bausätze / Module - Module - - Pollin Electronic

    mit der Lib:
    Arduino DCF77 Library 0.9.7
    https://github.com/thijse/Arduino-Libraries/downloads
    Thijs Elenbaas 2012

    und dazu RTC DS3231

    Das ist deutlich billiger als der Zeitgeber und ich will ja auch was lernen dabei.


    OK, ich versuche mich an der Konvertierung


    grüße

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    :-)
    Ich hab auch schonmal gegoogelt:
    Einen DCF kriegt man ja für 5€: DCF-Empfangsmodul DCF1 - Bausätze / Module - Module - - Pollin Electronic

    Welchen Code/Lib hast du im Einsatz? Bitte mal einen Link.

    Versuch doch schonmal in deinen aktuellen Code die Konvertierung einzubauen und als Hex auszugeben.
    Wenn das passt mach ich die Lib passend :-)

    Gruß
    Thorsten

    BTW: Lohnt sich das eigentlich - ein fertiges Modul ist ja auch nicht teuer:
    https://www.google.de/shopping/produ...ed=0CEoQpiswAA

    Einen Kommentar schreiben:


  • Schnakaus
    antwortet
    Hi,

    Gedult hab ich.

    Die Zeit kommt vom Nano (wird von der RTC gesetzt). "Minute(), Hour() usw. Dezimal.

    Umwandeln und an Variblen übergeben könnte ich vllt. selbst.

    Dank Dir für die Mühe

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Naja - ein 10.001 Telegramm haben wir noch nicht implementiert weil der Bedarf noch nicht da war.
    Ich vermute du stellst dich als Beta-Tester zur verfügung - UND hast gedult?

    So - mal kurz in die Spec geschaut:

    10.001.png

    Sind also 24 bit / 3 Octets load.

    Wie hast du den die Uhrzeit vorliegen? Kriegst du das Umwandeln alleine hin?
    Wochentag 0-7 in 3 Byte - Stunde in 5 byte, minuten und sekunden in 6 byte?

    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • Schnakaus
    antwortet
    Hallo zusammen,

    vielen Dank für Eure Mühe die Ihr hier schon reingesteckt habt. Ich konnte mit der lib und einem Arduino Nano Lichter und ähnliches schalten.

    Mein Ziel ist einfach nur regelmäßig die Zeit für meine TS2+ zu schreiben.
    Ich stelle mein RTCs per DCF77. Danach kommt die Uhr zusammen mit einem Nano an die BCU. Eigentlich ganz einfach.

    Ich bin nach 4 Wochen als Quereinsteiger allerdings nicht fähig die Lib so zu ändern das ein 10.001 Tageszeit-telegramm versendet wird.

    Könntet Ihr mir bitte ein paar Hinweise geben?

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Ich Frag mal so in die Runde: gibt es irgenwelche Projekte die man mal Rumzeigen kann?
    Ich habe gerade mal meinen RFID (jetzt mit ADUM / galvanischer Trennung und Lenonardo-komaptiblem Pro-Micro) Dokumentiert.
    Ich denke solche Beispielsprojekte helfen...

    Da diesen Monster-Thread sicherlich kein Anfänger mehr freiwillig durchliest finde ich Projektvorstellungen in seperatem Thread sinnvoller

    Gruß
    Thorsten

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von HAAT Beitrag anzeigen
    und bekomme dann von der Arduino software die Meldung:
    'knx' was not declared in this scope
    Ja, da fehlt auch mindestens mal ein
    Code:
    KnxTpUart knx(&Serial,1,2,3);

    Einen Kommentar schreiben:


  • HAAT
    antwortet
    ich habe zunächst die Bibliothek von Thorsten Gering Basierend auf der DKA-Library verwendet

    #include <KnxTelegram.h>
    #include <KnxTpUart.h>

    void setup()
    {
    Serial.begin(19200);
    knx.uartReset();
    }

    ...


    und bekomme dann von der Arduino software die Meldung:
    'knx' was not declared in this scope

    Ich verwende das Arduino Board Mega 2560.

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von HAAT Beitrag anzeigen
    Wie habt ihr das Kompilierungsproblem mit der Bibliothek <KnxTpUart.h> gelöst, denn leider läuft die letzte Version bei mir nicht.
    Hi Sam,

    welches "Kompilierungsproblem" meinst du? Welches Board benutzt Du und wie sieht der Anfang deiner KnxTpUart.h aus?
    Kurz gefragt: was fuer einen Fehler bekommst du ueberhaupt?

    gruesse

    Einen Kommentar schreiben:


  • HAAT
    antwortet
    Arduino an KNX - Problem mit &lt;KnxTpUart.h&gt;

    Hallo an alle,

    ich versuch mich auch gerade an einem Projekt, bin aber im Gegensatz zu euch noch am Anfang. Ich wollte einen Arduino als Schnittstelle mit dem Busankoppler verwenden um dann wie ihr, beliebige Sensoren oder ähnliches an den KNX anschließen zu können. Wie habt ihr das Kompilierungsproblem mit der Bibliothek <KnxTpUart.h> gelöst, denn leider läuft die letzte Version bei mir nicht. Nicht mal die Beispiele lassen sich fehlerfrei überprüfen.

    Vielen Dank und Gruß!
    Sam

    Einen Kommentar schreiben:


  • l0wside
    antwortet
    Es IST ein billiger Klon des Salae, funktioniert aber 1a. Bei Verwendung von sigrok auch ohne schlechtes Gewissen.
    Für den Privatgebrauch reicht das völlig.

    Max

    Einen Kommentar schreiben:

Lädt...
X