Showing Posts From

Python

Python 3.8.4 (3.9) und Pip auf dem Raspberry Pi installieren

Inhalt Möchtest du eine neuere Version von Python installieren, als die Version von Raspbian OS? Dann folge dieser Anleitung. Python 3 kompilieren und installieren Möchtest du Python 3.9 anstatt 3.8.4 installieren, dann musst du in allen Schritten Python-3.8.4 mit Python-3.9.0b4 ersetzen. Eine Liste der aktuellen Versionen findest du auf der offiziellen Python Seite.Paket Liste neu laden und Pakete aktualisieren sudo apt update && sudo apt upgradeBenötigte Pakete installieren sudo apt install libffi-dev libbz2-dev liblzma-dev libsqlite3-dev libncurses5-dev libgdbm-dev zlib1g-dev libreadline-dev libssl-dev tk-dev build-essential libncursesw5-dev libc6-dev openssl gitAktuelle Python Version herunter laden wget https://www.python.org/ftp/python/3.8.4/Python-3.8.4.tar.xzEntpacke die heruntergeladene Datei tar xf Python-3.8.4.tar.xzNavigiere in den entpackten Ordner cd Python-3.8.4Konfiguration vorbereiten (ca. 12min RPI B+) ./configureInstallations Datei erstellen (ca. 2-3Std RPI B+) make -j -l 4 Mit dem Parameter -j und -l legst du fest wieviel Aufgaben gleichzeitig ausgeführt werden. Damit überforderst du Pi nicht und entstehen keine FehlerPython installieren (ca. 15min RPI B+) sudo make altinstallUm nicht immer python3.8 eingeben zu müßen, kannst du einen Alias hinzufügen. Damit kannst du python3 eingeben und das System benutzt python3.8 echo "alias python3=python3.8" >> ~/.bashrc Möchtest du Python3 als Standard Version verwenden kannst du folgenden Alias erstellen. echo "alias python=python3.8" >> ~/.bashrc Oder diesen Alias für Python 3.9 echo "alias python3=python3.9" >> ~/.bashrcDu kannst Pip mit pip3.8 aufrufen. Durch den folgenden Befehl kannst du Pip mit pip3 aufrufen. echo "alias pip3=pip3.8" >> ~/.bashrcLade die neuen Einstellung, damit sie wirksam werden. source ~/.bashrcPython und Pip Version prüfen Python ist installiert und du kannst die aktuelle Version mit folgendem Befehl prüfen. python3 -Vpip3 -VAlternative: Pip3 installieren Falls Pip nicht mit Python installiert wurde, kannst du Pip mit folgenden Schritten installieren. Mit pip lassen sich Python Module einfach installieren und entfernen.Lade das pip Installations-Script wget https://bootstrap.pypa.io/get-pip.pyPip SSL Fehler Warum ich Python auf dem Raspberry Pi kompiliere, bzw eine neuere Version von Python und Pip installieren will? Wenn ich Pip normal über apt oder apt-get installiere (sudo apt install python3-pip) und ein Modul installieren möchte, erhalte ich folgenden Fehler. Leider behebt die neuere Version bzw. die kompilierte Version nicht das Problem. Falls du eine Lösung hast, schreib sie bitte in die Kommentare.pi@raspberrypi:~ $ pip3 install pySerial Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Collecting pySerial Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /simple/pyserial/ Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /simple/pyserial/ Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /simple/pyserial/ Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /simple/pyserial/ Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /simple/pyserial/ Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)')))Du kannst den Fehler mit dem --trusted-host Parameter umgehen.pip3 install pySerial --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.orgDas ist aber keine dauerhafte Lösung und nicht sicher. Lösung für Fehlermeldung "make: Warning: File 'Makefile.pre.in' has modification time" Wenn ich den Befehl ./configure in Schritte 6 ausgeführt habe, wurde mir folgende Fehlermeldung angezeigt.make: Warning: File 'Makefile.pre.in' has modification time 4061284 s in the future /bin/sh ./configureDieser Befehl hat noch "funktioniert", aber der nächste Befehlt make -j -l 4 lief dann in einer Endlosschleife und wurde nicht beendet. Mit diesen Schritten habe ich das Problem lösen können find /your/dir -type f -exec touch {} + make clean && make sudo make altinstallFolge jetzt ab Schritt 9 weiter der Anleitung. Die Lösung habe ich von hier.

