Hallo alle,

tolle Internetseite (www.tutorials-raspberrypi.de), leider alles keine
Freie Software. Oder habe ich die Lizenzerklärung übersehen?

Ich habe nur im Impressum gefunden: "Downloads und Kopien dieser Seite
sind nur für den privaten, nicht kommerziellen Gebrauch gestattet."

Also non-free.

Schade.


VG,

Erik


Am 09.01.22 um 08:39 schrieb Josef Müller:
Bei mir läuft unter Deb 11 folgende Lösung als init-Script:
(/usr/local/sbin/lueftersteuerung.py)
-------------------------------------------------------------------------------------

#!/usr/bin/python3
#-------------------------------------------------------------------------------

# Name:         lueftersteuerung.py
# Purpose:      Anschluss eines Kuehlkoerpers und Temperatur Sensor
# GPIO-Library: RPi.GPIO 0.5.4
#
# Author:       Felix Stern
# Website:      www.tutorials-raspberrypi.de
#
# Created:      04.04.2014
#-------------------------------------------------------------------------------

#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
import os
from sys import *
from string import *

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

if len(argv) < 5:
    print("zu wenig Argumente beim Aufruf", file=sys.stderr)
    exit(4)

PPIDFILE = argv[1]              # Prozessnummer
IMPULS_PIN = int(argv[2])       # GPIO Pin, der zum Transistor fuehrt
MAX_CPU_TEMP = int(argv[3])     # Ab welcher CPU Temperatur der
Luefter einschaltet
MIN_CPU_TEMP = int(argv[4])     # Ab welcher CPU Temperatur der Lüfter
ausschaltet
SLEEP_TIME = int(argv[5])       # Alle wie viel Sekunden die
Temperatur ueberprueft wird

# Prozessnummer in PPID-File schreiben
ppidfile = open(PPIDFILE, 'w')
pid = os.getpid()
print(pid, file=ppidfile)
ppidfile.close()

def get_cpu_temperature():
    temp = open('/sys/class/thermal/thermal_zone0/temp').readline()
    temp1 = int((int(temp) + 500) / 1000)   # runden
    return temp1
def main():

        #Init
        GPIO.setup(IMPULS_PIN, GPIO.OUT)
        GPIO.output(IMPULS_PIN, False)

        while True:
                cpu_temp = get_cpu_temperature()
                if cpu_temp >= MAX_CPU_TEMP:
                        GPIO.output(IMPULS_PIN, True)
                        # print("Lüfter ein")
                if cpu_temp <= MIN_CPU_TEMP:
                        GPIO.output(IMPULS_PIN, False)
                        # print("Lüfter aus")

                # print("gemessene CPU Temperatur:" + str(cpu_temp))

                time.sleep(SLEEP_TIME)


if __name__ == '__main__':
    main()
--------------------------------------
mit env-Script: (/etc/default/lueftersteuerung)

# CONFIGURATION FILE FOR lueftersteuerung

GPIOPIN=26      # GPIO Pin für Lüftersteuerung
MAXTEMP=40      # Temperatur in Grad Celsius, bei dessen
Überschreitung der Lüfter zugeschaltet wird
MINTEMP=35      # Temperatur in Grad Celsius, bei dessen
Unterschreitung der Lüfter ausgeschaltet wird
DELAY=30        # Wartezeit zwischen den Messungen in Sekunden
---------------------------------------------------------------------------------------

und es funktioniert. Am besten, mal ähnlich probieren.
Tschüs
Josef Müller


Am 09.01.22 um 00:00 schrieb Daniel Leidert:
Am Samstag, dem 08.01.2022 um 17:05 +0100 schrieb Uwe Koloska:
Am 08.01.22 um 15:57 schrieb Daniel Leidert:
ich habe Probleme mit einem externen Projekt. In diesem wird ein
Raspberry
Compute Module 4 als Basis benutzt. Darauf läuft momentan ein Debian
Bullseye
(https://raspi.debian.net/), sowie ein Python-Server. Der
Python-Server
versucht mittels des RPi.GPIO Python Moduls (0.7.1a4) einige
GPIO-Pins zu
schalten und der Entwickler behauptet, das würde mit Bullseye nicht
funktionieren (siehe Betreff). Da aber das Raspberry Pi OS ja
selbst auf
Bullseye aufsetzt und die Angaben des Entwicklers sehr schwammig sind,
Leider sind deine Informationen auch nicht weniger schwammig,
Aus diesem Grunde suche ich jemanden, der mir hilft, das Problem
auseinanderzuklamüsern. Und ich möchte ungern die Kommunikation hier
breittreten, oder versuchen, etwas zu paraphrasieren, was ich selbst für
ungenau halte.

so dass
ich mit meine Glaskugel und ein bißchen Suchmagie bemühen musste, aber
diesen Hinweis gefunden habe:
https://raspberrypi.stackexchange.com/questions/135163/error-installing-rpi-gpio-in-virtual-environment

Da Bullseye per Default mit python 3.9 kommt, würde das genau den
beobachteten Fehler erklären und hat nix mit Debian vs. Raspberry Pi OS
zu tun.
Nein, das ist nicht das Problem. Wie ich schon schrieb, wird die Version
0.7.1a4 genutzt, in der man alle bekannten Bauprobleme des letzten
stabilen
Releases behoben hat. Der Link verweist i.Ü. auf das Bauproblem mit
GCC 10
(Ticket 187 im Upstream-Ticker). Die 0.7.0 konnte man nur mit
CFLAGS=-fcommon
bauen, ansonsten bekamn man genau die Fehlermeldung, die der Nutzer
beschreibt.
Das hatte aber mit der Python-Version nichts zu tun.

Die Module sind alle installiert. Da gab es keine Probleme.

Laut Entwickler wirft aber

import RPi.GPIO as GP; GP.setup(18, GP.OUT)

den Fehler "map error for gpio" aus. Und dazu finde ich gar nichts.
Ich hatte
auch noch keine Zeit, das selbst zu probieren (wird heute oder morgen).

Seine Behauptungen zu den Gründen müsste ich dir zeigen, aber die
machen für
mich keinen Sinn, zumal sowohl Raspberry Pi OS unter Buster als auch
Bullseye
auf die Kernelreihe 5.10 setzen, die hier auch vom Debian Raspbi-Projekt
genutzt wird.

Evtl. ist auch [1] das Problem (vielleicht trat das Problem ja schon
eher, in
der 5.10er Reihe auf), aber ich weiß es halt nicht so recht.

[1] https://ubuntu.com/tutorials/gpio-on-raspberry-pi

würde
ich das gerne mal mit jemandem gemeinsam anschauen, der sich damit
auskennt.
Die Zeit kann ich dem Projekt in Rechnung stellen, so dass sie auch
vergütet
wird.
Wenn du mehr Informationen brauchst, schreib mich gerne an.
Liebend gerne würde ich das mal persönlich oder via Video-Chat
besprechen. Da
kann ich das Setup, die Kommunikation und den Quellcode zeigen, der
wirklich
übersichtlich ist.


Gruß, Daniel





Antwort per Email an