11
Nano-Ultraschall-Distanz-Sensor-Wifi Beschreibung Autor: Hans-Peter Prast, DL2KHP Stand: 02.09.2017 C:\Users\pepe\Eigene_Dateien\Funk\Projekte\Arudino_Nano\US_Sensor\US_Sensor_Wifi\Nano-US-Sensor-Wifi_Doku.odt Datum: 02.09.17 Seite 1

Nano-Ultraschall-Distanz-Sensor-Wifidl2khp.de/media/files/Nano-US-Sensor-Wifi_Doku.pdf · Bildschirm-Dump PonyProg, EPROM-Editor EEPROM Belegung: 0x0000 Korrekturwert Temperatur,

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

  • Nano-Ultraschall-Distanz-Sensor-Wifi

    Beschreibung

    Autor: Hans-Peter Prast, DL2KHP

    Stand: 02.09.2017

    C:\Users\pepe\Eigene_Dateien\Funk\Projekte\Arudino_Nano\US_Sensor\US_Sensor_Wifi\Nano-US-Sensor-Wifi_Doku.odt Datum: 02.09.17 Seite 1

  • Der Nano Ultraschall-Sensor-Wifi ermittelt die Entfernung zu einem Hindernis bis etwa 4,5m. Die Messung startet mit dem Aussenden eines Impulses von 50 MikrosekundenLänge. Danach muss auf die positive Flanke des Wandler-Moduls gewartet werden. Mitder positiven Flanke des Echoeingangs startet die Laufzeitmessung, welche durch diefallende Flanke des Signals beendet wird. Der Impuls wird am Ausgang D13 des Nanovisualisiert. Die auf dem Nano an diesen Port angeschlossene LED blinkt bei jedemImpuls kurz auf. Die LED-Anzeige wird zurückgesetzt, wenn der Echo-Impuls "high" wird.Das ist die Kontrolle, dass der Puls gesendet und ein Echo empfangen wurde.

    Timing-Diagramm des verwendeten US-Moduls

    Aus der Impuls-Laufzeit wird anschließend die Distanz in cm berechnet und dieser Wert ineiner Textvariablen abgelegt. Dieser Wert wird als Distanz in cm ausgegeben.

    Durch einen Tastendruck auf den Taster "Set Rel" wird eine weitere Variable mit demaktuellen Distanzwert geladen. Dieser Wert wird im EEPROM abgelegt und bei jedemStart - als Bezugswert für die Relativmessung - wieder geladen. Der Vorgang kannbeliebig wiederholt werden. Mit Hilfe dieser Variablen wird ein relativer Distanzwerterrechnet und als zweiter Wert ausgegeben. Der Taster „Set-Rel“ befindet sich auf demBasisbord und parallel auf dem Display-Board. Beide Taster sind funktionsgleich.

    Der Port D12 des Nano (PB4), wird als Alarmausgang "high" geschaltet, wenn der"Relative Distanz" Wert > 0 wird. Wenn der Wert dann den Differenzwert (im EEPROM anAdresse 0x0008 in cm) wieder unterschreitet, wird der Port wieder "low". Diese Differenzbleibt immer gleich, auch wenn der Relativ-Wert neu gesetzt wird. Wenn kein Wertprogrammiert wird, ist der Defaultwert 50cm. Damit können z.B. Pegelstände überwachtwerden. Die "Set Rel" Taste muss dann bei maximalem Pegelstand betätigt werden.

    C:\Users\pepe\Eigene_Dateien\Funk\Projekte\Arudino_Nano\US_Sensor\US_Sensor_Wifi\Nano-US-Sensor-Wifi_Doku.odt Datum: 02.09.17 Seite 2

  • Über den internen Temperatursensor wird die Umgebungstemperatur ermittelt und dieSchallgeschwindigkeit entsprechend der Lufttemperatur angepasst. Ein Korrekturwert in°C kann im Speicherplatz 0 des EEPROM eingetragen werden. Der Eintrag muss alsShort-Integerwert im Sedezimalformat - mit Vorzeichen - eingetragen werden(Zweierkomplement). Wertebereich -128 bis 127. Ein Beispiel: Die Anzeige muss um 5 °C nach oben korrigiert werden. Eintrag: 0x05. Die Anzeige muss um 5 °C nach unten korrigiert werden. Eintrag: 0xFB.Die Erklärung: Positive Werte können einfach als Hex-Wert eingetragen werden.Bei den negativen Werten muss das Zweierkomplement gebildet werden. Im Prinzip istdas auch nicht schwer. Es wird das Einerkomplement gebildet und 1 addiert.Am Einfachsten geht das, wenn man mit Binärzahlen arbeitet.Rechenbeispiel mit Binärzahlen:

    5 = 0000 0101Einerkomplement = 1111 1010 Zweierkomplement = 1111 1010 + 1 = 1111 1011 = 0xFB. Am Einfachsten geht das mit dem Windows-Rechner. Dezimalzahl eingeben, Auf „BIN“drücken. Das lässt sich dann einfach invertieren und 1 dazu addieren ist dann auch keinHexenwerk mehr.

    Die Werte werden über die serielle Schnittstelle an das WIFI-Modul ausgegeben. DerAbstand der Aussendung kann im EEPROM, Adresse 0x0002 - 0x0003, eingestelltwerden. Der Wert darf zwischen 1 und 1650 (Sek.) liegen. Defaultmäßig werden alle 10Sekunden die Messwerte gesendet. Die Ausgabe auf das optionale LCD-Display erfolgtdefaultmäßig jede Sekunde. Dieser Wert ist im Programm durch eine Konstantefestgelegt.

    Die Erfassung der Messwerte erfolgt kontinuierlich im Abstand von 100ms.

    Das Datenformat ist kompatibel zur Auswerte-Software "Comvisu". Mit dieser Softwarekann der Ultraschallsensor komfortabel ausgewertet werden.

    Screenshot Comvisu

    C:\Users\pepe\Eigene_Dateien\Funk\Projekte\Arudino_Nano\US_Sensor\US_Sensor_Wifi\Nano-US-Sensor-Wifi_Doku.odt Datum: 02.09.17 Seite 3

  • Ausgabeformat für Comvisu: Distanz;RelativeDistanz;Temperatur;Beisiel mit Werten: #1F123,4;#2F-23,4;#2F23;Grün = Format-Zeichen Blau = DatenRot = Feldtrenner

    Der Nano-US-Sensor-Wifi arbeitet im Home-Netz als Client. Die Messdaten werden perUDP-Protokoll an die IP-Adresse 192.168.178.101, Port 45000 gesendet. Das ist derAdressbereich, den die meisten Router abbilden. Dem Nano-US-Sensor-Wifi wird vomDHCP des Routers eine IP-Adresse zugewiesen. Dem Empfänger muss manuell dieAdresse 192.168.178.101 zugewiesen werden. Das ist im Router einstellbar und auch,dass immer die gleiche IP zugeordnet wird. Ein anderer Adressbereich als192.168.178.xxx, muss im Programm geändert werden.

    Das UDP-Protokoll ist - anders als TCP - ein verbindungsloses Protokoll und fürzeitkritische Übertragungen gut geeignet. Comvisu erkennt also nicht, ob die Gegenstelleüberhaupt vorhanden ist. Das Programm "lauscht" einfach am angegebenen Port undwartet auf Daten. Im Fehlerfall werden - im Gegensatz zu TCP - auch keine neue Paketeangefordert.

    Schnittstellenmaske von Comvisu

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

    C:\Users\pepe\Eigene_Dateien\Funk\Projekte\Arudino_Nano\US_Sensor\US_Sensor_Wifi\Nano-US-Sensor-Wifi_Doku.odt Datum: 02.09.17 Seite 4

  • 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"CRLFHeimNetz = SSID (in ASCII)SicheresPassword = Password (in ASCII)

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

    Am einfachsten erledigt man den Eintrag in ein Intel-Hex-File für das EEPROM mit einementsprechenden Editor, der ein entsprechendes Intel-Hex-File für die Programmierungerzeugen kann, z.B. das Programm PonyProg.

    Bildschirm-Dump PonyProg, EPROM-Editor

    EEPROM Belegung: 0x0000 Korrekturwert Temperatur, 1 Byte, Short-Integerwert (127 bis -128)0x0001 – 0x0002 Übertragungsturnus Wifi 1 - 1650 Sek., 2 Byte, Word0x0003 frei0x0004 – 0x0007 Referenzwert für Relativmessung, 4 Bytes, Real (nicht ändern)0x0008 – 0x0009 Differenzwert für Alarmabschaltung, 2 Bytes, Word0x0010 – 0x0046 Anmeldestring, maximal 60 Zeichen

    An Adresse 0x0010 muss der Anmeldestring eingetragen werden (max. 60 Zeichen).Der Anmeldestring kann in einem Zug eingegeben werden. Lediglich CR (0x13) und LF(0x0A) müssen einzeln eingegeben werden.An Adresse 0x0000 des EEPROM kann ein Korrekturwert für die Temperaturanzeigeeingegeben werden (Integer-Wert mit Vorzeichen, 1 Byte). Wird hier nichts eingetragen,wird als Default-Wert "0" angewendet.

    C:\Users\pepe\Eigene_Dateien\Funk\Projekte\Arudino_Nano\US_Sensor\US_Sensor_Wifi\Nano-US-Sensor-Wifi_Doku.odt Datum: 02.09.17 Seite 5

  • An Adresse 0x0001+2 kann die Pause zwischen der Wifi-Übertragung eingestellt werden.Hier kann ein Sekunden-Wert zwischen 1 und 1600 eingegeben werden. Wird nichtseingetragen, erfolgt die Übertragung alle 10 Sekunden.An Adresse 0x0004-7 steht der Referenzwert für die Relativ-Messung. Dieser Wert wirdvom Programm eingetragen und soll nicht manuell verändert werden.An Adresse 0x0008+9 kann ein Differenzwert zwischen 1 - 400 cm eingetragen werden.Dieser Wert ist die Hysterese zwischen Ein- und Ausschaltung des Alarmausganges.Dieser Wert ist fest an den Referenzwert gekoppelt. Wird hier nichts eingetragen, wird dieDifferenz mit einem Default-Wert von 50 cm eingestellt.Ob die Übertragung funktioniert, kann man mit der Terminalfunktion von Comvisu rechteinfach überprüfen.

    Terminal-Funktion von Comvisu

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

    C:\Users\pepe\Eigene_Dateien\Funk\Projekte\Arudino_Nano\US_Sensor\US_Sensor_Wifi\Nano-US-Sensor-Wifi_Doku.odt Datum: 02.09.17 Seite 6

    http://www.dl2khp.de/media/images/comvisu_terminal-02.jpg

  • Nano-Ultraschall-Distanz-Sensor

    Nano-Ultraschall-Distanz-Sensor mit optionalem Display

    C:\Users\pepe\Eigene_Dateien\Funk\Projekte\Arudino_Nano\US_Sensor\US_Sensor_Wifi\Nano-US-Sensor-Wifi_Doku.odt Datum: 02.09.17 Seite 7

  • C:\Users\pepe\Eigene_Dateien\Funk\Projekte\Arudino_Nano\US_Sensor\US_Sensor_Wifi\Nano-US-Sensor-Wifi_Doku.odt Datum: 02.09.17 Seite 8

  • Stückliste C1 = 10µ (Tantal Elko SMD "A", BestNr TAJ 3516 10/16, Reichelt)C2 = 100n (Keramik-Kondensator, BestNr X7R-G1206 100N, Reichelt)C3 = 10µ (Tantal Elko SMD "A", BestNr TAJ 3516 10/16, Reichelt)C4 = 10µ (Tantal Elko SMD "A", BestNr TAJ 3516 10/16, Reichelt) D1 = 1N4001 (Si-Diode, BestNr 1N 4001, Reichelt)D2 = 1N4001 (Si-Diode, BestNr 1N 4001, Reichelt) Jmp1 = Jumper Kl1 = Schraubklemme (Schraub-Klemmleiste 2pol, BestNr AKL 057-02, Reichelt)Kl2 = Schraubklemme (Schraub-Klemmleiste 2pol, BestNr AKL 057-02, Reichelt) M1 = ESP8266-12F (WIFI-Modul ESP8266-12, BestNr DEBO ESP8266, Reichelt)M2 = Arduino Nano (Arduino Nano, BestNr ARDUINO NANO, Reichelt) P1 = (Hohlstecker, BestNr LUM NEB 21R, Reichelt)PTC1 = 1k (KTY-81/110) (PTC-Temperatur-Sensor, BestNr KTY 81-110, Reichelt), optional

    R1 = 470 (Widerstand SMD 1206, BestNr SMD 1/4W 470, Reichelt)R2 = 1k (Widerstand SMD 1206, BestNr SMD 1/4W 1,0K, Reichelt)R3 = 1k (Widerstand SMD 1206, BestNr SMD 1/4W 1,0K, Reichelt)R4 = 2k (Widerstand SMD 1206, BestNr SMD 1/4W 2,0K, Reichelt)R5 = 1k (Widerstand, BestNr 1/4W 1,0K, Reichelt)R6 = 3,9K (Widerstand, BestNr 1/4W 3,9K, Reichelt), optional S1 = Druckschalter (Printtaster, BestNr TASTER 3301, Reichelt)S2 = Druckschalter (Printtaster, Multimec, BestNr TASTER 3FTH9+KAPPE 1D09, Reichelt) St1 = Wanne,10pol (Wannenstecker 10pol,gerade, Best.Nr WSL 10G, Reichelt) STR1 = RP1A23D5 (Solid-State-Relais, BestNr RP1A23D5, Reichelt), oder Eigenbau-Modul Us1 = HC-SR04 (Ultraschall-Modul, Ebay) VR1 = LT1117CS3,3 (Spannungsregler 3,3 V, SOT223, BestNr LM 3940 IMP-3,3, Reichelt)

    Sicherheitshinweise:Wird der Ultraschall-Sensor mit einem Solid-State-Relais am 230V Niederspannungsnetzbetrieben, ist darauf zu achten, dass die Schutzmaßnahme für den Berührungsschutzeingehalten wird.

    Idealerweise wird die wasserdichte Version des US-Wandlers verwendet, da dieseAusführung voll gekapselt ist. Der Distanz-Sensor muss dann auch in ein entsprechendesKunststoff-Gehäuse eingebaut werden. Ansonsten muss die Masse mit dem Schutzleiterdes Versorgungsnetzes verbunden werden.

    Es muss auch darauf geachtet werden, dass das Solid-State-Relais nicht überlastet wird.Das in der Stückliste aufgeführte Relais ist für einen Laststrom von 5A ausgelegt. DasSelbstbau-Relais kann 12A schalten, kann aber aufgrund fehlender Kühlung nicht so hochbelastet werden. Ausschlaggebend ist natürlich auch immer die Betriebsdauer.

    C:\Users\pepe\Eigene_Dateien\Funk\Projekte\Arudino_Nano\US_Sensor\US_Sensor_Wifi\Nano-US-Sensor-Wifi_Doku.odt Datum: 02.09.17 Seite 9

  • Optionales Display

    Display für Ultraschall-Modul

    Schaltplan Display

    C:\Users\pepe\Eigene_Dateien\Funk\Projekte\Arudino_Nano\US_Sensor\US_Sensor_Wifi\Nano-US-Sensor-Wifi_Doku.odt Datum: 02.09.17 Seite 10

  • Stückliste Display LCD-Display = LCD 162 LCD (Dot-Matrix Display, HD44780 komp., BestNr LCD 162C LED, Reichelt) LVP1 = 10pol (Leiterplattenverbinder 10pol, Best.Nr LVP 10, Reichelt) Rx = 12 (Widerstand 1/4W, BestNr 1/4W 12, Reichelt) S1 = Druckschalter (Printtaster, Multimec, BestNr TASTER 3FTH9+KAPPE 1S09-22.5, Reichelt)S2 = Druckschalter (Printtaster, Multimec, BestNr TASTER 3FTH9+KAPPE 1S09-22.5, Reichelt) T1 = 10k (Trimmer 6mm, BestNr ACP 6-L 10K, Reichelt)

    Platinen

    Nano-Distanz-Sensor-Wifi, Bestückungsseite

    Nano-Distanz-Sensor-Wifi, Lötseite

    Display-Board (einseitig), Lötseite

    C:\Users\pepe\Eigene_Dateien\Funk\Projekte\Arudino_Nano\US_Sensor\US_Sensor_Wifi\Nano-US-Sensor-Wifi_Doku.odt Datum: 02.09.17 Seite 11