Waveshare e-Paper python Demo-Code auf dem Raspberry Pi 3 installieren - raspbian eink

Waveshare e-Paper python Demo-Code auf dem Raspberry Pi 3 installieren - raspbian eink

Im der vorherigen Anleitung, wurde beschrieben wie man das e-Paper Display von Waveshare am Raspberry Pi anschließt. In dieser Anleitung wird erklärt, wie du das Waveshare e-Paper Display mit dem Python Demo-Programm von Waveshare testen kannst. Inhalt Benötigte TeileRaspberry Pi 3 oder Raspberry Pi Zero Amazon, buyzero.de* (hier bekommt ihr den RPI Zero zu einem günstigen Preis von einem offiziellen deutschen Distributor.) Waveshare e-Paper Display Amazon, AliexpressWaveshare Demo Code zum Testen des Display's installieren (Python) Um das Display zu testen, stellt Waveshare auf ihrer Wiki Seite ein Paket mit Demo Programmen zur verfügung.Aktualisiere zuerst die Raspbian Paketlisten. sudo apt-get updateInstallier die benötigten python Programme. sudo apt-get install -y python-dev python-smbus python-rpi.gpio python-serial python-spidev python-imaging fonts-freefont-ttfDer Raspberry Pi kommuniziert mit dem Display über SPI. Aktivieren kannst du SPI Schnittstelle am Raspberry Pi, indem du folgenden Befehl ausführst, … sudo raspi-config und im Menü unter Interfacing Options -> SPI -> Yes Start den Raspberry Pi danach neu. sudo rebootDie Demo-Programm sind als 7Zip Archiv komprimiert. Deshalb musst du noch das Programm 7Zip installieren, um das Archiv entpacken zu können. sudo apt-get install -y p7zip-full Je nachdem welches Display du hast, musst du eine andere Datei herunterladen. Gehe dazu auf die Waveshare Wiki Seiten und scroll nach unten bis du zur Auflistung der e-Paper Display's kommst. Klicke dann auf den Link deines Displays und scrolle bis fast zum Ende der Seite. Klick auf den Link Demo Code. Auf der nächsten Seite kopierst du den Link zum 7zip Archiv. Lade das Archiv mit folgendem Befehl herunter und speichere es unter dem Namen demoCode.7zip ab. wget https://www.waveshare.com/w...... -O demoCode.7zip # Beispiel für das 3 Color 7.5 inch Display wget https://www.waveshare.com/w/upload/0/01/7.5inch_e-paper_hat_b_code.7z -O demoCode.7zipEntpacke den Inhalt des Archiv's mit folgendem Befehl. 7z x demoCode.7zip und navigiere in den neuen Ordner zum python Beispiel. # 7.5inch Display Beispiel cd 7.5inch_e-paper_hat_b_code/raspberrypi/pythonJetzt kannst du das Demo-Programm starten und das Display sollte flackern und das Bild aktualisieren. python main.pyDie Demo Programme von Waveshare verwenden Python 2. Wenn andere Programme Python 3 verwenden musst du das Script mit … python3 meinPython3Script.pystarten. Wichtig ist auch das du dann die Python 3 Hilfsprogramme in Schritt II installierst. sudo apt-get install -y python3-dev python3-smbus python3-rpi.gpio python3-serial python3-spidev python3-imaging

MotionEyeOs: Benachrichtigung bei Bewegungserkennung via Slack - motion push notification

MotionEyeOs: Benachrichtigung bei Bewegungserkennung via Slack - motion push notification

