Hallo,
vielleicht etwas von dem?
micropython – access and control MicroPython internals — MicroPython latest documentation
Grüße
Dennis
Hallo,
vielleicht etwas von dem?
micropython – access and control MicroPython internals — MicroPython latest documentation
Grüße
Dennis
Hallo,
wie sieht denn das Skript aus, dass die Daten sendet?
An sich kann man das bei dir ja mal so nachstellen:
import sys
def main():
lines = sys.stdin.readline(32).strip().upper()
print(lines, end="#\n")
if __name__ == '__main__':
main()
Dann:
(.venv) [dennis@dennis Forum]$ echo "bla" | python blabla.py
BLA#
(.venv) [dennis@dennis Forum]$ echo "bla bla" | python blabla.py
BLA BLA#
Grüße
Dennis
Hallo,
bitte beschreiben, wie du die Umgebung erstellt hast, wie und was du darin installiert hast.
Dann wie wurde der Code ausgeführt, wie sieht er aus und die vollständige Fehlermeldung.
Alles ist besser, als dein „Lösung“. Aber detaillierter kann man das so nicht beschreiben.
Entwicklungsumgebung anlegen, Umgebung aktivieren und mit `pip` die Packete installieren und dann das Skript ausführen, ist es im groben.
Grüße
Dennis
RPi4:
dennis@test:~ $ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
dennis@test:~ $ uname -a
Linux test 6.6.31+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64 GNU/Linux
dennis@test:~ $ apt search aide | less
aide/stable 0.18.3-1+deb12u3 arm64
Advanced Intrusion Detection Environment - dynamic binary
aide-common/stable,stable 0.18.3-1+deb12u3 all
Advanced Intrusion Detection Environment - Common files
aide-dynamic/stable,stable 0.18.3-1+deb12u3 all
Advanced Intrusion Detection Environment - transitional package
Display More
Grüße
Dennis
Wie gesagt, wenn du über den Code sprechen willst, bitte dein vollständigen Code posten, damit man die Zusammenhänge sieht. Dafür hier im Editor oben in der Leiste den Button drücken, der mit "Code-Block einfügen" beschriftet, und den Code darin dann einfügen.
Für seinen Zweck könnte er wirklich auf GPIO-Flankentrigger gehen. Da hab ich gerade kein Beispielcode "rumliegen".
Einen getesteten Code habe ich auch nicht, aber gerade mal ein Konzept geschrieben:
#!/usr/bin/env python
from time import sleep
from attrs import define, field
from gpiozero import DigitalInputDevice
ELECTRIC_METER_PIN = 99
#
# in seconds
BOUNCE_TIME = 0.05
IMPULSE_PER_KWH = 400
@define
class ElectricMeter:
impulse = field(factory=int, init=False)
def add_impulse(self):
self.impulse += 1
@property
def get_kwh(self):
return self.impulse / IMPULSE_PER_KWH
def main():
counter = DigitalInputDevice(ELECTRIC_METER_PIN, bounce_time=BOUNCE_TIME)
electric_meter = ElectricMeter()
counter.when_activated = electric_meter.add_impulse
while True:
print(f"Aktuelle Impulsanzahl: {electric_meter.impulse}")
print(f"Aktueller Verbrauch: {electric_meter.get_kwh} kWh")
sleep(1)
if __name__ == "__main__":
main()
Display More
Grüße
Dennis
Hallo,
sinnvoll ist es immer, wenn du bei den Fragen deinen Code, in Code-Tags, zeigst.
Um Zeiten zu messen nimmt man `time.monotonic()`.
Sek = Sek + 1 ist, ohne den Kontext zu kennen, bestimmt nicht der richtige Weg.
Grüße
Dennis
Wie kann ich feststellen ob RPi.GPIO im venv installiert wurde?
Wenn die venv aktiv ist:
pip list
Wenn es fehlt pip install rpi.gpio
Grüße
Dennis
Edit: Auf einem RPi4 mit aktuellem OS-lite:
(.venv) dennis@test:~ $ pip install rpi.gpio
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting rpi.gpio
Using cached RPi.GPIO-0.7.1.tar.gz (29 kB)
Preparing metadata (setup.py) ... done
Installing collected packages: rpi.gpio
DEPRECATION: rpi.gpio is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559
Running setup.py install for rpi.gpio ... done
Successfully installed rpi.gpio-0.7.1
(.venv) dennis@test:~ $ pip list
Package Version
---------- -------
pip 23.0.1
RPi.GPIO 0.7.1
setuptools 66.1.1
(.venv) dennis@test:~ $ python
Python 3.11.2 (main, May 2 2024, 11:59:08) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from RPi import GPIO
>>> GPIO.VERSION
'0.7.1'
>>> quit()
(.venv) dennis@test:~ $
Display More
Hallo,
mein Stand ist, das `RPi.GPIO` noch nicht für den Pi5 funktioniert. `MFRC522.py` von dem `SimpleMFRC522()` erbt, basiert aber auf `RPi.GPIO`. Das heißt du musst dir eine andere Bibliothek suchen oder jemand sollte die mal auf `gpiozero` umschreiben.
Ich habe damit tatsächlich mal angefangen, da ich aber keinen Pi5 habe, konnte ich das nie testen und ich weis ehrlich gesagt gar nicht, ob ich somit durch war, da man es mal testen könnte, aber wenn du willst:
Für die Installation erstelle bitte eine eigene Entwicklungsumgebung, habe ich hier beschrieben.
Grüße
Dennis
Interessehalber, hast du `RPi.GPIO` manuell installiert? Wenn ja, wie bzw. welche Version?
Öffne mal ein Terminal und gebe folgendes nacheinander ein und zeig mal die Ausgabe:
Da es im Allgemeinen für die Fehlersuche wichtig ist, betone ich es auch noch mal, bitte immer einen vollständigen ausführbaren Code, der den Fehler produziert, hier als Codeblock posten und die vollständige Fehlermeldung.
Grüße
Dennis
Hallo,
hast du das von einem .*deb Package installiert oder vom APT-Repository direkt?
Falls ersteres, dann musst du erst das aktuellste Package wieder herunterladen.
Grüße
Dennis
Edit: Schau hier:
Hallo,
kannst du nich in einem Thread die BT-Verbindungen überwachen, wenn eine aufgebaut wurde, setzt du eine Flag und diese wird im Steuerungsablauf abgefragt und entsprechend gehandelt.(?)
Grüße
Dennis
Hallo,
hm ja der 2. HS beschreibt irreversible Prozesse, passt schon. Habe gerade noch kurz geschaut, ob das irgendwo detaillierter beschrieben wird. Also nach dem Grund für das Abfließen der Elektronen und bin dabei noch auf die thermionische Emission gestoßen.
Damit hab ich Anhaltspunkte und kann bei Bedarf noch etwas weiter lesen.
Danke und Grüße
Dennis
Ich habe ein klein wenig gesucht und was zum Thema gefunden: https://www.elektronikpraxis.de/nand-statt-nor…0784b1bb718a79/
Habe es noch nicht gelesen, nur mal quer drüber. Aber das ruft die richtigen Synapsen wieder zusammen. NAND, Entropie, Datenverlust (hihi, welch BILD-Assoziation)
Ich habe das auch mal überflogen, weil ich mir nicht erklären konnte wie bei dem Thema die Entropie mit ins Spiel kommt? Dazu habe ich aber nichts gefunden.
Meinst du damit die physikalische Zustandsgröße und gibt es tatsächlich eine Betrachtung des Themas, das soweit herunter gebrochen wurde?
Grüße
Dennis
Hallo,
die Fehlermeldung sagt, dass etwas mit deiner Anmeldung nicht stimmt. Wenn du dir mit Benutzernamen und Passwort 100% sicher bist, dann könntest du mal in die GMX-Maileinstellungen schauen. Ich habe das Konto schon sehr lange, kann dir ehrlich gesagt nicht mehr sagen, ob ich da noch was einstellen musste. Habe aber irgendwas im Hinterkopf.
Grüße
Dennis
Nachtrag, mit folgendem Code komme ich an der Zeile vorbei, an dem dein Code rausfliegt (falls du auch zufällig gmx nutzt):
import umail
HOST = "mail.gmx.net"
USER_NAME = "dennis.89@gmx.de"
PASSWORD = "YYY"
TO_MAIL = "xyz.abc@web.de"
PORT = 465
def main():
smtp = umail.SMTP(HOST, PORT, username=USER_NAME, password=PASSWORD)
smtp.to(TO_MAIL, mail_from=USER_NAME)
smtp.write(f"From: Dennis <{USER_NAME}>\n")
smtp.write(f"To: MaxMustermann <{TO_MAIL}>\n")
smtp.write("Subject: Blablabla\n\n")
smtp.write("Wer rastet\n")
smtp.write("der rostet.\n")
smtp.send()
smtp.quit()
print("Fertig")
if __name__ == "__main__":
main()
Display More
Probleme hatte ich beim versenden trotzdem, da `EHLO` vor dem Login und dann nochmal in der `login` Funktion gesendet wird. Die erste Anfrage nahm mein Provider an, die zweite aber nicht mehr. Ich habe dann zum testen Zeile 41 und 42 raus genommen und die Anfrage dann nur einmal vor dem Login gesendet.
Grüße
Dennis
Was ist das für ein E-Mail Provider? Bist du mal dort die Einstellungen durchgegangen?
Was ist mit ESMTP?
Kommt die Meldung auch mit Port 587 und `ssl=False`?
Hier steht der Statuscode "220" bedeutet, das alles bereit für eine TLS Übertragung ist, für TLS ist Port 587 zuständig.
Grüße
Dennis
An den Server wird eine `EHLO` - Anmeldung geschickt und dieser sollte die mit einem Antwortcode von "250" bestätigen. In deinem Fall antwortet er aber mit "220".
Unterstützt dein E-Mail Server ESMTP? Kannst du das rausfinden?
Was passiert wenn du den Port 587 nimmst und `ssl=True` setzt?
Also smtp = umail.SMTP(smtpHost, 587, ssl=True)
Grüße
Dennis
Hallo,
bei diesen Problemen bitte immer den Code, in Code-Tags, mit der vollständigen Fehlermeldung posten. Nicht vergessen das E-Mail-Passwort vor dem posten zu entfernen.
Grüße
Dennis
Nein, ich meinte die Erzeugung des Signales an sich. Wenn du aber der Meinung bist, dass du ein sauberes Signal bekommst, dann ist das vermutlich nicht zielführend.
Unabhängig von den anderen Servos und deinem Projekt, würde ich alles vom Pi entfernen, einen Servo direkt anschließen und schauen ob ich den mit eigens dafür geschriebenen Code ordentlich zum laufen bekomme. Und da wir ja keinen Hardwaredefekt vermuten, muss das auch möglich sein. Du darfst den Code, genauso wie den Schaltplan, hier gerne zeigen. Vielleicht fällt jemanden etwas auf. Erst wenn das klappt, würde ich das in kleinen Schritten wieder erweitern, dann erkennt man auch mögliche Fehlerquellen.
Grüße
Dennis
Hallo,
ein Datenblatt konnte ich auch nicht finden. Ändert sich den etwas an der Genauigkeit, wenn du die Potis verstellst? Kannst du messen ob das PWM-Signal so ankommt, wie du es erwartest?
Wie wird das Signal den erzeugt? Eventuell kann man was am Code anpassen.
Grüße
Dennis