Tumgik
#thonnyIDE
techcree · 2 years
Text
Raspberry Pi und Raspbi PicoW + Sensoren (2/2)
Tumblr media
Jetzt geht's um den Raspberry Pi PicoW (WLAN) und den BME280 Sensor.
Im ersten Teil dieser kleinen Beitragsserie sind wir insbesondere auf den BME680 bzw. 688 eingegangen. Diese beiden Sensoren eignen sich aber aktuell nicht für die Verwendung in verbindung mit dem Pico oder PicoW wegen der noch fehlenden Bibliothek für Micropython. In Verbindung mit dem Raspberry Pi 4 bspw. läufen sie aber prima.
Für den Pico und auch den PicoW allerdings bitet sich der BME280 an. Hierzu findet Ihr bspw. in der Verwendung mit der ThonnyIDE und im Menü PlugIns Installieren unter Suche von BME280 auch die "micropython-bme280" Bibliothek (siehe Bild in Position 3).
Nicht vergessen! Um die "Libary" installieren zu können muss der Pico verbunden sein, denn die Lib muss direkt auf den Pico geschrieben werden können. Bevor wir weiter fortfahren nochmal der Hinweis: Dieser Beitrag enthält kostenlose und unbezahlte Werbung!
Tumblr media
Angschlossen an den PicoW habe ich den Sensor dann wie folgt: Je vom BME280 ausgehend auf die GP's des PicoW -> SDA an GPIO 0, SCL an GPIO1, 2-5V an Pin 36 und GND an den dreiiten GND GP-Pin rechts. Der Sensor Breakout ist gut beschriftet und es empfiehlt sich Pins anzulöten sofern ihr nicht einen Breakout Garden oder ähnliches verwendet. Dazu später mehr.
Dieser Sensor liefert uns Daten über Temperatur, Luftfeuchtigkeit und Luftdruck. Ihr dürft allerdings nicht vergessen, dass es ggf. einige Einflüsse gibt die eine ganz genaue Messung so nicht möglich machen. Die Infos die wir also vom Senso erhalten sind ggf. mit etwas Vorsicht zu betrachten. Wer also nicht gerade tausendprozentig korrekte Werte erwartet bekommt mit dem Sensor aber ein tolles Stück technik zum kleinen Preis.
Tumblr media
Auf die Betankung des PicoW mit dem passenden .uf2 File und die generelle Erstinbetriebnahme etc. gehe ich hier an der Stelle nicht im Detail ein. Es gibt dazu auf der Website von Raspberry Pi umfangreiche Infos und zahlreiche Tutorials im Web und auch insbesondere auf YouTube.
Je nach Lieferant könnt ihr den PicoW auch mit bereits verlöteten Pinleisten oder eben ohne bekommen. In der Regel kommt der Pico und PicoW aber ohne verlötete Pinleisten. Das aber nur am Rande. Also bei der Bestellung darauf achten oder entsprechendes Zubehör eben gleich mitbestellen.
Tumblr media
Wie ihr auf dem Bild sehen könnt verwende ich eine GPIO Erweiterungsplatte bei der die GPIOs dann aber gegenüber dem Pico im Original spiegelverkehrt dargestellt werden. Wie bereits kurz angesprochen gibt es sogenannte Breakout Garden. Solltet ihr im Besitz von soetwas sein braucht ihr den BME280 nicht verlöten bzw. dürft den dann auch nicht mit PINs verlöten. Hier wird der BME280 und eben auch andere Breakouts einfach gesteckt.
Es kommt letztlich darauf an wie fest eure installation bzw. eurer Projekt auf Dauer ausgelegt werden soll. Natürlich könnte man auch eine riekte Verlötung zwischen PicoW und dem Breakout herstellen und noch ein schönes Gehäuse dazu mit dem 3D Drucker erstellen. Also beispielsweise wenn ihr dauerhaft den PicoW als kleine Messstation irgendwo einsetzen möchtet. Wenn ihr aber noch weitere Projekte plant und immer mal was Neues ausprobieren möchtet sind solche Lösungen, wie der Breakout Garden dafür natürlich super geeignet.
Tumblr media
Übrigens handelt es sich um den hier abgebildeten (Bildquelle: Pimoroni.com) um den Pimoroni Breakout Garden. So genug von der Seite, kommen wir nun mal zum Progrmmieren. Es gibt natürlich noch andere Wege als mit Micropython, doch für viele hat sich Micropython in Verbindung mit diesen Microcontrollern von Raspberry Pi schlicht als vorteilhafter erweisen. Gerade auch weil der Bezug zu Python so eng ist. Wenn wir die Verbindung zum PicoW über die ThonnyIDE hergestellt haben, die Libary installiert haben und unsere Micropython Scripte geschrieben haben sieht das ganze dann etwa so aus.
Dabei empfehle ich die Zugangsdaten eures WLAN's in einer gesonderten Datei abzulegen und euch diese Daten dann im hauptscript reinzuladen. In meinem Fall nennt die sich secret.py in der die Zugangdaten meines WLAN's zu finden sind. Der Befehl sich dann in der main.py, also dem eigentlichen auszuführenden Script zu importieren lautet dann: "from secret import ssid, password". Das ziel ist es aber nicht nur die reinen Sensordaten aus dem Senso auszulesen, sondern eine Website zu haben über die wir die Messergebnisse anzeigen wollen.
Tumblr media
Wir müssen den PicoW also einmal sich mit dem heimischen WLAN verbinden lassen, die Zugangsdaten dazu verarbeiten, die Sensordaten auslesen und eine Website anzeigen. Da der PicoW wenn er erfolgreich sich mit dem WLAN verbunden hat eine IP Adresse bekommt, könnt ihr dann im Browser eben diese IP Adresse einfach in der URL-Leiste eingeben und euch die Website die vom PicoW erzeugt wird aufrufen.
Noch ein kleiner Tipp: Wenn ihr keine festen IP Adressen an eure Endgeräte vergebt, sonder eben DHCP aktiviert habt, so kann es sein, dass der PicoW jedesmal wenn ihr euch verbindet eine andere IP Adresse bekommt. Im Fall meiner Fritzbox 7590 kann ich aber einstellen, dem PicoW möglichst immer die gleiche IP Adresse zuzuteilen auch unter DHCP. Das macht es dann etwas einfacher. Und nochmal - nie mischen! Keine Endgeräte auf denen feste IP Adressen konfiguriert sind an einem Router betreiben der auf DHCP läuft. Das kann ziemlich schiefgehen. Im schlimmsten Fall schießt ihr euch den Router ab oder bringt ihn zum stehen.
Tumblr media
Der große Vorteil des PicoW ist die WLAN Funktionalität, dank des auf dem Board festverbauten WLAN Moduls. So lässt sich der PicoW als Mini-Webserver betreiben. Es gibt auch hier verschiedenen Möglichkeiten das zu nutzen. Ich gehe später noch dazu kurz auf Phew ein um euch den Unterschied zu verdeutlichen. In meinem aktuellen Beispiel ist aber der html-Code im Pythonscript eingebaut. Am Ende bekommen ich so nachfolgende Website die sich in regelmäßigen Abständen aktuallisiert und dann auch jeweils die aktuellen Messwerte anzeigt.
Genau an dem Punkt ist es etwas Trickreich, denn ihr müsst dafür sorgen dass durch die Herstellung der Verbindung zum WLAN und dem Anzeigen der Messdaten kein Konflikt entsteht. Den vollständigen Code findet ihr auf meinen GitHub Seiten unter: https://github.com/techcree/PiPicoW
Ihr findet aber auch sonst im Netz sicher viele Beispiele dieser Art und schaut einfach was für euch da am Besten passt. Es ist eine tolle Sache, dass viele wie auch in meinem Fall Code kostenlos und freinutzbar zur Verfügung stellen. Dieser dann verändert und angepasst wird und wiederum zur Verfügung gestellt wird. So stehen im Lauf der Zeit zahlreiche version für allerlei Anwendungen zur Verfügung und das ist eine prima Sache. Und genau hier ist GitHub auch eine der in meinen Augen besten Plattformen für diese Zwecke.
Tumblr media
Noch eine kleine lustige Geschichte zum Schluss! Ziemlich bekannt ist der Robotmaker und YouTuber Kevin McAleer. Ich hatte bereits in anderen Projekten schon immer wieder Kontakt zu ihm und anderen in diesem Umfeld. Bei einem seiner Beiträge hatte ich über den Chat das Thema Phew angesprochen. Dabei handelt es sich um einen alternativen Weg bei dem die .html Seite von hauptscript getrennt werden kann. Es ist im Prinzip eine Webserver Architektur, die euch zudem noch einiges mehr ermöglichen kann.
Zum Thema Phew in Verbindung mit dem Raspberry Pi PicoW und dem BME280 Sensor hatte ich speziell hier Kevin angesprochen ggf. bei nächster Gelegenheit einmal ein extra Video zu machen. Kevin McAleer fand die Idee rehct gut und wir schauen mal ob er es zeitlich schafft. Er ist da einfach in Sachen YouTube ein richtiger Profi und ich könnte euch das garnicht so cool rüberbringen wie er das kann.
Tumblr media
Das Video über das ich hier spreche findet ihr übrigens auf seinem YouTube Kanal. Ich wünsch euch an der Stelle viel Spaß mit dem PicoW und ggf. auch mit diesem ganz konkreten Projekt.
0 notes
draegerit · 2 years
Text
Thonny IDE auf Linux einrichten für den Raspberry Pi Pico W
Tumblr media
In diesem kurzen Beitrag möchte ich dir zeigen, wie du die Thonny IDE auf einem Linux System installierst und deinen Raspberry Pi Pico / Pico W einrichten kanst.
Tumblr media
Thonny IDE auf Linux für den Raspberry Pi Pico einrichten Die Thonny IDE habe ich bisher immer auf meinem Microsoft Windows 10 PC eingesetzt, mir ist bei einem Gerätewechsel aufgefallen das die Installation / Konfiguration der Thonny IDE etwas anders ist, aber siehe selbst.
Das verwendete Linux System
In meinem Fall verwende ich ein Linux Mint in der Version 20.2. oem@anna:~$ lsb_release -a No LSB modules are available. Distributor ID: Linuxmint Description: Linux Mint 20.2 Release: 20.2 Codename: uma oem@anna:~$
Installieren der Thonny IDE
Wenn du auf die Seite https://thonny.org/ wechselst, dann kannst du oben rechts auf den Text "Linux" klicken, dort findest du verschiedene Wege die Thonny IDE für dein Linux zu installieren. In meinem Fall nutze ich den Weg über den Paketmanager des Betriebssystems.
Tumblr media
Befehle zum installieren der Thonny IDE unter Linux Theoretisch könnte man den Beitrag hier nun beenden, aber bei der Installation gibt es ein paar Kniffe welche dir unter Windows erspart bleiben. Also bleib dran...
Installation über den Paketmanager
Mit dem Befehl "sudo apt-get install thonny" im Terminal wird die Installation angestoßen. Wenn dein aktueller Benutzer ungleich dem Systembenutzer "root" ist, dann musst du ggf. das entsprechende Passwort eingeben. oem@anna:~$ sudo apt-get install thonny Passwort für oem: Wenn das Passwort korrekt ist, werden die benötigten Ressourcen für die Thonny IDE ermittelt und das Heruntergeladen muss mit der Tastenkombination Shift+J bestätigt werden. Die Installation dauerte auf meinem System mit einer recht betagten CPU ein paar Sekunden und wird im Terminal mit der nachfolgenden Ausgabe bei Erfolg quittiert. Entpacken von thonny (3.2.7-1) ... thonny (3.2.7-1) wird eingerichtet ... Trigger für mime-support (3.64ubuntu1) werden verarbeitet ... Trigger für hicolor-icon-theme (0.17-2) werden verarbeitet ... Trigger für gnome-menus (3.36.0-1ubuntu1) werden verarbeitet ... Trigger für man-db (2.9.1-1) werden verarbeitet ... Trigger für desktop-file-utils (0.24+linuxmint1) werden verarbeitet ... oem@anna:~$ Auf dem System Linux Mint findest du im Startmenü den Eintrag "Entwicklung" und darin nun den neuen Eintrag "Thonny IDE".
Tumblr media
Linux Mint - Abschnitt "Entwicklung"
Konfigurieren der Thonny IDE für den Raspberry Pi Pico / Pico W
Wenn du die Thonny IDE bereits von einem Windows System oder einem meiner vorherigen Beiträge kennst, dann wirst du dich bei der Konfiguration der Entwicklungsumgebung für den Raspberry Pi Pico schnell zurechtfinden.
Tumblr media
Thonny IDE auf dem Linux System Was mir zunächst auffiel, war der recht nützliche Link zu den Interpretern unten rechts im Editor. Man muss also über das Hauptmenü "Extras" > "Options" in das Fenster "Thonny options" navigieren. In diesem Fenster wählen wir den Tab "Interpreter". Zunächst müssen wir aus der Auswahlliste den Eintrag "MicroPython (generic)" auswählen. Wenn dein Pico bereits mit dem PC verbunden ist, dann kannst du diesen aus der Auswahlliste unter dem Label "Port" wählen. Deine getroffenen Einstellungen bestätigst du mit der Schaltfläche "OK" und kehrst dann auf die Sicht in den Editor zurück. In der Version für Microsoft Windows findest du hier einen extra Eintrag für deinen Pi Pico.
Tumblr media
Einstellungen für den Raspberry Pi Pico in er Thonny IDE unter Linux Wenn dein Mikrocontroller eingesteckt und bereit ist, dann wird dir in der Konsole der Thonny IDE nachfolgende Ausgabe angezeigt. MicroPython v1.19.1-88-g74e33e714 on 2022-06-30; Raspberry Pi Pico W with RP2040 Type "help()" for more information. >>> Nun kannst du mit der Programmierung deines Pi Pico unter Linux beginnen. Read the full article
0 notes
techcree · 2 years
Text
Raspberry Pi und Raspbi PicoW + Sensoren (1/2)
Tumblr media
Heute geht es vor alle um ein Paar Sensoren. Es geht aber auch darum wie passen diese zum Repaberry Pi Pico oder muss doch der Raspberry Pi dafür her.
Nach dem großen Erfolg des Microcontrollers der Raspberry Pi Foundation UK, dem Pico, hat Raspberry nochmal nachgelegt und den PicoW auf den Markt gebracht. Der ist nun gegenüber dem Bruder mit einem WLAn Modul ausgestattet. Gleich vorweg, es wird zu diesem Bericht noch einen zweiten Teil geben, denn aktuell liegt noach nicht alles Material zum Test vor. Allerding ist nun der Pico W auch bei mir eingetroffen und auch einer der Sensor-Module ist da. Konkret handelt es sich um den BME688.
Natürlich sind die Erwartungshaltungen an den neuen PicoW hoch. Hinsichtlich seiner Anschaffungskosten liegt der nur geringfügig über dem Vorgänger, wo bei der Pico im Vergleich zum PicoW ja eigentlich kein Vorgänger im eigentlichen Sinne ist, denn es gibt aj noch beide im Handel. Das Beide ihre Käuferschicht haben, also auch der Pico weiterhin gefragt sein wird, dass jedenfalls dürfte niemand bestreitet. Es ist also nicht so das der PicoW den Pico quasi ablösen wird.
Tumblr media
Warum? Ein WLAN Modul an Board ist grundsätzlich eine feine Sache und damit zieht Raspberry technologisch Modellen der Mitbewerber nach. Doch was bringt uns diese WLAN Funktionalität an Mehrwert. Wie sinnvoll lässt sich der PicoW also wirklich für unsere Projkete einsetzen bzw. auch für alltagstaugliche Lösungen einsetzen? Dazu später mehr.
Hinweis: Beitrag enthält kostenlose und unbezahlte Werbung. Bildquellen unter anderem: pimoroni.com
Tumblr media
Kommen wir zuvor zu den Sensor Modulen, den sogenannten Sensor Breakouts. Ich habe mir den BME688 und den BME280 Sensor bei Pimoroni bestellt und leider nicht darauf geachtet alles in eine bestellung zu packen. Daher lieferte Pimoroni wie gewohnt schnell und zuverlässig den PicoW nebst dem in dieser Bestellung enthaltenen BME688. Aber kein Problem über den Test des BME280 erfahrt Ihr dann mehr im zweiten Teil.
Aber was sind das eigentlich für Sensoren? Im Prinzip unterscheiden sich diese Breakouts nur im Hinblick auf das was alles gemessen werden kann. Während beim BME280 Luftdruck, Temperatur und Luftfeuchtigkeit gemessen werden können sind die BME68X noch in der Lage die Luftqualität (Gas) zu messen. Gehen wir an dieser Stelle noch nicht darauf ein was es uns bringen mag diese Daten zu erhalten, also diese Dinge zu messen. Auch das noch später.
Tumblr media
Zunächst schließen wir den Raspberry Pi PicoW wie bereits vom Pico gewohnt am Computer an und betanken den Microcontroller mit der passenden .UF2 Datei, um dann Micropython als Programmiercode nutzen zu können. Und um die dann auf dem PicoW zu speichern und den Code zu bearbeiten verwende ich auch hier die ThonnyIDE. Aber das hier gibt kein Tutorial, daher bitte detailierte Anweisungen dazu selbst nachschauen. An der Stelle merken wir jedenfalls kaum einen Unterschied zum Pico außer das wir nun eine für den PicoW geeignete .UF2 benutzen müssen.
Was uns der PicoW aber jetzt bietet, ist bspw. unter der Verwendung der Phew Bibliothek einen Mini-Webserver darauf laufen lassen zu können. Neben Phew bieten sich natürlich auch noch andere Wege an. Ich habe mich aber für Phew entschieden um den reinen .html Code als eigene index.html Datei bearbeiten zu können. Den Webserver zu starten und zu betreiben hat sich damit als deutlich stabiler und unkomplizierter erwiesen.
Um sich nun auf einer Website bspw. einmalig die Temperatur anzeigen zu lassen, die der PicoW messen kann ist erstmal kein Breakout Sensor wie der BME280 erfolrderlich! Der Pico verfügt auf der Platine bereits über einen Temperatursensor ebenso wie über eine LED. Wollen wir aber mehr messen, dann empfiehlt sich hier eben der BME280. Warum der und nicht die Sensoren der 68x Serie? Aktuell gibt es für Micropython nur eine BME280_micropython Bilbliothek, welche wir auf dem Pico und PicoW erfolgreich istanllieren können! Ja, pech das ich gerade zum Start neben dem PicoW den 688'er geliefert bekam.
Tumblr media
Ein Tipp den ich euch auf jedenfall noch geben möchte ist es die Informatioen über euer WLAN, wie die SSID und das Passwort nicht direkt in die main.py Datei zu packen, sondern eine eigene secrets.py damit zu erstellen. Die Daten für die Anmeldung im WLAN zieht ihr euch dann dort einfach heraus mit "from secrets import SSID, password". Ist der Webserver gestartet ist die .html-Seite unter der IP Adresse im Browser aufrufbar, welche euer Router dem PicoW vergeben hat. Bekommt ihr natürlich nach dem Start der main.py im ThonnyIDE auch angezeigt.
Kommen wir auf den BME688 zu sprechen. Es gibt von der Software oder auch dem Python Code zwischen dem BME680 und dem BME688 keinen auffäööigen Unterschied. Ob ihr euch nun für den 680'er oder den 688'er entscheidet müsst ihr selbst mal nachlesen. Die beiden Sensor breakouts sind auf der Website von Pimoroni gut beschrieben und unterscheiden sich vor allem im Preis. Sprechen wir über diesen Sensor fällt uns auf, dass hier BOSCH die Finger im Spiel hat. BOSCH bietet dazu auch eine Auswertungssoftware. Die läuft aber nur als APP Version und kann wiederum auf dem Raspberry Pi 4 bei mir nicht ohne Umwege laufen.
Tumblr media
Die Daten des BME688 bekomme ich aber eben super auf dem Raspberry Pi Einplatinencomputer erfasst und angezeigt. Die Installation des BME688 ist bei meinem Pi4 ziemlich einfach gewesen. GPIO Schnittstelle muss natürlich aktiviert sein. In der ThonnyIDE die entsprechenden Bibliothkenen für Python zu finden und zu installieren iat auch kein Hexenwerk. Zudem bietet genau hier an dem Punkt Pimoroni ein umfangreices Tutorial an, welches ihr auf deren Seiten findet. Über die Pimoroni GitHub Page gibt es zudem eine detailierte Installationsanleitung und ein Installationsscript.
Tumblr media
Die passenden Demo Scripte gibt es dann auch driekt mit. An der Stelle hat Pimoroni wiedermal einen klasse Job gemacht! Vielen Dank nach GB an Pimoroni dafür! Läuft das Script dann gibt es Daten, Daten, Daten. Nun was die Temperatur dabei aussagt ist uns allen wohl klar. Auch beim Luftdruck und der Luftfeuchtigkeit kommen wir sicher noch hin. Was uns der gas_resistance Wert aber sagt müssen wir ggf. nachforschen. Es sei denn man kennt diese Werte und kann damit umgehen. Der Laie, der aber zum ersten Mal diesen Wert sieht wird sicher zunächst etwas staunen.
Warum spreche ich das an? Na klar! Es gibt bei BOSCH eine sehr umfangreiche Beschreibung zu diesem Sensor. Diese kann man sich dort von der Website als *.pdf Dokument herunterladen. Und ja bevor ich euch das alles verlinke. Den Job hat auch Pimoroni bereits für uns gemacht.
Tumblr media
Also einen Link hier für alle Infos die Ihr so benötigt: https://shop.pimoroni.com/collections/electronics
So und bevor dieser Beitrag schlicht zu lang wird vertröste ich euch nun an dieser Stelle auf den bald folgenden zweiten Teil. Dann auch mehr zum BME280!
0 notes