Beiträge von Neueinsteiger

    Willkommen im Forum.

    Um RaspberryMatic darauf laufen zu lassen kannst Du so ziemlich jeden RasPi nutzen. Insofern war es kein Fehlkauf. Was Dir noch fehlt (neben Micro-SD, Netzteil, etc.) ist das passende Funkmodul. Du kannst entweder das "alte" nehmen

    https://www.elv.de/homematic-f…raspberry-pi-bausatz.html


    Oder das neuere Modul

    https://www.elv.de/homematic-f…-mod-komplettbausatz.html


    Dazu dann noch ein paar gekaufte oder selbst gebaute Aktoren und schon kann es los gehen.

    (Auswahl beispielhaft)

    Auch von mir ein Willkommen im Forum.

    Den MCP23017 gibt es in zwei Versionen. Für die I²C Version habe ich vor einiger Zeit mal zwei Platinchen gemacht. Für Deinen Zweck müsste die kleinere Platine schon ausreichen. Sollte Dir die Löterei nicht so liegen, lass es mich wissen. Von den Platinen habe ich nämlich noch ein paar hier liegen.


    Portexpander / Porterweiterung mit MCP23017 (I²C)


    Breakout Board für MCP 23017 (I²C)


    Du hast gefragt, ob es einen physikalischen Unterschied zwischen SCL/SDA und den anderen GPIO gibt. Ja, den gibt es. SCL und SDA haben Pullup Widerstände auf dem RasPi, so dass diese an den externen Gerätschaften nicht mehr notwendig sind.

    Ich habe inzwischen so einige Aktoren und Sensoren, bzw. die Platinen dafür gebaut. Einige habe ich hier im Forum vorgestellt, andere (noch) nicht.

    Den hier zum Beispiel habe ich inzwischen von Wlan auf HomeMatic 868Mhz umgebaut:

    Heimautomatisation: 2-Kanal Aktor z. B. zur Rolladensteuerung

    Damit könntest Du je nach Sketch eine Rollade steuern oder zwei verschiedene Verbraucher unabhängig voneinander schalten.


    Mit dieser Platine z. B. ist auch etliches möglich:

    Sonoff S20 Umbau auf 868Mhz HomeMatic


    Es kommt halt drauf an, was Du machen möchtest.

    Inzwischen habe ich eine andere Platine entworfen, bei der es nicht mehr notwendig ist, die LEDs provisorisch zu installieren. Wie gehabt dient eine LED (rot) zur Signalisierung des Funkverkehrs und die zweite LED (grün) der Anzeige des Relaiszustandes. Ist das Relais eingeschaltet, leuchtet die LED. Die Platine ist so klein, dass sie problemlos in das S20 Gehäuse passt, ohne in den 230V AC Bereich zu ragen. Die Platine kann natürlich auch anderweitig eingesetzt werden. Hierzu ist es möglich, einen Spannungswandler zu installieren, falls die 3V§ nicht zur Verfügung stehen, sondern die Eingangsspannung 5-15V beträgt. Auf der Platine sind SDA/SCL so wie D5 per Lötpad zugänglich. Außerdem sind über die Stiftleiste jeweils zwei als Ein- und Ausgang bezeichnetet Anschlüsse vorgesehen. Dazu dann wie üblich Rx/Tx und Reset.


    Sollte jemand Interesse an der Platine habe, kann er sich gerne melden, denn ich habe mehr Platinen als eigenen Bedarf.

    Wenn Du ganz normale DC Motoren (Maximalstrom beachten) in beide Richtungen drehen möchtest, dann bietet sich ein L293D an. Der benötigt aber 5V. Es müsste also ein Levelshifter zwischen RasPi und L293D (die D-Version hat die Antiparalleldioden intern)

    Dieses Projekt macht banal gesagt aus dem 3V3 GPIO Signal ein nicht invertiertes 5V Signal und wäre für diesen Einsatz geeignet:

    3V3 zu 5V Pegelwandler / Level-Shifter

    Aber es gibt natürlich noch viele andere Möglichkeiten.


    Über je drei Eingänge kannst Du zwei Motoren pro IC steuern. mit dem ersten Eingang gibst Du per PWM die Geschwindigkeit vor. Mit den beiden anderen Eingängen je nach Kombination von HIGH und LOW die Drehrichtung.


    edit: Erst einmal willkommen im Forum!

    Die Spannungsversorgung der Schaltung erfolgt mit 5V. Bedingt durch ein relativ langes Kabel habe ich die Kombi aus StepDown und StepUp gewählt, um sicher zu stellen, dass auch wirklich 5V anliegen.

    Das Ausgangssignal des MCP3208 wird durch einen Levelshifter auf 3V3 gebracht und zum RasPi geleitet. Das ist aber eigentlich relativ ausführlich im ersten Beitrag beschrieben. Wo genau hakt es denn bei Dir?

    So wie ich es verstanden habe, sollte man die Finger von Timer0 lassen, da damit alles andere verknüpft ist. Timer1 und Timer2 haben hingegen kaum Einfluss auf "normale" Anwendungen. Da ich im aktuellen Projekt (Lötdampfabsaugung) auch millis() nutze, habe ich den PWM Pin zur Ansteuerung des FET von D6 auf D9 gelegt und lediglich Timer1 verändert. Das scheint nun alles noch genau so wie vorher zu laufen, nur dass dieses nervige Fiepen weg ist.

    Weil ich aktuell ein Problem mit einem fürchterlich fiependen Lüfter habe, den ich per PWM in der Drehzahl regulieren möchte, habe ich nach einer Lösung gesucht. Dabei bin ich auf diese Lösung gefunden, die mit einer Funktion arbeitet. Um nur "mal eben" die Frequenz zu ändern ist das natürlich etwas "overkill", aber trotzdem vielleicht für den einen oder anderen interessant.


    Wichtig ist zu wissen, dass bei einer Änderung der PWM an D5 oder D6 (Timer 0) gleichzeitig die Funktionen delay(), millis() und micros() verändert werden!

    Timer 0 läuft mit 62500 Hz.

    Timer 1 und Timer 2 laufen mit 31250 Hz.


    Schön erklärt und mit Daten hinterlegt ist das hier.


    Für den Fall, dass der Link irgendwann tot ist und für mich als Gedankenstütze:

    Wer wie ich nur "mal eben" einen Timer ändern möchte, schreibt in die void setup()


    TCCRnB = TCCRnB & 0b11111000 | Befehl;

    Bei diesem befehl müsst ihr nur das n durch die Nummer des Timers und Befehl durch den Hex Code aus der Tabelle oben ersetzen. Für Timer1 und 31300Hz sähe es dann so aus.

    TCCR1B = TCCR1B & 0b11111000 | 0x01; // Timer1 entspricht D9 und D10

    Sehr schade, dass gerade dieser Arduino mit DIP Sockel betroffen ist. Sollte man es wirklich schaffen, den AVR zu verfusseln oder zu himmeln, wäre es sehr einfach, einen Ersatz zu installieren. Das ist bei der von flyppo gezeigten Version für Laien schwierig bis unmöglich.


    Ist es Dir nicht möglich, die KerKos gegen LED zu tauschen? Zum Entsorgen ist er auf jeden Fall zu schade.

    Soweit ich mich erinnere, hatte joh.raspi damals eine Liste angelegt, in die er diverse LDO eingetragen hat. Welchen Du davon meinst, kann ich aber nicht sagen. Den Link zur Liste müsste ich suchen. Keine Ahnung, wo ich den abgelegt habe...


    Bezüglich des Energiemanagements mit dem ESP habe ich damals diese Geschichte gebaut:

    https://forum-raspberrypi.de/f…?postID=182399#post182399

    Das läuft noch immer einwandfrei.


    Der µC hängt direkt an den beiden AA Eneloop und schaltet bei Bedarf den StepUp ein, um den ESP mit 3V3 zu versorgen. Der widerum teilt dem µC mit, wenn er sienen Job getan hat, woraufhin der µC den StepUp wieder abschaltet.

    Naja, dass das alles nicht so völlig optimal ist, ist mir schon klar. Aber für diesen Anwendungsfall wäre auch eine Fehlerrate von einem Grad nicht tragisch. Ich hatte die Batterien rumliegen und wollte einfach mal testen, ob man damit noch etwas machen kann, bevor sie entsorgt werden.


    Mir geht es hauptsächlich darum, die Temperaturkurve über die Kurve des Stromverbrauchs zu legen, um zu sehen, wann wo welches Gerät für den Stromverbrauch verantwortlich ist. Wenn ich zusätzlich noch die Info bekomme, dass das Eis eine gute Konsistenz hat, um verzehrt zu werden, dann ist das nice-to-have. Vielleicht baue ich demnächst noch eine E-Mail Benachrichtigung ein, für den Fall, dass die Temperatur über einen Schwellwert steigt, weil das Fach nicht richtig verschlossen ist.


    Deinen Vorschlag mit der Saft14500, den finde ich richtig gut und werde mir so ein Teil die Tage bestellen. Die kommt dann im nächsten Schritt an die Schaltung, wenn die CR2 ausgelutscht ist.


    Ich nutze diese Lötstation mit diversen Lötwerkzeugen. Am ESP habe ich auch schon "rum gemacht". Das Rastermaß ist geringfügig kleiner als 2mm ;-)

    https://forum-raspberrypi.de/a…t/6973-esp8266-4gpio-jpg/


    Den Stepdown kenne ich nicht und sehe auch keinen Anwendungsbedarf dafür. Aber die Eckdaten hören sich in der Tat interessant an.

    Die eingetütete Schaltung ist seit zwei Tagen im Eisfach des "Zweitkühlschranks". Die Temperatur schwankt in etwa zwischen -11 und -13 Grad. Bislang gibt es regelmäßig Temperaturmeldungen. Die Grafik sieht bisher sehr regelmäßig aus.


    Auf der Platine kann man den AMS1117 verwenden, wenn man von extern eine entsprechend hohe Spannung hat. Ich zapfe hierzu ganz gerne schon mal sowieso vorhandene USB-Buchsen (Receiver, Ladegeräte, RasPi, etc.) oder auch direkt Netzteile an. Betreibt man die Platine direkt an einer Batterie, wie in diesem Fall, lässt man den Spannungsregler weg und brückt mit einem Lötklecks IN und OUT, so dass man ohne Umwege die Spannung anlegen kann. Der Stromverbrauch liegt im Ruhebetrieb bei rund 0,0045mA, während der Messung bei ca. 10mA und wenn gesendet wird bei etwa 20mA. Gesendet wird nur, wenn sich die Temperatur verändert hat. Ich habe bei diesem Anwendungsfall von BiDi auf UniDi umgestellt, um Energie zu sparen. Wenn wirklich mal ein Wert fehlt, ist das nicht so tragisch. Die Sendung dauert in etwa 0,2 Sekunden. Rein rechnerisch liegt der Stromverbrauch damit bei einer Sendung pro 4 Minuten bei rund 180mA pro Jahr. Ich bin gespannt, ob das wirklich so sein wird.


    Da ich weder Dein Werkzeug, noch Deine Fertigkeiten kenne, kann ich nicht beurteilen, ob Du das hin bekommen würdest. Ich arbeite nicht nach der "nimm reichlich Flußmittel" Methode, sondern löte jeden Pin einzeln an. So kann ich sofort sehen, ob sich eine Lötbrücke gebildet hat oder nicht. Das hat bisher immer funktioniert. Der µC steckt in der Tat unter dem Funkmodul. Hier kann man ihn sehen.


    Das Funkmodul habe ich nicht ausgesucht. Es scheint das beste Modul zu sein, dass für einen bezahlbaren Preis für die HomeMatic "Nachbauten" zu bekommen ist. Stromverbrauch und Reichweite sind sehr gut. Daher habe ich mir noch nie Gedanken um Alternativen gemacht.

    Um die Temperatur im Gefrierfach sehen zu können, habe ich eine Lösung gesucht, mit der es möglich ist, diese innerhalb der HomeMatic darstellen zu können. Fündig geworden bin ich hier. Zwar ist der DS18B20 für Spannungen unter 3V eigentlich nicht vorgesehen, aber bei meinen Versuchen konnte ich feststellen, dass er bis etwa 2V3 keine andere Temperatur anzeigt als bei 3V. Da die verwendete Lithium Batterie bei 2V3 nahezu komplett leer sein dürfte, wird ein Austausch schon vorher notwendig sein, weshalb ich es erst einmal mit dem DS18B20 probieren möchte. Sollte das auf Dauer nicht funktionieren, werde ich einen NTC nehmen. Die "original" Sensoren wie z. B. der Differenztemperatur Sensor nutzen ebenfalls NTC. Den hatte ich aber nicht in der Kramkiste liegen.


    Um das Projekt umzusetzen, habe ich meine bereits hier vorgestellte Platine als Basis genommen, den Arduino Bootloader installiert, BOD deaktiviert und den oben verlinkten Sketch geflasht. Zur Spannungsversorgung habe ich eine CR2 Zelle genommen, die bereits im Fach "Batteriemüll" lag, weil das bis vor kurzem damit betriebene Gerät sie als "leer" angemeckert hat. Sie hat noch gut 2V8 und ich möchte wissen, wie lange sie noch leergenudelt weden kann, bis wirklich nichts mehr geht.


    Damit keine Probleme mit Feuchtigkeit auftreten, habe ich alles zusammen in eine Gefriertüte eingeschweißt.