Author Topic: Sensor Node  (Read 36707 times)

MathiasW

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 614
  • Karma: +13/-0
    • my Arduino page
Sensor Node
« on: May 08, 2017, 06:49:55 PM »
Salut,

ich habe aufgrund einiger Artikel und Diskusionen im Netz die Idee, ein Sensor-Shield oder Breakout zu bauen. Dabei habe ich aber mimmer wieder das Problem, dass ich auf dem Prozessor die jeweiligen Protokolle des Sensors implementieren muss und mir dann recht schnell die Puste ausgeht. Ausserdem hätte ich gerne eine einheitliche Art, die Sensoren auszulesen.
Nun bin ich auf die Idee gekommen, ein SensorNode zu definieren, welches folgende Eigenarten hat:
  • Eine SensorNode für jeden Messbereich (z.B. SensorNode-Temperatur)
  • EEPROM für Datenspeicherung und Analyse
  • definierte IO Ports (RX,TX,SCK,MOSI,MISO,SS,SDA,SCL,Vcc,GND => 10pol Wannenstecker?) - 5V tolerant
  • PIC32MX250 prozessor (28-SSOP) mit SensorNode Firmware
    • update nur über PICKIT Schnittstelle
    • I2C, SPI und UART interface/API
    • Messwertanalyse auf dem Prozessor
    • API zur Messwertauslese

Wenn jemand Lust hat, dabei mitzuwirken, dann ist er herzlich eingeladen. Meine Idee ist noch ganz am Anfang, bin also bereit, alles komplett umzuändern.
(SensorNode -> HelveVeSens  ;) )
Ciao, Mathias

boxtec-support

  • Moderator
  • Hero Member
  • *****
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
Re: Sensor Node
« Reply #1 on: May 09, 2017, 12:54:03 PM »
Hallo Mathias,

Sehr spannende Idee. Ich bin an einem ähnlichen Projekt, möchte aber IP-Netzwerke zum Transport nutzen, Sicherheit von Anfang an einplanen und die Möglichkeit von Updates "over-the-air" oder "over-the-wire" haben.
Ich brauche daher eine etwas leistungsfähigere Plattform und hab mich für den wireless Teil für den ESP8266 entschieden. Ein erstes Board mit dem ESP8266-ESP01 arbeitet hier bereits recht gut (aber wacklig), leider ist mein Sketch nun bereits zu gross für Flash Updates über das Netzwerk und ich musste auf den ESP8266-ESP12 umsteigen. Da hab ich grad eben meine bestellten PCBs erhalten die nun in den nächsten Tagen getestet werden sollen:



In einem zweiten Schritt möchte ich mich an ein Board mit Ethernet Schnittstelle wagen, da hat Microchip die letzten Wochen einige interessante Produkte rausgebracht die ich mir noch näher ansehen möchte:

http://www.microchip.com/design-centers/ethernet/ethernet-devices/technology/gigepack

Am Ende werde ich aber wohl den Weg des geringeren Widerstands mit einer minimalen openWrt Plattform gehen, die Verlockung des schnellen Erfolgs (und des tiefen Preises für ein minimales Modul) sind da wohl zu gross.

Bin aber auch sehr gespannt auf die HelveSense Idee und werde gerne wo ich kann mithelfen.

Viele Grüsse - Christoph

MathiasW

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 614
  • Karma: +13/-0
    • my Arduino page
Re: Sensor Node
« Reply #2 on: May 09, 2017, 04:13:04 PM »
Salut Christoph,

die Idee des SensorNode ist es, die gesamte Messwertverarbeitung zu übernehmen und über eine einheitliche API anzubieten. Das hindert Dich nicht daran, diese dann über einen ESP32 (daher UART Schnittstelle) auszulesen. Inzwischen denke ich an zwei Wannenstecker mit 2x3 Pins: Einen mit rx,tx,sda,scl,GND,Vdd und einen mit Mosi, Miso, SCK, SS, GND, VDD in der Anordnung wie beim Arduino ISP.
Es gibt übrigens auch einen chipKIT bootloader, der statt USB den UART verwendet, so dass man auch darüber die Firmware des SensorNode vom ESP32 aus updaten könnte.

