Forum: Mikrocontroller und Digitale Elektronik Honeywell Sensoren am ESP32/8266 über I2C ablesen


von Yasin Y. (yasin_y)


Lesenswert?

Hallo,
für meinen Projekt möchte ich die Honeywell Trustability Board Mount 
Pressure Sensoren über I2C  alternativ auch über SPI mit dem ESP8266 
angeschlossen haben. Ich nutze einen ESP8266 da dieser ein WIFI Modul 
besitzt mit dem ich über MQTT die Daten über einen Raspberry Pi als 
Broker an Labview mithilfe eines HTTP Clients weitersenden wollte.

Ist dieser Ansatz so ohne weiteres möglich ?
Leider konnte ich auf der Honeywell Seite keine Library's für ein I2C 
Protokoll für den ESP finden. Nur einen für SPI für den Arduino auf 
Github, gibt es hierzu Ideen oder Lösungsvorschläge?

Vielen Dank im Vorraus

von N. M. (mani)


Lesenswert?

Yasin Y. schrieb:
> möchte ich die Honeywell Trustability Board Mount Pressure Sensoren

Welche? Typ angeben!

Yasin Y. schrieb:
> Ich nutze einen ESP8266 da dieser ein WIFI Modul besitzt mit dem ich
> über MQTT die Daten über einen Raspberry Pi als Broker an Labview
> mithilfe eines HTTP Clients weitersenden wollte.

Kann man machen.

Yasin Y. schrieb:
> Ist dieser Ansatz so ohne weiteres möglich ?

Möglich schon. Sinnvoll ist die Frage.
Warum braucht es den Raspi? In dem was du seither beschrieben hast 
könnte LabView ja auch direkt mit dem ESP reden.
Wenn es noch mehr Anforderungen gibt würde ich die noch nennen.

Yasin Y. schrieb:
> Leider konnte ich auf der Honeywell Seite keine Library's für ein I2C
> Protokoll für den ESP finden.

I2C Treiber für den ESP würde ich auch bei Espressif suchen.
I2C Treiber für den Sensor entweder beim Hersteller, oder wenn man den 
Typ wüsste Mal bei GitHub schauen.

Yasin Y. schrieb:
> Nur einen für SPI für den Arduino auf Github

Dann nimm halt den.

von Steve van de Grens (roehrmond)


Lesenswert?

Yasin Y. schrieb:
> Leider konnte ich auf der Honeywell Seite keine Library's für ein I2C
> Protokoll für den ESP finden

Generische I²C Treiber sind im SDK von Espressif und auch im Arduino 
Core enthalten. Das Datenblatt der Sensoren sollte theoretisch die I²C 
Schnittstelle detailliert genug beschrieben. Eine extra Library dafür 
sollte somit unnötig sein.

Gleiche gilt für SPI.

von Stephan S. (uxdx)


Lesenswert?

Yasin Y. schrieb:
> Leider konnte ich auf der Honeywell Seite keine Library's für ein I2C
> Protokoll für den ESP finden. Nur einen für SPI für den Arduino auf
> Github,

Da scheint es auch was für I2C zu geben
https://github.com/ij96/Honeywell_ABP/blob/master/example/example.ino

von Yasin Y. (yasin_y)


Lesenswert?

N. M. schrieb:

> Welche? Typ angeben!
Ich wollte den HSCDRRN100MDSA3 Differenzdrucksensor und SSCDANN015PA2A3 
Absolutdrucksensor nutzen.

Der Sensor, der Mikrocontroller und ein paar Lithium Ion AA Batterien 
sollten eine hierbei eine "Einheit" sein.
Mehrerer dieser "Einheiten" sollten hierbei Sensordaten aufzeichnen.


> Möglich schon. Sinnvoll ist die Frage.
> Warum braucht es den Raspi?
Ich bin auf zwei Lösungswege gestoßen:

Entweder:

Über Mosquitto MQTT Broker -> Node-RED -> InfluxDB -> LabView
Der MQTT Broker, Node-Red und InfluxDB würden dann im Raspi laufen.

Oder:
Über den von Labview Verfügung gestellten MQTT Toolkit


>In dem was du seither beschrieben hast  könnte LabView ja auch direkt mit dem ESP 
reden.

Was wäre hier das sinnvollste Verfahren, wenn ich fragen dürfte ?
Die einzige Anforderung ist das man eine Anbindung zu LabView herstellt 
und die Sensordaten verlässlich ankommen.


> I2C Treiber für den ESP würde ich auch bei Espressif suchen.

Ich habe hier folgendens auf der ESP Seite gefunden:

https://docs.espressif.com/projects/esp-idf/en/v4.3/esp32/api-reference/peripherals/i2c.html

> I2C Treiber für den Sensor entweder beim Hersteller, oder wenn man den
> Typ wüsste Mal bei GitHub schauen.

Bei dem Hersteller habe ich einen Evaluation Kit gefunden mit 
entsprechender Software:

https://sps.honeywell.com/us/en/products/advanced-sensing-technologies/healthcare-sensing/sensor-evaluation-kits/sensor-evaluation-kits#overview

Eigentlich ist SPI viel schneller jedoch solle die Anbindung über I2C 
leichter zu realisieren sein.
Da die Sensordaten maximal im 0.7 Sekunden Takt ankommen sollten wäre 
hier, wie ich für richtig halte, I2C ausreichend.

Danke

von N. M. (mani)


Lesenswert?

Yasin Y. schrieb:
> Über Mosquitto MQTT Broker -> Node-RED -> InfluxDB -> LabView
> Der MQTT Broker, Node-Red und InfluxDB würden dann im Raspi laufen.

Die Frage von meiner Seite aus war: Brauchst du eine nicht flüchtige 
Datenhaltung in einer Datenbank und ein evtl. Zugriffe über mehrere 
Subscriber? Wenn nein, würde ich da einfach eine blanke TCP Verbindung 
zwischen Labview und Sensoren nehmen. Also nur den Sensorwert von SPI 
nach TCP tunneln.
Damit kannst du dir den Raspi komplett sparen.

Yasin Y. schrieb:
> Bei dem Hersteller habe ich einen Evaluation Kit gefunden mit
> entsprechender Software:
>
> 
https://sps.honeywell.com/us/en/products/advanced-sensing-technologies/healthcare-sensing/sensor-evaluation-kits/sensor-evaluation-kits#overview

Ich seh da nur Hex-Files. Keinen Code. Das wird dir wenig bringen.

Yasin Y. schrieb:
> Eigentlich ist SPI viel schneller jedoch solle die Anbindung über I2C
> leichter zu realisieren sein.

Ich würde SPI nehmen. Wenn ich das SPI Manual von Honeywell anschaue 
sind das einfach 24 Clks und die Daten wackeln rein. Fertig. Noch 
leichter kann es nicht gehen. Und ist auch noch mehr als doppelt so 
schnell. Die Leitungen sind auch aktiv getrieben im Gegensatz zu I2C. 
Auch wenn du es nicht so schnell brauchst evtl. trotzdem nicht schlecht. 
Lässt sich vermutlich auch leichter über einen DMA machen als I2C falls 
man es bräuchte.
Außerdem wäre das mit der Standard HAL des ESPs vermutlich ein 3-Zeiler.
Gut I2C bekommt man vermutlich auch mit 2-3 Zeilen mehr hin.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.