Oxocard Connect

Elektronik, coole Sensoren und HTTPS ermöglicht MQTT und KI!

Letztes Jahr stellte ich Euch hier die Lerncomputer Oxocards vor. Kurz danach hat die Firma Oxon AG eine so interessante Neuentwicklung vorgestellt, dass sie es wert ist ebenfalls vorgestellt zu werden. Es handelt sich um die Oxocard Connect, die neben einer völlig neuen Bauform auch komplett neue Features besitzt um damit neue Anwendergruppen zu erschließen. Während die älteren Oxocards ‚nur‘ dazu geeignet waren Programmieren zu lernen – oder tolle Schreibtisch Gadgets zu sein – bindet die neue Oxocard Connect die weite Welt der Elektronik ein. Das ist eine schlüssige Weiterentwicklung, denn die schon bei den anderen Oxocards als Grundlage verwendeten ESP32 sind Mikrocontroller, die normalerweise dazu gedacht sind alle möglichen und unmöglichen Dinge dieser Welt ins Internet zu integrieren (Internet of Things = IoT). Dabei geht es meistens um die Ansteuerung von Sensoren und Aktuatoren, also zum Beispiel um einen Temperatursensor und einen Fensteröffner.

Aber genau an der Schnittstelle zwischen Software und Hardware scheitern manchmal selbst gute Programmierer. Wie es möglich ist einen Sensor so mit einem ESP32 zu verbinden, dass der Wert des Sensors im eigenen Programm verarbeitet werden kann, ist für manche ein Buch mit 7 Siegeln. Und jene können sich jetzt mit der Oxocard Connect das erforderliche Wissen aneignen.

Grundsätzlich funktioniert die Oxocard Connect genauso wie die Science, die Galaxy und die Artwork, auch die Programmbeispiele für diese Karten, die weder den Lautsprecher von Galaxy und Artwork, noch den Beschleunigungssensor nutzen, funktionieren einwandfrei. Allerdings nimmt das neue Gehäuse in der Aufsicht weniger als halb so viele Fläche ein und ist dafür aber deutlich dicker. Die Connect lässt sich auch genauso wie die Vorgänger programmieren, darum ist es sehr empfehlenswert meinen Artikel zu den Vorgängern zu lesen.

Hier findet Ihr ein PDF, welches alle wichtigen Features der neuen Oxocard Connect sehr gut zusammenfasst.

Neue Bauform mit Cartridge-Connector

Im Gegensatz zu den älteren Oxocard Karten besitzt sie aber auf der linken Seite einen Cartridge-Connector, der es ermöglicht speziell dafür konstruierte Cartridges einfach durch simples in die Oxocard Connect stecken mit der Connect zu verbinden. Die Cartridges sind im Moment meist einfache Platinen mit darauf gelöteten Sensoren. Die beiden mit der Connect vorgestellten ersten Sensor-Cartridges AIR Cartridge und ToF Cartridge sind aber absolut bemerkenswert. Im Gegensatz zu den bei Elektronik Lernsets üblichen Temperatur- oder Lichtwiderständen mit 2 Drahtbeinchen, bekomme ich hier 2 Cartridges, die im Fall der AIR Cartridge sogar mit 3 verschiedenen Sensoren bestückt ist.

Der absolute Hit sind aber ohne Zweifel die beiden Cartridges:

AIR Cartridge

Diese Karte ist mit 3 Sensoren der Firma Sensirion bestückt:

  • Der SGP41 ist ein MOx-basierter Gas-Sensor, der flüchtige Kohlenstoffverbindungen (VOC) und Stickoxide (NOx) messen kann.

  • Der SCD40 ist ein photoakustischer Sensor der zuverlässig den CO2-Wert im Wertebereich von 400-2000ppm messen kann.

  • Der SHT40 ist ein kalibrierter Temperatur- und Feuchtesensor.

Mit folgendem Programm von der NanoPy-Entwicklungsumgebung (NanoPy→Cartridges→Air→Sensorwerte) kann man von den 3 Sensoren 7 Werte abfragen:

import air

setPrecision(3)
textFont(FONT_ROBOTO_24)

def onDraw():
    clear()
    drawText(10, 10, "CO2: " + AIR.CO2() + " ppm")
    drawText(10, 40, "NOxIdx: " + AIR.NOxIndex() + " / 500")
    drawText(10, 70, "VOCIdx: " + AIR.VOCIndex() + " / 500")
    drawText(10, 100, "IAQ: " + AIR.IAQ())
    drawText(10, 130, "temp: " + AIR.temperature() + " °C")
    drawText(10, 160, "humi: " + AIR.humidity() + " %RH")
    drawText(10, 190, "humiAbs: " + AIR.humidityAbsolute() + " g/m3")
    update()
    delay(100)
	if getButton():
		if returnToMenu():
			return