Ciao, Mathias

achim

  • freakyfriday
  • Full Member
  • *
  • Posts: 175
  • Karma: +6/-0
Re: Sensor Node
« Reply #3 on: May 09, 2017, 05:54:07 PM »
Hallo
finde die Idee damit sehr gut. Vielleicht ist auch was für mich dabei. Bin auch gerade am ESP12 dran. Möchte aber die Version NodeMCU nutzen. Ist schon von 5V auf 3V gesetzt und hat einen USB Anschluss. Die Daten vom ESP12 sind richtig gut. Bin gespannt
achim

MathiasW

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 614
  • Karma: +13/-0
    • my Arduino page
Re: Sensor Node
« Reply #4 on: May 10, 2017, 09:29:48 AM »
Salut,

weiteres Grübeln hat mich nun dazu bewogen, nur zwei Interfaces zu unterstützen: I2C und UART. Der Grund liegt darin, dass in der 28-pin Version des PIC32 die beiden UART und der SPI einen gemeinsamen Pin haben. Das kann ich am Chip lösen, wenn ich die Kontrolle habe, nicht aber, wenn ich einen UART zur Kommunikation frei haben muss. Die Alternative wäre, dass ich den 44-pin Chip verwende, der aber schwerer zu löten ist. Zum Start daher erst einmal die I2C/UART Variante.

Als ersten Sensor will ich Temperatursensoren verwenden. Hat jemand eine guten Vorschlag? Auf dem SensorNode-T will ich mehrere Sensoren vorsehen.

Ciao, Mathias

boxtec-support

  • Moderator
  • Hero Member
  • *****
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
Re: Sensor Node
« Reply #5 on: May 10, 2017, 12:40:45 PM »
Hallo Mathias,


Als ersten Sensor will ich Temperatursensoren verwenden. Hat jemand eine guten Vorschlag? Auf dem SensorNode-T will ich mehrere Sensoren vorsehen.


Ich denke für Temperatur alleine kommt man um den bewährten DS18B20 fast nicht herum. Wenns genauer werden soll ist wohl immer noch der traditionelle PT100 die erste Wahl. Wenn Feuchte ins Spiel kommt sind die Si7021 chips recht populär, aber auch die oberen der DHT-Reihe (33 und 44) leisten bei mir seit Jahren sehr gute Arbeit.

Grüsse - Christoph

arduinopraxis

  • freakyfriday
  • Hero Member
  • *
  • Posts: 553
  • Karma: +11/-0
  • Arduino Praxiseinstieg (4.Auflage)
    • Arduino Praxiseinstieg, 4. Auflage
Re: Sensor Node
« Reply #6 on: May 15, 2017, 09:43:32 PM »
Hallo Mathias
Quote
Nun bin ich auf die Idee gekommen, ein SensorNode zu definieren, welches folgende Eigenarten hat:
Eine SensorNode für jeden Messbereich (z.B. SensorNode-Temperatur)
EEPROM für Datenspeicherung und Analyse
definierte IO Ports (RX,TX,SCK,MOSI,MISO,SS,SDA,SCL,Vcc,GND => 10pol Wannenstecker?) - 5V tolerant
PIC32MX250 prozessor (28-SSOP) mit SensorNode Firmware
update nur über PICKIT Schnittstelle
I2C, SPI und UART interface/API
Messwertanalyse auf dem Prozessor
API zur Messwertauslese

Das Projekt hört sich gut an.

Für mich stellen sich folgende Fragen:
-Zielanwendungen
-Baugrösse
-Wie sieht es mit der Spannungsversorgung aus? Batterie, Lipo oder doch via USB?

