Develop BOB on FiPy

bob
fipy
micropython

#1

Der FiPy von PyCom kann mit minimaler Stromversorgung genutzt werden (im Gegensatz zum Beaglebone). Er hat als Herzstück einen ESP32.

@clemens und @didilamken sind schon schwer damit beschäftigt, die Software für das Einlesen der Sensordaten und die Anbindung an den zentralen Server zu realisieren. Wer Lust hat, ihnen beim Testen und implementieren der noch fehlenden Features zu helfen, ist herzlich eingeladen und kann hier Fragen und Antworten los werden.


Einer mehr aus Berlin
[META] Boardentwicklung für Pycom FiPy
Schaltbare Stromversorgung für Verbraucher bei Pycom Modulen
#2

Jetzt ist hier auch @Andreas mit am Start, voll gut. Da ja auch @Ron schon viel für die Pycom-Boards gecoded hatte, sieht der Stand momentan so aus:
Es gibt sowohl in C (Arduino) als auch in Mircopython Code, der die Sensoren ausliest und über WLAN per MQTT an unseren Server schickt.

Was noch fehlt:
(1) eine Einrichtungsroutine: wir hatten für den Raspi schon mit einer Weboberfläche experimentiert, die sich öffnet wenn der Pi einen Accesspoint aufmacht. Dort kann man in einer GUI seine WLAN-Daten eingeben, testen, ob man die Sensoren richtig angeschlossen hat und die Waage kalibrieren.

Für den FiPy wünschen wir uns etwas ähnliches. Wenn man seinen Knoten einrichtet, soll Folgendes passieren:

  • man wählt aus, wie die Daten übertragen werden sollen: WLAN, LTE oder LoRa.
  • man gibt die entsprechenden Zugangsdaten ein.
  • man kalibriert seine Waage
  • man lässt das System wissen, in welcher Anordnung man die Temperatursensoren eingebaut hat (welcher Sensor ist an Pos1, Pos2,…,Pos5) und macht einen Temperaturabgleich. Hierfür wäre eine Variante denkbar, die eine Thermoskanne mit heißem Wasser verwendet. Der Prozess: man hängt nach einander die Sensoren in das Wasser. Sobald das Skript den Temperaturanstieg erkennt, bestätigt es und man hängt den nächsten rein. Zum Schluss hängt man alls Sesnoren gemeinsam rein und tariert die Temperaturmessung, in dem ein Abweichunngsfaktor vom Mittelwert für jeden Sensor gespeichert wird.

Jeder Schritt sollte einzeln durchführbar sein. Nur weil ich mein WLAN-Passwort ändere, sollte ich nicht die Waage neu kalibrieren müssen.
Das ganze soll als Webapp betriebssystemunabhängig sein. Es sollte so viel wie möglich lokal auf dem FiPy gemacht werden, damit unser System auch bei schlechter Verbindung genutzt werden kann.

Bestimmt hab ich was vergessen…Ich freue mich über euer Feedback!


split this topic #3

6 posts were split to a new topic: Temperatursensoren justieren / kalibrieren


split this topic #10

111 posts were split to a new topic: Platine für FiPy


#18

Hallo in die Runde,

schön Euch alle hier gemeinsam versammelt zu wissen. Vielen Dank für das Anlegen des Beitrags, @caro!

Nach einer etwas längeren Pause von ca. zwei Jahren nehmen wir nun die Arbeiten an einer soliden MicroPython firmware wieder auf, weil sich durch die Anforderungen des BOB Projekts eine einmalige Gelegenheit dafür bietet.

Nachdem @Ron, @RalfL und @tonke aktuell schon wunderbare Grundlagenarbeit geleistet haben (dankeschön!), wärmen wir unsere Vorarbeiten in Richtung flexibler und robuster Telemetrie wieder auf und konnten sie auch endlich auf echter Hardware erfolgreich testen.

