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-...
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