Sensor Nodes baue ich bekanntlich schon seit etlichen Jahren. Dabei müssen die Nodes klein und sparsam mit Stromverbrauch sein.
Dein Sensor Node hört sich fast wie eine "eierlegende Wollmilchsau" an  ;)

Für einen Temperatursensor ist die Lösung zu komplex.
In der Praxis liegen die Messpunkte für Temperatur-Sensoren meist weiter auseinander. So ist es auf jeden Fall in meinem Haus/Garten.

Ich würde auf einen kleinen, schlanken Sensor Node tendieren der maximal 2 oder 3 Eingänge hat, die auch unterschiedlich sein können. Ich habe beispielsweise in meinem Keller einen Sensor Node mit PIR, Temp und LDR.

Bei deinem Projekt beteilige ich mich aber gerne und bringe meine Ideen und Erfahrungen ein.

Gruss
Thomas

arduinopraxis

  • freakyfriday
  • Hero Member
  • *
  • Posts: 553
  • Karma: +11/-0
  • Arduino Praxiseinstieg (4.Auflage)
    • Arduino Praxiseinstieg, 4. Auflage
Re: Sensor Node
« Reply #7 on: May 15, 2017, 09:47:43 PM »
Quote
Als ersten Sensor will ich Temperatursensoren verwenden.
Ich empfehle die DS18B20 oder dann integrierte Umweltsensoren wie DHT33 oder einen SHT3x von Sensirion.

Diese integrierten Sensoren messen Temperatur und Luftfeuchtigkeit.

Neu ist auch der BMP280 ein spannendes Bauteil das zusätzlich noch Luftdruck messen kann.

PT100-Sensoren sind im Maschinenbau weit verbreitet und kosten natürlich etwas mehr.

Gruss Thomas

arduinopraxis

  • freakyfriday
  • Hero Member
  • *
  • Posts: 553
  • Karma: +11/-0
  • Arduino Praxiseinstieg (4.Auflage)
    • Arduino Praxiseinstieg, 4. Auflage
Re: Sensor Node
« Reply #8 on: May 15, 2017, 09:55:35 PM »
Hallo Mathias,
Quote
die Idee des SensorNode ist es, die gesamte Messwertverarbeitung zu übernehmen und über eine einheitliche API anzubieten.
Wieso machst du nicht einfache und kompakte Sensor Nodes und ein zentrales Gateway-Board für die Messwertverarbeitung?
Das Gateway könnte auch ein HAT für RPi oder ähnlich sein. Mit einem RPi kannst du dann auch Node-Red und MQTT nutzen.

Mit diesem Ansatz kann man unterschiedliche Sensor Node, auch solche mit ESP12 verwenden. Das habe ich so bei mir im Einsatz. Sensor Node mit RFM12B, RF-Modulen inkl. den Empfängermodulen. Meine Raspi empfangen die Daten und verarbeiten diese mit MQTT. Zusätzlich Emoncms und eine Instanz der Homeautomation-Lösung Home Assistant.


Gruss
Thomas

MathiasW

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 614
  • Karma: +13/-0
    • my Arduino page
Re: Sensor Node
« Reply #9 on: May 16, 2017, 02:47:43 PM »
Salut Thomas,

der aktuelle Entwurf des PCB läuft langsam darauf hinaus. Der generische Teil gruppiert sich auf einer Seite und kann problemlos abgetrennt werden und als eigenes Gateway mit Anaylsefunktion programmiert werden. Wenn ich es als Hat aufsetzen will komme ich aber langsam nicht mehr um den TQFP-44 Chip herum, was ich aber vermeiden wollte. Es wird dann wohl darauf hinaus laufen, dass der SensorNode nur via UART und I2C angesprochen werden kann, da SPI und UART sich Pins teilen.

Ein Pi-Hat wird viel PCB-Fläche für den Anschluss verbrauchen. Wäre gerne innerhalb von 5x5 cm geblieben.

Ciao, Mathias

