Modul zur Nutzung der Raspberry Pi GPIO

Hallo Bernd,

bei meinen Tests kamen jetzt überall schlüssige Ergebnisse!:):slight_smile:

Aber noch eine Frage zur Umsetzung:

Die Formel im Datenblatt sieht zur Berechnung des Ergebnisses vor, dass es am Ende durch die Verstärkung (Gain) dividiert wird. Ansonsten ist das Maximum des darstellbaren Ergebnisses sowieso 2048mV…
Soll ich das jetzt machen oder nicht?

Joachim

Hallo Joachim,

klasse Ergebnisse, ich habe alle Auflösungen (12/14/16/18 bit) mit positiver und negativer Polung getestet, scheint alles zu passen. Meine Messquelle hatte ca. 1230 mV. Im Screenshot bin ich wegen der GAIN-Frage runter auf 1,x mV gegangen (etwas schwankend, kommt von einer Solarzelle im dunklen). Messung mit 18 bit / GAIN 8x, grün markiert passt super.

Hellblau markiert der gleiche Eingang mit GAIN 1x/2x/4x/8x und die Werte dazu. Wenn man es dann wieder durch den GAIN Faktor teilt kommt zumindest der richtige Wert heraus. Aktuell wird ja die Spannung * GAIN dargestellt, da bekommt man zumindest mit, dass Verstärkung aktiviert ist, na ja Geschmackssache, ich würde es erst mal so lassen. Wer an GAIN rumspielt, muss wissen was er tut und kann anschließend ja selbst wieder durch GAIN teilen. War das deine Frage?

Gruss
Bernd

Values.jpg

Hi.
Dieses Modul nimmt ja unglaubliche Formen an, kaum mal 2 Tage nicht geguckt und schon 10 Posts mehr. SUPER!

Nachdem ich von kodi auf amazon Sticks mit kodi umgestiegen bin, hab ich hier nochm2 Raspi 2 liegen,die beschäftigt werden wollen…

Dazu hab ich hier noch mehrere AM2302 (auch dht22 genannt) liegen,welche ich in Zukunft gerne anschließen möchte.
Auf der PigPio Seite gibt es da ein Beispiel mit automatischer Erkennung der DHT Version,ist das in diesem Modul auch schon möglich?

Danke für die Klasse Arbeit, so machen Foren Spass!!
Sven

Gesendet von meinem SM-T560 mit Tapatalk

Hallo Sven,

vielen Dank für die Blumen.

Aktuell werde ich jedoch keine neuen Sensoren/Aktoren für dieses Modul anlegen (aber aufgeschoben ist nicht aufgehoben!) - ich benötige meine knappen zeitlichen Ressourcen um etwas Neues auf den Weg zu bringen - lasst Euch überraschen! :wink:
Selbstverständlich versuche ich auch weiterhin Fehler und kleine Erweiterungen zeitnah zu korrigieren bzw. umzusetzen.

Bis dahin empfehle ich Dir den BME280, der kann neben Temperatur und Luftfeuchtigkeit auch den Luftdruck ermittelt. Er ist mit etwas Geduld sehr günstig in China zu bekommen.

Joachim

Hallo Daniel,

hier mal meine Gedanken zu dem Thema der aktiven Relais.
Wie ist der Status beim BootUp des Pi:

+----------+-Rev1-+------+--------+------+-------+
| wiringPi | GPIO | Phys | Name   | Mode | Value |
+----------+------+------+--------+------+-------+
|      0   |  17  |  11  | GPIO 0 | IN   | Low   |
|      1   |  18  |  12  | GPIO 1 | IN   | Low   |
|      2   |  21  |  13  | GPIO 2 | IN   | Low   |
|      3   |  22  |  15  | GPIO 3 | IN   | Low   |
|      4   |  23  |  16  | GPIO 4 | IN   | Low   |
|      5   |  24  |  18  | GPIO 5 | IN   | Low   |
|      6   |  25  |  22  | GPIO 6 | IN   | Low   |
|      7   |   4  |   7  | GPIO 7 | IN   | Low   |
|      8   |   0  |   3  | SDA    | OUT  | Low   |  
|      9   |   1  |   5  | SCL    | OUT  | Low   |  
|     10   |   8  |  24  | CE0    | IN   | Low   |
|     11   |   7  |  26  | CE1    | IN   | High  |
|     12   |  10  |  19  | MOSI   | IN   | Low   |
|     13   |   9  |  21  | MISO   | IN   | Low   |
|     14   |  11  |  23  | SCLK   | IN   | Low   |
|     15   |  14  |   8  | TxD    | ALT0 | High  |
|     16   |  15  |  10  | RxD    | ALT0 | High  |
+----------+------+------+--------+------+-------+