Details zum Thema haben wir unter Terkin for MicroPython abgelegt, später kommen noch weitere Zusatzinformationen hinzu, wie wir damit alle unsere softwareseitigen Wünsche und Anforderungen bündeln könnten.

Viele Grüße,
Andreas.


#19

Hallo @didilamken,

schön, dass wir uns hier kennenlernen können – vielleicht auch bald mal jenseits des Forums?

Fein, dass Du die aktuelle Version der Bibliothek bereits bei Dir erfolgreich testen konntest, im Rahmen von Improving the canonical Arduino HX711 library for ESP32 and beyond und https://github.com/bogde/HX711/pull/123 konnten wir dort endlich einige der lange anstehenden Verbesserungen landen.

Das meiste kam zwar ohnehin aus der Community, aber bislang fehlte noch jemand, der die zahlreichen versprengselten Errungenschaften einsammelte und gebündelt unter einen Hut brachte. Dem hatten wir uns vor kurzem im Rahmen eines Frühjahresputzes annehmen können.

Unsere Arbeiten daran wurden allgemein gut aufgenommen, in Summe ist also eine kleine Erfolgsgeschichte daraus geworden, weil die Verbesserungen natürlich automatisch der ganzen Community wieder zur Verfügung stehen.

Viel Vergnügen damit und gib natürlich gerne Bescheid, falls Du Dir weitere Verbesserungen oder Erweiterungen daran wünschst. Durch den erfolgreichen Vorgang haben wir dort aktuell einen recht guten Stand, denke ich.

Herzliche Grüße,
Andreas.


#28

Caro hatte gefragt, was notwendig ist, um den FiPy mit Atom zu verbinden.
Vincent und ich mussten den User noch in uucp und dialout zufügen, also
sudo gpasswd -a <user> uucp


#29

Vielen Dank @didilamken für die Übersicht über die Pins! Wir hatten bisher auch P4, P8 und P23 für die SD eingeplant.

Wir haben hier auch schon ein bisschen mit den FiPys experimentiert, und @vinz hat zum Beispiel angefangen eine Weboberfläche zu bauen. Den Code findet ihr hier: Sensorbeuten/ESP32/MicroPython at master · Hiverize/Sensorbeuten · GitHub

Ich glaube @Andreas hat an dieser Stelle schon einiges gemacht: GitHub - hiveeyes/hiveeyes-micropython-firmware: Hiveeyes MicroPython Datalogger -- Data logging for humans

Können wir vielleicht ab jetzt alle zusammen im Hiveeyes-Repo basteln? Kannst du uns einladen, Andreas? Dann können wir auch dort Issues anlegen. Der erste Workshop soll ja schon in ca. 2 Wochen stattfinden.


Introduction to MicroPython
#30

@Andreas, magst du hier mal drüber schauen und einen Vorschlag machen, wie wir, und welche Teile wir in den gemeinsamen Code ins hiveeyes-Repo rüber bekommen können.


#31

Hallo Ihr Guten,

Das ist ja mal saustark, was @vinz da vorgelegt hat. Wo darf ich Blumensträuße hinschicken? Schokolade? Bücher?

Das ist aber doch nicht erst übers Wochenende entstanden!? Fragen über Fragen… ;]

Liebe Grüße und bis gleich,
Andreas.


#47

Hallo,
da mein kleines Webinterface hier ja schon erwähnt wurde, möchte ich hier meine Erfahrungen zusammenfassen.

Basis:

  • Als Basis für den Webserver habe ich folgendes Github Projekt genutzt und bis jetzt keine Probleme gehabt: MicroWebSrv.
  • Mit dem MicroDNSSrv von dem gleichen Programmierer lässt sich ohne Problem ein Captive Portal einrichten.

Einschränkungen:

  • Es gibt die Möglichkeit Python und HTML zu kombinieren (ähnlich wie Jinja2), in meinen Versuchen schien das jedoch Recht langsam zu sein.