arduinopraxis

  • freakyfriday
  • Hero Member
  • *
  • Posts: 553
  • Karma: +11/-0
  • Arduino Praxiseinstieg (4.Auflage)
    • Arduino Praxiseinstieg, 4. Auflage
Re: Sensor Node
« Reply #10 on: May 16, 2017, 03:33:33 PM »
Hallo Mathias,

Quote
der aktuelle Entwurf des PCB läuft langsam darauf hinaus. Der generische Teil gruppiert sich auf einer Seite und kann problemlos abgetrennt werden und als eigenes Gateway mit Anaylsefunktion programmiert werden.
OK, Trennung von Node-und Gateway-Funktion macht Sinn.

Quote
Wenn ich es als Hat aufsetzen will komme ich aber langsam nicht mehr um den TQFP-44 Chip herum, was ich aber vermeiden wollte. Es wird dann wohl darauf hinaus laufen, dass der SensorNode nur via UART und I2C angesprochen werden kann, da SPI und UART sich Pins teilen.
 
Wie willst du Daten von einem Sensor-Node einlesen wenn dieser im Keller oder im Garten platziert ist. Ist da ein Buskabel mit seriellem Bus die beste Lösung?
Planst du den alle Sensor Nodes über serielle Bus abzufragen?


Quote
Ein Pi-Hat wird viel PCB-Fläche für den Anschluss verbrauchen. Wäre gerne innerhalb von 5x5 cm geblieben.
50x50mm ist nicht wirklich die optimale Lösung für ein Pi-Hat.
Ich würde für das Gateway die PCB-Grösse nutzen die Sinn macht. Bei 50x50mm geht es wohl um die PCB-Kosten.

Gruss
Thomas

arduinopraxis

  • freakyfriday
  • Hero Member
  • *
  • Posts: 553
  • Karma: +11/-0
  • Arduino Praxiseinstieg (4.Auflage)
    • Arduino Praxiseinstieg, 4. Auflage