Wie man sieht ist die Verwendung in eigenen Programmen extrem einfach. Eventuelle Initialisierungen werden offenbar schon in der Bibliothek abgefangen. Es lohnt sich für technisch Interessierte auch einmal die Funktionsweise der einzelnen Sensoren zu untersuchen. Zum Beispiel den aufgelöteten SCD40 genauer zu betrachten. Dies ist ein Sensor der nach dem photoakustischen Prinzip funktioniert. Der Innenraum des Sensors wird regelmäßig mit Infrarotlicht bestrahlt. Die CO2-Moleküle in der Messkammer absorbieren einen Teil der Strahlung. Die von den CO2-Molekülen absorbierte Energie regt hauptsächlich molekulare Schwingungen an, was zu einer erhöhten Übertragungsenergie der Moleküle und, aufgrund der geschlossenen Messkammer, zu regelmäßigen Druckveränderungen in der Kammer führt, die mit einem Mikrofon gemessen werden. Also wirklich abgefahren das Ganze!

Mit diesem Sensor ist es in Verbindung mit dem Display der Oxocard Connect möglich eine CO2 Ampel, wie sie während der Corona-Zeit für viele Schulen angeboten wurden, selbst zu programmieren. Oder eine Wetterstation mit einer kleinen schicken grafischen Darstellung aller Werte.

ToF Cartridge

Aber auch die Beschreibung des VL53L5CX der ToF Cartridge hört sich krass an, hier eine Zusammenfassung von einer Angebotsseite bei mouser.de: ‚Der STMicroelectronics VL53L5CX 8×8 Multi-Zone Time-of-Flight Sensor vereint ein SPAD-Array, physische Infrarotfilter und diffraktive Optik (DOE) in einem kompakten, umlauffähigen Gehäuse. Er ermöglicht Mehrzonen-Distanzmessungen mit bis zu 8×8 Echtzeit-Einlagezonen und einem breiten Diagonal-Sichtfeld von 63°. Jede Zone kann die Entfernung zu einem Ziel von bis zu 4 Metern mit einer maximalen Frequenz von 60Hz messen. Dank der patentierten Histogramm-Algorithmen von ST kann der Sensor mehrere Objekte im Sichtfeld erkennen und ist immun gegen Störungen durch Glasübersprechungen über 60 cm.

Der VL53L5CX erreicht eine hervorragende Abstandsmessleistung unter verschiedenen Beleuchtungsbedingungen und mit verschiedenen Abdeckglasmaterialien. Die Verwendung einer diffraktiven Optik über dem vertikalen Hohlraum-Oberflächenemissionslaser (VCSEL) ermöglicht die Projektion eines quadratischen Sichtfelds auf die Szene, während die Empfängerlinse die Reflexion des Lichts auf das SPAD-Array fokussiert.

Die direkte Time-of-Flight-Technologie ermöglicht absolute Distanzmessungen, unabhängig von der Farbe und Reflexion des Ziels, mit präziser Reichweitenmessung bis zu 400 cm. Der integrierte 32-Bit-Mikrocontroller mit zusätzlichem Hardware-Beschleuniger kann das Histogramm nachbearbeiten und Tiefeninformationen mit hohen Geschwindigkeiten (60Hz) bereitstellen.‘

Ich versuche das einmal stark vereinfacht zu erklären: Stellt Euch eine Taschenlampe vor einem Karton mit 8 mal 8 Löchern vor. Wenn die Taschenlampe auf diesen Karton gerichtet leuchtet, so wird an der gegenüberliegenden Wand ein Muster aus Lichtpunkten entstehen. Wenn einige dieser Punkte durch ein Objekt blockiert werden, können Ihr feststellen, wo das Objekt steht, indem Ihr nachseht, welche Punkte blockiert sind. In Wirklichkeit ist das System des Sensors natürlich viel komplizierter, aber das Grundprinzip ist ähnlich: Licht wird ausgesendet, reflektiert und dann erfasst, um Informationen über die Umgebung zu erhalten.

Hier ein kleines Programm aus der NanoPy-Entwicklungsumgebung (NanoPy→Cartridges→ToF→Abstandssensor) zum Abstand messen:

