Amateurfunk verbindet Menschen in der ganzen Welt

Nano-Logger

Die Datenlogger Software habe ich für den Arduino Nano angepasst. Das kleine Multitalent gibt es mittlerweile als Klon zum Minipreis; etwa bei eBay. Da bietet der Nano sich natürlich an, ihn für vielseitige Aufgaben einzusetzen.

Dieses Programm sendet die acht Analogkanäle über die USB Schnittstelle an den PC. Einziges Manko ist die geringe Auflösung von 10 Bit. Der Eingangsbereich geht von 0 - 5V. Die Auflösung beträgt somit nur 4,882 mV; im Gegensatz zu den 15,625 µV des 18-Bit-Datenloggers. Die Ausgabe aller Messwerte erfolgt nach der Erfassung  aller 9 Kanäle. In Kanal 9 wird die Spannung der internen 1,1V Band Gap Referenz  ausgegeben.  Nach der Ausgabe aller 9 Messwerte wird dann eine Pause von einer Millisekunde eingefügt, da die Übertragung ohne Handshake und Flusskontrolle stattfindet. 

Als Referenzspannung wird die interne Band Gap Referenz verwendet und auf 5V normiert. Man kann zwar auch die interne Referenzspannung wählen, hat aber dann auch nur einen Messbereich von 1,1V, was doch etwas gering erscheint. In Kanal 9 wird der Wert für die 1,1V der Band Gap Referenz ausgegeben. Die Angabe erfolgt in Millivolt, also etwa 1095 - 1105 mV. Da die Berechnung der 5V Referenzspannung sich aber auf diese 1,1V bezieht, wird hier natürlich immer ein korrekter Wert angezeigt.

Da der Wert der Band Gap Referenz - laut Datenblatt - von 1,0 bis 1,2V differieren kann, sind genaue Messungen eher Zufall. Um genau zu messen, sollte man eine Vergleichsmessung mit dem Multimeter machen und in der Auswerte-Software einen Faktor angeben, um den Fehler  möglichst klein zu halten. Dieser Faktor ist für alle Kanäle gleich, auch für Kanal 9 , da er sich auf die Abweichung der Band Gap von 1,1 V bezieht und er gilt natürlich nur für den Nano, für den er ermittelt wurde.

Für die folgende Abbildung wurde dieser Faktor wie folgt ermittelt:
Korrekturfaktor = Sollwert / Istwert = 4V / 4,065V = 0,984.


Darstellung ohne und mit Korrekturfaktor (Kanal 1 aktiv mit 4 Volt)

                       
                       Eingabemaske für die Kanaleigenschaften

Die  Auswertung kann auch hier mit einem Terminalprogramm erfolgen. Ausgelegt ist das Datenformat aber für den Betrieb mit dem Programm "RealView" von ABACOM. Alle Kanäle können hier gleichzeitig dargestellt  werden. 


Nano Klon als 8-Kanal 10-Bit-Datenlogger

Mittlerweile gibt es auch eine 1,1V-Version, welche die interne 1,1V Referenz verwendet. Die Auflösung (LSB) beträgt dann nur noch 1,074 mV gegenüber 4,882 mV bei der 5V-Version.

Wer einen Nano als 8-Kanal 10-Bit-Datenlogger z.B. mit der Software "RealView" betreiben möchte, kann hier beide Hex-Files zum Programmieren runterladen.

 Alle Einstellungen sind analog zum "18-Bit Datenlogger" vorzunehmen.

Alternative Software
Der Nano-Logger kann auch z.B. mit der Software ComVisu
von Janik Österle betrieben werden. Diese Software ist für den privaten Gebrauch Freeware. Auch hiermit ist eine komfortable Auswertung der 8 Kanäle möglich. Die Software ist in einer separaten PDF-Datei (in deutsch!)  sehr gut beschrieben. Das Datenformat und die mathematischen Möglichkeiten der Behandlung von Eingangsdaten wird detailliert erläutert.


Screenshot der ComVisu Oberfläche

Für das obige Beispiel wurden, zur Demonstration, einige Instrumente auf der Oberfläche platziert. Weitere Instrument können beliebig platziert werden und auch Bedienelemente, wie Taster und Schalter können auf der Oberfläche platziert werden. Mit deren Hilfe können dann auch Kommandos zum sendenden Gerät übermittelt werden.

Allerdings werden von ComVisu die Daten in einem anderen Format verarbeitet. Das Protokoll habe ich entsprechend angepasst, sodass der Nano-Logger mit ComVisu kompatibel ist. Auch hier kann der Eingangswert bei Bedarf entsprechend korrigiert werden. Der Eingangswert kann einfach mit einem Korrekturwert angepasst werden.

Beispiel Eingang 1:  #1 * 0,984

Im Eingangsfeld wird einfach die Kanalnummer - mit vorangestelltem Doppelkreuz - mit dem entsprechenden Korrekturwert multipliziert.