Re: Sensor Node
« Reply #11 on: May 16, 2017, 03:58:44 PM »
Quote
Ich bin an einem ähnlichen Projekt, möchte aber IP-Netzwerke zum Transport nutzen, Sicherheit von Anfang an einplanen und die Möglichkeit von Updates "over-the-air" oder "over-the-wire" haben.
Ich brauche daher eine etwas leistungsfähigere Plattform und hab mich für den wireless Teil für den ESP8266 entschieden.
Drahtlose Sensor Nodes mit ESP8266 ermöglichen auch viele Anwendungen. Ich habe auch einige drahtlose Nodes, die über USB-Netzteil versorgt werden und spezifische Sensoraufgaben übernehmen. Die Daten können dabei direkt an mein Emoncms oder an einen MQTT-Broker übermittelt werden.
Dazu verwende ich die kleinen Wemos D1 Mini - Module (https://www.wemos.cc/product/d1-mini.html).
Die Module sind so günstig, da lohnt sich fast kein eigener Aufbau eines PCB. Ich nutze für die Wemos eigene Shields für die saubere und stabile Anschlusstechnik.

Gruss
Thomas

boxtec-support

  • Moderator
  • Hero Member
  • *****
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
Re: Sensor Node
« Reply #12 on: May 16, 2017, 04:12:20 PM »
Quote
Ich bin an einem ähnlichen Projekt, möchte aber IP-Netzwerke zum Transport nutzen, Sicherheit von Anfang an einplanen und die Möglichkeit von Updates "over-the-air" oder "over-the-wire" haben.
Ich brauche daher eine etwas leistungsfähigere Plattform und hab mich für den wireless Teil für den ESP8266 entschieden.
Drahtlose Sensor Nodes mit ESP8266 ermöglichen auch viele Anwendungen. Ich habe auch einige drahtlose Nodes, die über USB-Netzteil versorgt werden und spezifische Sensoraufgaben übernehmen. Die Daten können dabei direkt an mein Emoncms oder an einen MQTT-Broker übermittelt werden.
Dazu verwende ich die kleinen Wemos D1 Mini - Module (https://www.wemos.cc/product/d1-mini.html).
Die Module sind so günstig, da lohnt sich fast kein eigener Aufbau eines PCB. Ich nutze für die Wemos eigene Shields für die saubere und stabile Anschlusstechnik.

Gruss
Thomas

Hi Thomas,

Die ESP8266 und darauf basierende Produkte wie die Wemos sind grade für zuhause hervorragend geeignet. Einzig die etwas geringe Reichweite ohne externe Antenne begrenzt den Spass etwas.
Da mein Projekt in einem professionellen Umfeld arbeiten soll, gewinnen auch Dinge wie eine CE Zertifizierung an Stellenwert. Daher hab ich mich nach langem Überlegen für den Dragino MS14S entschieden und bin nun dran eine eigene OpenWrt basierende Firmware zu braten. Diese soll unter anderem auch Zugriff auf verschiedene Firmware Images für den integrierten ATmega haben, so dass an den Schraubklemmen so gut wieder jeder Sensor für den ich eine Firmware vorbereitet habe angeschlossen werden kann und es nicht nur auf Temperatur begrenzt bleibt.

Aber für meine eigenen kleinen Projekte bleibe ich bei dem ESP8266, jedoch nur noch bei den grösseren oder anders gesgt nicht mehr ESP01.

Grüsse - Christoph

MathiasW

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 614
  • Karma: +13/-0
    • my Arduino page
Re: Sensor Node
« Reply #13 on: May 16, 2017, 07:30:53 PM »
Salut,

ich habe mit "SensorNode" wahrscheinlich den falschen Namen gewählt, da "Node" wohl Netzwerk/WLAN etc assoziiert. Die Platine soll in direktem Weg via I2C/UART mit einem Verbraucher reden. Ziel ist es, eine einheitliche SensorAPI zu bieten. An den I2C oder UART kann ich dann Arduino, chipKIT, Raspberry, ESP32, PC, "The Machine" hängen. Die Rechenkraft des Prozessors will ich nutzen, um den Sensor zu kalibrieren, Analysen laufen zu lassen etc. Dazu werde ich auch ein EEPROM einbauen, was dann auf dem zweiten I2C Bus liegt, damit es keine Überschneidungen gibt, wenn mehr als eine Node auf einem I2C bus liegen. Den Prozessor kann ich auch auf eine freie I2C Addresse programmieren, so dass ich recht viele Nodes auf den Bus legen kann.
Über UART kann ich natürlich jederzeit einen ESP zum senden anhängen...

Für I2C und UART brauche ich eigentlich nicht den ganzen PI-bus, was wieder eine kleinere Platine ermöglicht. Wenn ich Grove Kabel verwende, kann ich auch einen einfachen PI-Adapter bauen.

Ciao, Mathias

arduinopraxis

  • freakyfriday
  • Hero Member
  • *
  • Posts: 553
  • Karma: +11/-0
  • Arduino Praxiseinstieg (4.Auflage)
    • Arduino Praxiseinstieg, 4. Auflage
Re: Sensor Node
« Reply #14 on: May 16, 2017, 09:36:12 PM »
Hallo Mathias,
Quote
ich habe mit "SensorNode" wahrscheinlich den falschen Namen gewählt, da "Node" wohl Netzwerk/WLAN etc assoziiert.
Unter Sensor-Node verstehen die meisten wohl etwas anderes. So auch ich.

Wo dein Board, ich nenn es mal Sensor-Board, konkret eingesetzt wird, habe ich noch nicht verstanden.
Vielleicht kannst du mal einen konkreten Anwendungsfall schildern wo du z.Bsp einen Temperatursensor einsetzen willst. Ein Blockdiagramm würde vielleicht auch helfen.

Augenblicklich sehe ich nicht wer wo am Bus was machen soll

Gruss
Thomas



 

anything