Die „freien“ GPIO sind also „LOW“ und im Mode „IN“.

Beim Start von IPS wird im ersten Schritt der MODE für den Pin von „IN“ auf „OUT“ gesetzt - danach ist er (vermutlich) immer noch „LOW“. Gleich danach wird im nächsten Befehl der Pin auf den Wert in der Startoption angeben ist gesetzt.
Ich vermute weiterhin, dass es nicht gelingen wird zu verhindern (beim BootUp des Pi als auch über IPS) den Pin auf HIGH zu setzen bevor das (LOW-Aktive-Relais) angezogen hat…
Das Relais würde also beim Start den Raspberry Pi als auch beim IPS-Start immer irgendwie kurzzeitig anziehen.
Von daher sollten zumindest mal probiert werden, es auf „HIGH“-Aktiv umzusetzen (oder ist das sowieso ein Relais mit Wechsler?).
Insbesondere beim Neustart von IPS laufen diverse Dinge parallel ab, die zeitliche Reihenfolge ist da ein Stück weit dem Zufall überlassen.

Der relativ problemlose Umbau auf „HIGH-Aktiv“ würde gleichzeitig auch die Aufgabenstellung mit der „verdrehten“ Anzeige lösen. In der Konfiguration ist es da leider nicht mit der einfachen Negierung des Signals getan, sondern auch die Eingaben zur Steuerung müssten dann ja immer „gedreht“ werden. Ich befürchte das wird am Ende nur zur Verwirrung führen.

Magst Du mir mal einen Link zu Deiner Relais-Platine posten?

Joachim

Nachtrag:
Nach diesem Link hat das Relais doch Wechselkontakt?!?

Hallo Joachim,

ich habe als abschließenden Test heute nochmal den MCP3424 im 18 bit Modus an einer Solarzelle getestet. An CH1 [ROT] war plus/minus und an CH2 [blau] minus/plus, also gekreuzt angeschlossen. Das Ergebnis passt perfekt. Zwischen 14:00-15:15 war doch zu viel Sonneneinstrahlung und die Solarzelle hat ueber 2048 mV geliefert, daher die Geraden.

Gruss
Bernd

Hi Joachim,
Danke für deine Arbeit, wirklich super!

Habe jetzt auch soweit alles eingerichtet bekommen, Informationen zu dem RasPi werden ausgelesen und in die Variablen geschrieben.

Ich habe aber das Problem das für das Nextion Display keinerlei Informationen ankommen.
Im Debug-Fenster des IPS2GPIO kommen sogar die Informationen zu Touch und Touch-release an aber ich bekomme keine Befehle gesendet.

Hat jemand ein konkretes Beispiel wie ich z.B. den Display dimmen kann?
Und evtl auch eines wie ich die Konfigurationsdatei übertragen kann?

Leider habe ich auch nach Lesen des Threads keine Informationen gefunden die mich weiter bringen.

Hallo Maccy,

bin gerade unterwegs, werde Dir nachher ein paar Worte dazu schreiben…

Joachim

Das ist ja mal eine schnelle Reaktionszeit, danke schonmal für die Rückmeldung :smiley:

Hab derweilen schonmal etwas weiter getestet und zumindest schon herausgefunden, dass der serielle Port beim RasPi 3 mit aktuellstem Raspbian Jessie unter /dev/serial0 (zumindest bei meinem) befindet.

Jetzt funktioniert schon der sync der Zeit und die Display-Helligkeit kann ich auch über die Instanz einstellen.

Grüße Marc

Hallo Marc,

die Funktion wird vom IPS aus aufgerufen mit

I2GDSP_Update(InstanzID, Path & Filename);