Du möchtest benachrichtigt werden wenn deine MotionEyeOs Überwachungskamera eine Bewegung erkennt. MotionEye hat mehrere Funktionen das Umzusetzen. Wenn MotionEye eine Bewegung erkennt, kannst du eine E-Mail versenden, ein Webhook aufrufen, oder ein Script starten. Letzteres verwenden wir um eine Nachricht an deinen Slack Account zu senden. Slack ist kostenlos für Mac OSX, Windows, iOS und Android verfügbar. Du kannst Push Nachrichten auf dein iPhone oder Android Smartphone erhalten. Voraussetzung ist ein laufendes MotionEye. Anleitung MotionEyeOS auf dem Raspberry Pi installieren. Inhalt Slack einrichtenDu benötigst einen kostenlosen Slack Account. Diesen kannst du hier erstellen.Ein Webhook wird benötigt, um Nachrichten (per Script) an deinen Slack Channel zu senden. Öffne die Seite https://my.slack.com/services/new/incoming-webhook/. Erstelle einen neuen Channel nur für MotionEye. Klick auf "create a new channel".Markiere den neuen Channel als "Private", damit nur du und eingeladene Benutzer den Inhalt des Channels sehen können. Gib dem Channel einen eindeutigen Namen, wie "MotionEye" und klick auf "Create Channel". Jetzt müßtest du wieder auf der vorherigen Seite sein. Klick dort auf den Button "Add Incoming WebHooks integration".Der Webhook für deinen neuen Channel wurde erstellt. Diesen benötigst du später für dein Slack-Benachrichtigungs Script. Lass die Seite offen, oder speichere dir die URL ab.MotionEyeOs Slack Notification Script erstellen MotionEyeOs ist eine sehr reduzierte Linux Version. Man kann nicht wie bei Raspbian Pakete mit apt-get installieren und manche Befehle wie git clone funktionieren auch nicht. Den Befehl sudo benötigt man nicht, da du dich als root anmeldest. Das Script muss im Ordner data gespeichert werden.Melde dich per SSH bei deinem Raspberry Pi mit MotionEyeOs an. Ersetze die IP, mit der deines Raspberry Pi. ssh admin@192.168.0.10 Das Passwort ist das selbe wie bei deinem MotionEye Admin Benutzer.Erstelle die Script Datei mit dem Namen slack.py im Ordner data und öffne den Nano Texteditor. nano /data/slack.pyDer Github-Nutzer raspberrycoulis hat das MotionEyeOs Slack Script erstellt. Kopiere das folgende Script in den Nano Texteditor (Copy Button rechts oben im schwarzen Code-Bereich).#!/usr/bin/python# Created by Wesley Archer at Raspberry Coulis # # Website: https://www.raspberrycoulis.co.uk | Twitter: @raspberrycoulis # # # # 1. Intro: # # # # This Python script sends notifications to a dedicated Slack channel whenever movement is # # detected in MotionEye OS. # # # # You will need to create a free Slack account over at https://slack.com/ and create an incoming # # webhook by visiting https://my.slack.com/services/new/incoming-webhook/. I recommend creating # # a dedicated Slack channel (i.e. #motioneyeos), but you can also add a custom icon and name # # to make it look the part too! # # # # 2. Customising your Slack notification: # # # # You can customise the message sent to Slack by editing the data string below. # # # # The string must be within curly brackets and start with {"text": }. Links can be included # # between <> - i.e. and text can be displayed using | so this # # would be a link to Raspberry Coulis! # # # # To emphasise text, place words you want in bold between two asterix - i.e. *this is bold!* # # # # Split text onto a new line with "\n" (without the quotation marks) so "Hello\nWorld!" becomes # # # # Hello # # World! # # # # Remember to enclose your custom text message within quotation marks though! # # # # 3. This is my example: # # # # '{"text": "Motion Detected!\nView the *<http://IP.ADD.RE.SS|live stream>* now!"}' #import urllib2url = 'INSERT-SLACK-INCOMING-WEBHOOK-URL-HERE' # Add your Slack incoming Webhook URL here (starts https://hooks.slack.com) data = '{"text": "Motion Detected!\nView the *<http://IP.ADD.RE.SS|live stream>* now! :video_camera:"}' # See above to customise message.req = urllib2.Request(url, data, {'Content-Type': 'application/json'}) f = urllib2.urlopen(req) f.close()Du musst das Script noch anpassen. Ersetze "INSERT-SLACK-INCOMING-WEBHOOK-URL-HERE" im Script mit der URL deines Slack Webhook. Die Nachricht kannst du anpassen wenn du diesen Text veränderst. "Motion Detected!\nView the *<http://IP.ADD.RE.SS|live stream>* now!" Das Zeichen \n bedeutet ein Zeilenumbruch. Links kannst du wie folgt formatieren, um sie in deiner Slack Nachricht anzuzeigen. <Linkadresse|Linktext> Emoji kannst du auch einfügen. Hier eine Übersicht aller verfügbaren Emoji. Verwende den "Short Name" Code. Beende den Nano Texteditor mit Ctrl+X und Bestätige die Änderung mit Y.Das Script muss noch ausführbar gemacht werden. chmod +x /data/slack.pyJetzt kannst du das Script testen. python /data/slack.py Du solltest eine Push Notification auf dein Smartphone erhalten. Wenn du mit dem Browser in der Slack App angemeldet bist, erhältst du nur dort eine Benachrichtigung.Script in MotionEye Einstellung hinterlegenÖffne die MotionEye Weboberfläche und klick links oben auf das Menu-IconAktiviere die Bewegungserkennung im Menüpunkt "Motion Detection".Im Menüpunkt "Motion Notification" aktiviere "Run A Command". Im Feld "Command" trägst du den Befehl zum starten des Slack Notification Scipt ein. python /data/slack.py Die Änderungen speicherst du mit einem klick oben auf den orangenem Button "Apply".Wenn MotionEye eine Bewegung erkennt, solltest du eine Push Notification auf deinem iPhone/Android Smartphone empfangen. Vorausgesetzt du hast die Slack App installiert und bist dort angemeldet. ;)