Das Webinterface von mir liefert momentan einfaches HTML aus (für jede Rubrik von Einstellungen eine eigene Datei) und lädt die Daten aus der Konfigurationsdatei per JavaScript. Das Speichern geht über eine Python Funktion, die HTTP-POST Daten in eine JSON-Datei schreibt.

@Andreas: Wir sollten uns mal kurzschließen, wie wir das Webinterface am besten in euren Code integrieren. Ich werde mir heute mal genauer angucken, wie euer Code aufgebaut ist und ein paar Ideen dazu entwickeln.


#48

Hi @vinz,

Tiptop, beides sind ja auch die Platzhirschen in diesem Bereich, daher: Gute Wahl! Exzellent, dass Du diese bereits miteinander integriert hast und damit warm geworden bist, hier hat unser Code bisher noch eine Lücke.

Das wäre grandios! Meinst Du, wir können im Laufe des Nachmittags kurz telefonisch zusammenkommen? Ab ca. 15:30 Uhr werde ich für ein paar Stunden mit @einsiedlerkrebs zusammensitzen, kurz davor gegen 15:15 Uhr wäre optimal.

Das wäre spitze, wenn das klappen würde.

Herzliche Grüße,
Andreas.


#141

Danke @clemens und @einsiedlerkrebs für die Bereitstellung der Hardware!

Hiveeyes bEgg mit Bee Observer FiPy Solar

Entlang der Entwicklungsarbeiten bei der https://community.hiveeyes.org/t/platine-fur-fipy/1745 ist ein praktisches kleines Entwicklungsgerät entstanden, @einsiedlerkrebs hatte den ersten Prototypen bereits auf Basis seines BeeBuerger v1 als “boxed” Variante BeeBuerger Case bEgg vorgestellt.

Gerade aktuell konnten wir zusammen mit der Platine von @clemens für den Bee Observer FiPy Solar und der Hiveeyes MicroPython Firmware ein paar Dinge aus verschiedenen Richtungen bündeln. Danke an alle die dabei mitgewirkt haben!

Daten

https://swarm.hiveeyes.org/grafana/d/mf5VqJRZk/hiveeyes-begg-mit-bee-observer-fipy-solar
https://swarm.hiveeyes.org/api/hiveeyes/testdrive/area-38/fipy-amo-04/data.txt

Bilder

image image
image

Telemetrie

MQTT over WiFi

image

mosquitto_sub -h daq.example.org -p 1883 -t '#' -v
{
  "humidity.0x77.i2c:0": 29.6,
  "memfree": 2428544,
  "pressure.0x77.i2c:0": 1019.94,
  "temperature.0x77.i2c:0": 23.48,
  "temperature.28ff641d8fc3944f.onewire:0": 23.125,
  "temperature.28ff641d8fdf18c1.onewire:0": 22.0625,
  "weight": 0
}

Probleme

  • Der HX711 misst noch nichts

Erarbeitung eines kanonischen Datenschemas für imkerliche Meßdaten
#142

Die pins beim BOB Fipy solar des HX711 sind anders als ursprünglich dokumentiert: DT ist P22 und SCK P21.


#143

Gracias!

{
  "temperature.0x77.i2c:0": 22.67,
  "temperature.28ff641d8fc3944f.onewire:0": 23.5,
  "pressure.0x77.i2c:0": 1021.17,
  "memfree": 2291968,
  "temperature.28ff641d8fdf18c1.onewire:0": 23.75,
  "humidity.0x77.i2c:0": 33.46,
  "weight": 74048.66
}

Erarbeitung eines kanonischen Datenschemas für imkerliche Meßdaten
#144

Bee Observer FiPy Solar im Standardgehäuse

Einleitung

Aus den Arbeiten an einer Platine für FiPy ist unter anderem folgende Platine herausgekommen und mittlerweile eingetroffen.

Details


#145

Plan for MicroTerkin 0.3.0