Wer den Nano-Logger mit ComVisu verwenden möchte, kann hier die entsprechende Hex-Files (1,1V und 5V-Version) für die Programmierung runterladen.

Hier nochmal die technischen Parameter:

9600 Bd
8 Bit
1 Stoppbit
no Parity

keine Flusskontrolle

Kanal 1 - 8 Messwerte, 0 - 4,5V oder 0 - 1,1V, Ausgabe in Millivolt 
Kanal 9 Messwert 1,1V interne Bandgap, Ausgabe in Millivolt 

Daten-Format: #xFxxxx,xxxxx;
Mit Beispielwerten für Kanal 4:  #4F1354,34271
;

# = Header
4 = Kanalnummer
1354,34271 = Messwert in Millivolt
, = Dezimaltrenner
; = Separator

Nano-Logger Blue

Mit einem Bluetooth-Modul kann der Nano-Logger dann auch mit dem Smartphone oder Tablet genutzt werden. Das Protokoll ist für die Android-App "Bluetooth Terminal/Graphics" ausgelegt. Hiermit können 7 Analogkanäle aufgezeichnet werden.

Für den "Nano-Blue" habe ich zwar einen kleinen Print entworfen, aber das bekommt man auch problemlos auf einer Lochrasterkarte hin. Es ist nur ein Spannungsteiler für das Tx-Signal des Nano erforderlich, da die Modul-Signale für 3,3V ausgelegt sind. Die Spannungsversorgung des Moduls kann aber 5V betragen. Diese werden dem Nano-Modul entnommen.

Softwareseitig waren hier keine Anpassungen notwendig, da das Modul mit Original-Namen und Password verwendet wird. Der Name ist "HC-06" und das Password "1234". Lediglich das Ausgabeformat der Daten wurde auf die Android-App angepasst und beim Programmstart wird eine 3 Sekunden Pause eingelegt, damit der AT-Modus vom Modul beendet wird, bevor Daten gesendet werden. Intern wird zwar auch das Status-Signal abgefragt, aber da gibt es keinerlei Änderungen. Es ist auch nicht auf den Stecker geführt und der Anschluss am Modul ist auch nicht verlötet. Also offenbar ohne Funktion.


Testaufbau mit dem Bluetooth-Modul HC-06


Endgültiger Aufbau auf PCB


Schaltbild des Nano-Blue


Auswertebeispiel mit dem Tablet und der Android-App "Bluetooth Terminal/Graphics": Bodenschallaufnehmer, 1 Kanal

Wer sich für diese Version interessiert, kann sich hier die HEX-Files zum Programmieren runterladen. Auch hier gibt es wieder beide Versionen. Die für 1,1V und die 5V Version.

Nano-Logger-Wifi

Eine weitere Version ist der Nano mit Wifi-Modul ESP8266. Auch hier gilt, das bekommt man ohne Probleme auf einer Lochrasterkarte unter. Als Auswerte-Software ist auch hier das Programm "ComVisu" vorgesehen.

Entgegen meinem ursprünglichen Vorhaben, ist der Nano-Logger-Wifi nicht als Access Point realisiert, damit der Empfänger-PC im Heim-Netz verbleiben kann. Vielleicht realisiere ich später noch eine AP-Version. Damit das Programm universell verwendbar ist, sind SSID und Password für den Netzzugang im EEPROM abgelegt.


Aufbau der Hardware auf PCB


Schaltbild Nano-Logger-Wifi

Hier ist noch ein zusätzlicher 3,3V Spannungsregler verbaut, da das Modul mit 3,3V arbeitet. Die, vom Nano-Modul bereitgestellten 3,3V, können nicht verwendet werden, da diese Spannung nur mit max. 50mA belastet werden kann. Der Display-Anschluss ist nicht in Funktion. Der diente nur dazu, während der Programmierung Infos auszugeben.

Der Nano arbeitet im Home-Netz als Client. Die Messdaten werden per UDP-Protokoll an die IP-Adresse 192.168.178.101, Port 45000 gesendet. Das ist der Adressbereich, den die meisten Router abbilden. Dem Nano wird vom DHCP des Routers eine IP-Adresse zugewiesen. Dem Empfänger muss manuell die Adresse 192.168.178.101 zugewiesen werden. Das ist im Router einstellbar und auch, dass immer die gleiche IP zugeordnet wird. Sollte jemand einen anderen Adressbereich als 192.168.178.xxx benötigen, muss das im Programm geändert werden. Also bitte bei mir melden, ich generiere dann eine entsprechende Version.

Der Nano-Logger-Wifi sendet über die - ihm vom DHCP des Routers - zugewiesene IP-Adresse und den eigenen Port 45000.


Einstellung der UDP-Verbindung in ComVisu