Die hmi-datei (so hieß die doch?) muss dabei auf dem Rechner sein, auf dem auch Dein IPS läuft.
Ich habe mich selbst mit dem Modul lange nicht mehr beschäftigt, weil aus dem Forum bisher wenig Resonanz war und ich keine formschönes Gehäuse oder Einbaurahmen gefunden habe.

Wenn Du dann irgendeine Aktion machst die im Display so konfiguriert ist, dass sie Daten sendet, sollten die dann auch im Modul ankommen.
Da das was der User dort programmiert hat sehr individuell ist, muss Du dann auf die ankommenden Daten selbst reagieren…

Wenn Du konkrete Vorschläge zur Verbesserung hast, werde ich versuchen diese zeitnah umzusetzen…

Joachim

Tipp: Wenn Du in der Konsole das Kontextmenü der Instanz aufrufst und „Befehle testen“ auswählst, kannst Du jeweils möglichen Funktionen sehen…

Hallo Joachim,

Danke dir, jetzt bin ich unterwegs aber werde es gleich wenn ich zuhause bin testen, der Tipp war gut, dass wusste ich tatsächlich gar nicht.

Achso ja, mit dem ganzen Pfad, darauf bin ich nicht gekommen, hatte schon überlegt wie ich die als Mediadatei in ips importiere…

Ja genau hmi, das ist das file was der grafische Editor von Nextion ausspuckt.
Ich muss sagen das ist neben den edip Displays, die mir aber zu teuer sind, die beste Lösung die ich bisher für mich gefunden habe
Es gibt auch schicke andere Projekte aber die Nextion teile mit der Darstellung und der Optik gefallen mir am besten.
Ich bin gerade dabei mit einem Arbeitskollegen zu schauen ob ich da schicke Rahmen herstellen kann, sobald sich da was sehenswertes ergibt sage ich Bescheid, für die 3,5" Modelle gibt es schon eine Vorlage für den 3D Druck.

Da wird bestimmt noch was kommen, bin leider nicht der erfahrenste Programmierer, hab schon Probleme damit die hexdaten die in der Debug Ausgabe kommen irgendwie einzuordnen, die touchevents kommen auf jeden Fall schonmal an :slight_smile:

Grüße Marc

Hallo Marc,

hier mal ein Beispiel:

I2GDSP_Update(15863,  "/tmp/Test.tft");

…müsste also eine Datei mit der Endung tft sein! Wurrde irgendwie aus dem Display-Editor generiert.
Wenn Du da einen schönen Gehäuse dran bist - gerne auch mal posten!:smiley:

Joachim

Hallo Joachim,

hier schon wieder ich, also irgendwie klappt es leider nicht.
Ich bekomme Daten wenn ich auf einen Button klicke und kann die Helligkeit über die Instanz einstellen.

Aber wenn ich das über das script oder Befehl testen mache klappt es nicht auch beim update will er nicht wirklich :confused:

Ich weiß nicht ob das auch ein Problem ist, wenn ich Befehl testen aufrufe und den Pfad eingebe werden im Code zwei \ eingefügt aber auch über script mit einem \ läuft es nicht. (Siehe Anhang)

Vllt hast du ja noch eine Idee? :confused:

Grüße Marc

…zunächst einmal meine ich das die Datei die Endung tft haben muss, zum anderen habe ich es selbst nie aus diesem Tool probiert (war eher dahingehend gemeint, dass Du die Funktionen sehen kannst…[emoji6])

Joachim

Hallo Marc,

hier mal wie die tft erzeugt wird:

Alternativ zur Übertragung per serieller Schnittstelle können Sie das Nextion-Display auch mit einer SD-Karte konfigurieren. Dazu gehen Sie wie oben beschrieben vor und wählen dann anstelle von Upload den Befehl "Compile". Es wird eine Datei mit der Endung ".tft" erzeugt. Dabei handelt es sich um ein ladbares Binärfile. Wo der Nextion-Editor diese Datei abspeichert enthüllt ein Klick auf den Button "Open Build Folder", den Sie im File-Menü finden. Diese Datei speichern Sie auf eine in FAT32 formatierte SD-Karte und diese Karte stecken Sie anschließend in den Kartenslot auf der Rückseite des Displays. Ein Boot-Loader lädt sie dann beim Neustart in den Programmspeicher der Anzeige.