import tof

textFont(FONT_ROBOTO_24)
w = textWidth("init TOF ~10s")
drawText(120-w/2,10,"init TOF ~10s")
update()
TOF.init()  # inits and calibrates the TOF (takes up to 10s)
TOF.set4x4()

def onDraw():
    TOF.getData()  # reads the 16 (4x4) sensor data and status values
    #TOF.data[i]   # data indicating the distance in mm
    #TOF.status[i] # status indicating the measurement validity (5 & 9 means ranging OK)
    minDistance = 9999
    for i in 16:
        if TOF.status[i] == 5 || TOF.status[i] == 9:
            distance = TOF.data[i]
            if distance < minDistance:
                minDistance = distance
    clear()
    textFont(FONT_ROBOTO_24)
    w = textWidth("TOF distance")
    drawText(120-w/2,10,"TOF distance")
    w = textWidth("sensor")
    drawText(120-w/2,34,"sensor")
    textFont(FONT_ROBOTO_80)
    w = textWidth(minDistance)
    drawText(120-w/2,88,minDistance)
    textFont(FONT_ROBOTO_32)
    w = textWidth("mm")
    drawText(120-w/2,170,"mm")
    update()
    if getButton():
        if returnToMenu():
            return

Auch hier ist der eigentliche zur Messung erforderliche Code sehr kurz. Ihr könnt Euch also damit einen eigenen Abstandswarner für Euer Auto bauen!

Wie man sieht hat dass mit dem schon erwähnten simplen Temperaturwiderstand nichts mehr zu tun! Beide Sensorkarten sind komplexe Systeme mit eigenen Mikrocontrollern, die über I2C oder I2C und SPI (beim VL53L5CX) und den in NanoPy zur Verfügung gestellten Bibliotheken mit dem ESP32 der Oxocard Connect kommunizieren. Für uns Anwender genügen dann simple Funktionen um die Sensorwerte zu empfangen und weiterverarbeiten zu können. Das macht es sehr einfach mit den hochwertigen Sensoren zu arbeiten und Anwendungsmöglichkeiten spielerisch zu erforschen.

Breadboard-Cartridge (Steckplatine)

Meistens sind Sensoren nicht so pflegeleicht verpackt wir bei den beiden vorgestellten. Die schon erwähnten Licht- und Temperaturwiderstände bedürfen etwas mehr Aufwand um sie mit den üblichen ESP32 Mikrocontrollern zu verbinden. Und dafür sind Elektronik Grundkenntnisse nützlich. Mit der Breadboard-Cartridge gibt es eine einfache Möglichkeit zum einen die notwendigen Kenntnisse zu erwerben und anschließend bzw. wenn man sie schon besitzt, auszuprobieren, ob die ausgedachte Anschlussmethode bzw. Schaltung auch tatsächlich funktioniert. Obwohl also die Oxocard Connect nach außen hin ein smoothes Design, scheinbar ohne jegliche Anschlussmöglichkeiten, besitzt, ist es mit dem angesteckten Breadboard möglich, die wichtigsten Anschlussleitungen eines ESP32 nach außen zu führen und sie direkt auf dem Breadboard für eigenen Experimente zur Verfügung zu stellen. Hier ist es dann zum Beispiel mit 2 Drahtbrücken und einem Widerstand möglich einen Lichtwiderstand (LDR) über einen Spannungsteiler an den Analog-Digital-Wandler des ESP32 anzuschließen und so den sich bei Helligkeitsschwankungen verändernden Widerstandswert direkt digital mit NanoPy in der Oxocard Connect zu verarbeiten.

Damit habt Ihr alles um einen Morse Detektor zu programmieren! Nebenbei bemerkt: Das ist eine sehr gute Programmierübung!

Aber auch normalerweise nicht manuell verwendbare Bauteile oder Sensoren mit eigenem Mikrocontroller in SMD Bauform (hier von Adafruit), die von manchen Anbietern auf eine kleine Platine gelötet und mit Lötpads versehen sind, können in das Breadboard gesteckt werden und mit einigen wenigen Drähten über SPI oder I2C mit der Connect verbunden werden. Das macht es einfach solche Bauteile prototypisch auszuprobieren und erste kleine Testprogramme zu entwickeln. Allerdings muss da dann meist noch eine kleine und oft mitgelieferte Pinleiste in die Lötpads gesteckt und angelötet werden.