Das obige Bild zeigt die erforderlichen Einstellungen. Beide IP-Adressen und die Ports eingeben, fertig.


ComVisu Oberfläche, wieder mit der Darstellung des Bodenschallaufnehmers

Das UDP-Protokoll ist - anders als TCP - ein verbindungsloses Protokoll und für zeitkritische Übertragungen gut geeignet. ComVisu erkennt also nicht, ob die Gegenstelle überhaupt vorhanden ist. Das Programm "lauscht" einfach am angegebenen Port und wartet auf Daten. Im Fehlerfall werden - im Gegensatz zu TCP - auch keine neue Pakete angefordert. (Wie wir hier in Köln sagen: "Watt fott es es fott")

Damit das Programm verwendet werden kann, müssen zunächst alle Zugangsdaten - AT-Kommando, SSID, Password und CRLF - im EEPROM abgelegt werden. 
 Im Detail sieht das dann so aus:
          AT+CWJAP_CUR="Heimnetz","SicheresPassword"CRLF

Heimnetz = SSID (in ASCII)
SicheresPassword = Password (in ASCII) 

Die Länge der gesamten Zeichenkette ist auf  60 Zeichen begrenzt.

Ursprünglich wollte ich nur SSID und Password im EEPROM ablegen. Offenbar gibt es im Compiler aber Probleme bei der String-Verarbeitung. Wenn der komplette String aus dem EEPROM gelesen wird funktioniert es. Wenn ich den String zusammensetze, funktioniert es nicht, obwohl im Test auf dem Display alles richtig ausgegeben wird. 

 Am einfachsten erledigt man den Eintrag in ein Intel-Hex-File für das EEPROM mit einem entsprechenden Editor, der ein entsprechendes Hex-File für die Programmierung erzeugen kann.

Einen guten Editor findet man hier. Damit kann man ein entsprechendes Intel-Hex-File erzeugen. Das Programm "Ponyprog" ist zwar ein Programmiertool, aber der EEPROM Editor kann standalone verwendet werden.


Bildschirm-Dump Ponyprog, EEPROM-Editor

Der Anmeldestring kann in einem Zug eingegeben werden. Lediglich CR und LF müssen einzeln eingegeben werden.

Wer kein Hex-File für den Programmer erzeugen kann, der kann mir die Zugangsdaten senden und bekommt ein HEX-File zurück.

Ohne einen Eintrag im EEPROM startet das Programm nicht und die LED an D13, blinkt im Sekundentakt.

Wer einen Nano mit dem Wifi-Modul ESP8266 und dem Programm "ComVisu", betreiben möchte, kann die Software hier herunter laden. Es sind auch hier beide Versionen für 1,1V und 5V vorhanden.

Hier noch einige Anmerkungen zum Wifi-Modul ESP8266:
Das Modul bietet sich an, wenn man "irgendwas" via Wifi anbinden will. Der Preis für dieses Modul liegt fast überall unter 5€. Das Beste aber ist, man kann das Modul komplett über die serielle Schnittstelle steuern. Und zwar - wie in uralten Telefon-Modem-Zeiten - über AT-Befehle.

Hier noch die Initialisierungssequenz für die hier beschriebene Anwendung:

AT+RST
AT+CWMODE_CUR=1                            (1=Client, 2=AP, 3=AP + Client)
AT+CWJAP_CUR="SSID","PSWWD"      (Anmeldung am Heim-Netz)
AT+CIPMODE=0                                    (0=normal, 1=Passthrough Mode)
AT+CIPMUX=0                                       (Nur Einzelverbindung)
AT+CIPSTART="UDP","Ziel-IP",Ziel-Port,Source-Port,UDP-Mode

Diese Sequenz muss nur einmal beim Start absolviert werden.
Die Messwerte werden danach mit folgendem Befehl gesendet:

AT+CIPSEND=Paketlänge   (Anzahl Bytes)

Nach diesem Befehl antwortet das Modul mit ">" und alles, was dann über die serielle Schnittstelle gesendet wird, wird mittels UDP-Protokoll an die - im AT+CIPSTART-Befehl - angegebene IP gesendet. Aber erst, wenn die Paketlänge aus dem AT+CIPSEND-Befehl erreicht ist.  Jedes weitere Daten-Paket wird erneut mit AT+CIPSTART und der Paketlänge gestartet.

Alle Kommandos müssen jeweil mit CR/LF abgeschlossen werden!

Das waren jetzt nur einige AT-Kommandos, die für den Betrieb mindestens gebraucht werden. Da gibt es noch eine große Menge weiterer Kommandos mit dem man das Modul steuern kann. Da lädt man sich aber am Besten die entsprechende Doku aus dem Internet. Zum Beispiel hier.

Nano-Logger


Datenlogger mit  dem  Arduino Nano

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Nano-Logger Blue

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Nano-Logger Wifi