Jedoch musst Du den Pfad zur Datei in die Upload Funktion eintragen (anstatt es auf die SD-Karte zu kopieren)…

Versuche das mal bitte…

Joachim

Für die 3,5" Displays gibt es Rahmen, Netzteil, entworfen für Tablett Ladeteile 5Volt bis 5A für Tablet Rahmen unterschiedlichster Marken, könnte man auch verwenden.
Nur, allein die Zeit, bei Interesse PN an mich, bitte nur PN oder Mail
Gruß Helmut

Hallo Joachim

erstmal vielen Dank für das Modul und die investierte Zeit. Ist genau was ich suche . Ich versuche im Moment ebenfalls ein Nextion Enhanced Display zum laufen zu bekommen. Sieht bei mir genau so aus wie bei @Maccy . Ich kann die Helligkeit i n der Instanz verändern. Das ist es aber schon gewesen. Ich bin leider nicht so der Linuxversteher und tue mich mit dem Raspi oftmals etwas schwerer. Aber der Wille ist da ;).
Mich würde vor allem Interessieren wie ich Daten an das Display senden kann , um z.B. einer Progressbar einen neuen Wert zuzuweisen.
Ich habe es auf diese Weise versucht, klappt aber nicht.


I2GDSP_Send(55416 /*[IPS2GPIO_Display]*/, "temp.val = 90");

Glaube aber das ich noch ein grundlegendes Kommunikationsproblem habe. Meine Einstellungen siehe Angang.
Mit der Baudrate habe ich auch schon gespielt --9600 ohne Änderung des Verhaltens.
Wie gesagt über die Instanz kann ich sie Helligkeit und auch die Standbyzeit etc. verändern.

Ich verwende einen Raspi2 auf dem auch IPS läuft.

Was die Einbaurahmen angeht, könnte ich gerne meine Dienste im 3D- Druck anbieten. Evtl. kann ich auch etwas entwerfen. --> bitte dann um Vorschläge wie der Rahmen aussehen soll. :wink:

Danke schonmal

Oliver

…lasse es bitte erst einmal auf 9600 Baud und versuche es mal ohne die Leerzeichen im Befehl.
Bin noch unterwegs, melde mich später…

Hallo Oliver,

das mit der Baud-Rate ist sehr verzwickt - oder kann es zumindest aus meiner Sicht werden. Daher habe ich erst einmal die Finger davon gelassen, da könnte man sich aber mal ransetzen.
Wenn Du Dein Display anders eingestellt hast, musst Du selbstvertändlich die Baud-Rate nutzen…

Versuche den Befehl mal so:

I2GDSP_Send(55416 /*[IPS2GPIO_Display]*/, "temp.val=90"); 

Das mit dem Rahmen ist ein tolles Angebot. Selbst habe ich keine Möglichkeit da etwas zu gestalten, weder kenne ich mich mit der entsprechenden Software aus, noch habe ich einen 3d-Drucker…

Joachim

Hallo Joachim

Habe die Baudrate jetzt auf 9600 gestellt. Wenn ich dann


I2GDSP_Send(55416 /*[IPS2GPIO_Display]*/, "temp.val=90");  

sende , steht im Log


IPS2GPIO Serial Write*| Fehlermeldung: PI_SER_WRITE_FAILED

ich glaube das mit dem PIGPIO irgendwas nicht Ok ist. Ich erhalte die Fehlermeldung:


systemctl status pigpiod.service
● pigpiod.service - Daemon required to control GPIO pins via pigpio
   Loaded: loaded (/lib/systemd/system/pigpiod.service; disabled)
  Drop-In: /etc/systemd/system/pigpiod.service.d
           └─public.conf


Die Installation hatte ich nach der Anleitung gemacht.

Brauche da mal einen Tipp, wie schon gesagt, habe ich von Linux (noch) recht wenig Ahnung.

Danke

Oliver

Wegen den Einbaurahmen brauche ich mal die Info welches Display 3,5" etc. Du wie einbauen möchtest. Also in die Wand oder in ein Gehäuse… Dann kann ich mal was entwerfen. Kannst auch mal auf http://www.thingiverse.com/ schauen, da gibt es schon ein paar Rahmen.