Und wenn Ihr beim Begriff ‚Spannungsteiler’ geistig ausgestiegen seid, so seid Ihr mit dem Oxocard Connect Innovator Kit auf jeden Fall richtig, denn das kann Euch helfen diese Wissenslücke zu schließen.

Oxocard Connect Innovator Kit

Wer sich vor allem für Elektronik in Verbindung mit Computern interessiert, dem sei dieses Kit empfohlen. Es enthält neben einer Oxocard Connect und dem gerade beschriebenen Breadboard angeblich 96 Bauteile, die es Euch erlauben in Verbindung mit dem in der NanoPy Entwicklungsumgebung neu hinzugekommenem Bereich ‚NanoPy→ Connect → Elektronik Kurs‘ Elektronik kennenzulernen und so die Fertigkeiten zu erwerben, die Ihr für einen fundierten Umgang mit IoT Technologien benötigt.

Allerdings sind die beworbenen 96 Bauteile meiner Meinung nach stark übertrieben, da es sich bei 75 davon lediglich um Drahtbrücken handelt, die man sich theoretisch mit etwas ‚Telefondraht’ und einem Seitenschneider auch selbst schneiden, abisolieren und biegen kann. Aber natürlich haben Anfänger weder Seitenschneider noch die Fähigkeiten damit einen Draht abzuisolieren und damit ist es gut, dass diese dabei sind. Nur extra als Bauteile zu bewerben würde ich sie nicht. Sie sind eher der Zement der die Bausteine(teile) zusammen hält. 🙂 Bleiben also noch 21 Bauteile übrig, von denen es sich bei Zweien davon um die schon im Text erwähnten Temperatur- oder Lichtwiderstände und bei weiteren 14 um 9 normale Widerstände, 3 LEDs und 2 Tastern handelt. Bleiben noch 5 Bauteile übrig, die etwas interessanter sind:

1 x PIR-Sensor (Bewegungsmelder)
1 x Potentiometer
1 x Mikroservo SG92R
1 x Piezo (Akustische Signale)
1 x RGB-LED

Diese 5 und der Temperatur- und der Lichtwiderstand ermöglichen eine Vielzahl von interessanten Experimenten. So kann ich zum Beispiel mit dem Potentiometer einen quasi analogen Eingaberegler bauen, in dem das Potentiometer in einem Spannungsteiler verwendet wird und der durch die Drehung veränderbare Widerstand zu einer veränderten Spannung führt, die auf den Analogeingang der Connect wirkt, die dieser wiederum in einen digitalen Wert verwandelt, der direkt im Programm zur Steuerung eines PWM Ausgangs und damit vielleicht des Mikroservos verwendet wird. Scheint ein bisschen verrückt und ist aber doch bei manchen besseren Geräten eine oft verwendete komfortable Steuerungsmethode, die für den analogen Menschen meist viel intuitiver ist. Ein Beispiel dafür findet sich in der NanoPy Entwicklungsumgebung.

Mit dem Piezo kann man Geräusche erzeugen.

Die RGB-LED ist mit ihren vier steuerbaren Anschlüssen wunderbar dazu geeignet etwas über die Ansteuerung von Farben in LEDs zu lernen.

Mit dem Lichtwiderstand, einer einzelnen normalen LED und der PWM Funktion der Connect kann man versuchen eine Helligkeitssteuerung zu programmieren, die die LED automatisch heller macht um so größer die Umgebungshelligkeit steigt.

Mit dem Temperaturwiderstand ist es möglich sich sein eigenes Thermometer zu programmieren und dabei einiges über Eichung und nicht linearen Kennlinien (also Kurvenverläufen) zu lernen.

Das sind nur ein paar Beispiele von schier unzählbaren Versuchen, die mit der Kombination der Bauteile möglich sind!

Veroboard-Cartridge (Streifenplatine)

Diese Cartridge ist eher etwas für Profis, die sich schon gut mit Elektronik auskennen und sich für einen konkreten Anwendungsfall eine Schaltung ausgedacht haben, die sie nun fest aufbauen wollen. Idealerweise haben sie die vorher mit dem Breadboard getestet. 🙂 Bei der Streifenplatine kann ich mit einem Messer die Streifen unterteilen und mit einem Lötkolben die Bauteile entsprechend meinem ausgedachten Schaltplan verlöten. Ich kann mir damit – sozusagen – eigene Catridges wie die AIR- oder die ToF-Cartridge bauen, die ich dann einfach in die Oxocard Connect stecken kann. Das macht es auch einfach verschiedene Prototypen zu bauen und sie durch simples hin und her stecken auszuprobieren. Das Verlöten der Bauteile ist auch sinnvoll um eventuelle Wackelkontakte zu vermeiden, immer vorausgesetzt, dass die Steckkontakte der Connect selbst ausreichend festen Kontakt zum Breadboard oder dem Veroboard herstellen.