PiTFT Hintergrundbeleuchtung per Software/Taster ein und ausschalten

Voraussetzung:installiertes PiTFT Capacitive Version ( Link zur Anleitung) Taster am PiTFTAuf der Rückseite des PiTFT müsst ihr die zwei Kontakte mit einem Lötpunkt verbinden.Erstellt eine Python Datei für den Code und öffnet diese im Nano Texteditor. nano pitft.pyfüge den Code ein#!/usr/bin/python import RPi.GPIO as GPIO import timeGPIO.setmode(GPIO.BCM) # deaktiviert die Warnung das GPIO18 schon verwendet wird GPIO.setwarnings(False)# legt Taster 2 als Eingabe fest GPIO.setup(22, GPIO.IN, pull_up_down=GPIO.PUD_UP)GPIO.setup(18, GPIO.OUT)oldButtonState = True backlight = 1while True: buttonState = GPIO.input(22) # blockt mehrfaches Ausloesen des Tasters   if buttonState != oldButtonState and buttonState == False : if backlight : # Hintergrundbeleuchtung AUS GPIO.output(18, 0) backlight = 0 else : # Hintergrundbeleuchtung AN GPIO.output(18, 1) backlight = 1 oldButtonState = buttonState # pausiert das Programm fuer 200 Millisekunden time.sleep(.2)Schliesst den Nano Texteditor mit ctrl+x auf dem Mac. Danach bestätigt ihr die Veränderung zu speichern mit y und dann enter.Ruft das soeben erstellte Python Programm auf. sudo python pitft.pyWenn ihr jetzt auf den zweiten Taster drückt (GPIO 22), sollte das Display ausgehen. Ein zweites mal drücken sollte das Display wieder anschalten. Mit ctrl+c beendet ihr das Programm