Firmen könnten sich allerdings auch komplett eigene Platinen (Cartridges) in größerer Menge mit passendem Steckanschluss fertigen lassen. Wer damit erste Erfahrungen sammeln will, sei auf fritzing verwiesen. Diese Software erlaubt es eigene Schaltungen zu dokumentieren, autozurouten und direkt einem Hersteller zu übergeben. Ich nutze Fritzing um für mich einfache Schaltungen zu dokumentieren. Die bieten scheinbar auch einen kompletten Platinenservice an.

MQTT und HTTPS

Schon die Veroboard-Cartridge zeigt eine neue Richtung von Oxon auf, nämlich die Oxon-Karten nicht nur als Lerncomputer, sondern auch für tatsächliche Anwendungen einzusetzen. Das kann dann auch bis zur Cloud gehen. Also mit Hilfe von ESP32 Mikrocontrollern Sensoren abzufragen, die Werte zu einer Cloud senden und dort zu speichern, sie mit den Daten anderer Sensoren zu verknüpfen und abhängig von den Ergebnissen Aktuatoren wie Rolladenmotoren, Heizungsventile, Licht und vieles mehr zu steuern.

Mit MQTT kann ich zum Beispiel Home Assistant, eine Open-Source-Plattform für Heimautomatisierung, verwenden um abhängig von Sensorwerten Automatisierungen in meinem ‚Smart Home‘ durchzuführen.

Wenn sich aber Home Assistant, die Cloud, oder einfach eine Datenbank nicht im eigenen Haus befinden, so stellt das ein potentielles Sicherheitsproblem dar, denn theoretisch können die Daten abgefangen und von nicht autorisierten Personen gelesen werden.

Die Connect unterstützt aber seit kurzem auch HTTPS und kann darum eine verschlüsselte Verbindung aufbauen. Damit ist es zum Beispiel möglich ChatGPT direkt in eine IoT Anwendung zu integrieren – ohne Umweg über einen Server. Was man damit machen könnte, habe ich mir einmal direkt von ChatGPT nennen lassen:

  1. Intelligentes Überwachungssystem: Ein ESP32, der mit verschiedenen Sensoren verbunden ist, könnte ein Überwachungssystem für zu Hause oder für Gewächshäuser darstellen. Wenn bestimmte Werte über- oder unterschritten werden, könnte der ESP32 eine Anfrage an GPT-4 senden, um zu ermitteln, welche Pflanzenkrankheiten wahrscheinlich vorliegen oder welche Umweltbedingungen optimiert werden sollten.

  2. Präventives Instandhaltungssystem: In einem präventiven Wartungsszenario könnte der ESP32 Daten von Maschinen sammeln und, wenn Anomalien festgestellt werden, GPT-4 konsultieren, um mögliche Ursachen und Lösungen zu analysieren, bevor ein Fachmann vor Ort gerufen wird.

  3. Interaktive Kunstinstallationen: Der ESP32 könnte Teil einer Kunstinstallation sein, die auf Umweltreize wie Bewegung, Licht oder Geräusche reagiert. GPT-4 könnte dabei helfen, poetische oder philosophische Texte zu generieren, die dann in der Installation dargestellt werden.

  4. Sprachgesteuerte Assistenz für Werkstätten: In einer Werkstatt könnte ein ESP32 eine Schnittstelle zu GPT-4 bieten, um Anfragen zu Werkzeugen, Materialien oder Arbeitsabläufen zu stellen. Die Antworten könnten in einfachen, kurzen Anweisungen bestehen, die direkt am Arbeitsplatz bereitgestellt werden.

  5. Erweiterte Fehlerdiagnose: Ein ESP32 in einem Gerät könnte Fehlercodes auslesen und an GPT-4 senden, das daraufhin eine verständlichere Erklärung und Vorschläge zur Fehlerbehebung liefert. (Anmerkung des Autors: Das wäre doch etwas für OBD2 Fehlercodes bei Fahrzeugen?)

  6. Umweltgesteuerte Musikschöpfung: Der ESP32 könnte Umweltdaten erfassen und diese in musikalische Kompositionen umwandeln, wobei GPT-4 als Inspirationsquelle für die Wahl von Instrumenten, Harmonien und Rhythmen dient.

  7. Smartes Recycling-Hilfsmittel: Ein mit einem Kamera-Modul ausgestatteter ESP32 könnte Bilder von Müll erfassen und GPT-4 zur Identifizierung und Klassifizierung nutzen, um Anweisungen für das richtige Recycling zu geben.

  8. Verhaltensmodifikation für Gewohnheiten: Der ESP32 könnte genutzt werden, um die Einhaltung guter Gewohnheiten (wie Händewaschen, Trinkwasserzufuhr usw.) zu überwachen und Feedback oder Ermutigung durch GPT-4 zu erhalten, um Verhaltensänderungen zu fördern.

Bei meinen Versuchen bin ich aber mehrmals an der Beschränkung auf 119 Zeichen für Strings von NanoPy hängen geblieben, da scheinbar die für derartige Versuche notwendige Funktion ,readRequestJSON’ nur 119 Zeichen zurück liefert. Obwohl sich in NanoPy Strings mit ‚byte[size]‘ auch größer erstellen lassen. Eine Nachfrage bei den Entwicklern führte zur Empfehlung ‚Blockweises Einlesen‘, was aber zu diesem Zeitpunkt in der NanoPy Entwicklungsumgebung noch nicht dokumentiert war. Für viele Problemstellungen ist es aber gar nicht notwendig einen langen Text zurück zu bekommen. In einem Python Experiment lies ich ChatGPT meine Emails auf Spam prüfen und gab an, dass ich als Antwort nur ein ‚[Ja]‘ oder ein ‚[Nein]‘ wollte. Für ähnliche Aufgaben reicht dann auch die Begrenzung auf 119 Zeichen. Hier entsteht aber möglicherweise ein anderes und für klassische Programmierer ungewohntes Problem: ChatGPT garantiert keine solchen Antworten. Meistens macht es was man sich von ihm wünscht, aber gelegentlich halt auch nicht. Dann kommt dann vielleicht ein Ja ohne eckige Klammern oder noch ein längerer Text dazu. Das wird in Zukunft dazu führen, dass Entwickler die Antworten in irgendeiner Weise prüfen müssen, bevor sie sie verwenden können!

Hier habe ich für Euch ein kleines Programm codiert, mit dem Ihr die Connect zu Eurem persönlichen Assistenten machen könnt, der Euch jeden Morgen etwas Nettes schreibt:



 

openAIApiKey = "openai api key"

url = "https://api.openai.com/v1/chat/completions"

template:byte[500]
template = "{\"model\":\"gpt-3.5-turbo\", \
    \"messages\": [ \
        {\"role\": \"system\", \"content\": \"Du bist der Personal Assistent von Monika.\"}, \
        {\"role\": \"user\", \"content\": \"Sag Monika einen netten Satz.\"} \
    ], \
    \"temperature\": 1 \
}"

json:byte[500]

textFont(FONT_ROBOTO_24)

def displayString(text:byte[], partLength):
    start = 0
    y = 0
    strLength = strLen(text)
    while start < strLength:
        charCount = partLength
        if start + partLength > 119:
            charCount = strLength - start
        part = strSubstring(text, start, charCount)
        drawText(0, y, part)
        start += partLength
        y += 24

def onDraw():
    while getButton():
        background(255,0,0)
        update()
        addRequestHeader("Content-Type:", "application/json")
        addRequestHeader("Authorization:", "Bearer " + openAIApiKey)
        if (postRequest(url, template)):
            json = readRequestJSON("choices.0.message.content")
            if strLen (json) > 119:
                json = strSubstring (json, 0, 119)
            displayString(json, 18)
        else:
            drawText(0, 0, "Error!")
        update()

Das ist zwar noch keine typische IoT Anwendung, zeigt aber schon einmal dass die Verbindung zu ChatGPT funktioniert. Ich denke durch die Kombination von IoT und KI ist eine neue große Spielwiese für unzählige faszinierende Ideen geschaffen worden.

Fazit

Die Oxocard Connect macht es in Verbindung mit den hochwertigen Cartridges und der speziellen Breadboard Cartridge sehr einfach Sensoren elektronisch mit der IoT Welt zu verbinden. In Verbindung mit der interpretierenden Sprache NanoPy ist auch die Programmierung schnell erledigt. Insofern ist dieser neue Zugang zum ESP32 Mikrocontroller möglicherweise die eleganteste und schnellste Form, mit dem ESP32 Anwendungen zu entwickeln.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert