Die Anzeige auf dem LCD:
- Umgebungstemperatur
- Mindesttemperatur
- Höchsttemperatur
PC-Konnektivität (über RS232C-Port)
- Überwachung der Temperaturabfall graph
- Sparen Messdatei
- Programmierbarer Thermostat
- Temperaturregelung über das Internet auf die MySQL-Datenbank
- Temperaturregelung über das Internet mit dem FTP-Protokoll
1. Einarbeitung
Es ist ein elektronisches Thermometer mit der Ausgabe der Temperatur auf dem LCD-Display.
Umgebungstemperatur gemessen alle 840 MS bei einem digitalen Sensor DS1620, der Firma Dallas Semiconductor.
Eine Taste ermöglicht die Anzeige wechseln, wird die maximale und minimale Temperatur:
Die zweite Schaltfläche setzt die Werte Temperatur min./max. Als Option, können Sie das Gerät an den Computer (Via RS232). Die Temperatur wird vom Gerät auf den Computer gesteuerten Microcontroller 16F628A. Anwendung auf dem Computer, zeigt die Temperatur in Echtzeit und zeigt Sie auf Zeitplan. Andererseits, App Programmieren können zwei Grenzwerte der Temperatur des Thermostats der DS1620.
2. Konzept:
Version Nr. 1: ohne Schnittstelle RS232;
Version Nummer 2: mit Hilfe der RS232
HINWEIS: Die Firmware für den mikrocontroller ein und dieselbe für beide Varianten.
3. Übersicht der Temperatursensor DS1620
4. Das Funktionsprinzip des LCD-Displays (parallele Schnittstelle)
5. Die Funktionsweise des Geräts
5-1. Ohne Schnittstelle RS232;
Nach dem anlegen einer Spannung, Microcontroller 16F628A Pflegebedürftige Temperatursensor DS1620 (der Befehl Write-Config mit CPU = 1 " und " 1SHOT = 0, dann mit dem Befehl Start Convert T) und passt die LCD-Anzeige (Befehl Function Set-Modus für den Einsatz in 4-bit interface). Modul Timer1 (16 bit) Microcontroller 16F628A aktiviert, was zu einer Unterbrechung etwa alle 105 MS. Bei jeder Unterbrechung der Timer1-Modul, tastenstatus abgefragt SELECTION ECRAN und RESET MIN/MAX. Alle 8 Interrupts (etwa 840 MS) liest die Temperatur und Information auf dem LCD-Display aktualisiert wird:
5-2. Über RS232-Schnittstelle
Bezüglich der Arbeit ohne Schnittstelle RS232, werden zwei Interrupts:
- Interrupt UART empfangen (mikrocontroller meldet, dass er Daten vom PC über RS232)
- Interrupt UART-übertragung (mikrocontroller meldet, dass die UART gehen, um Daten auf den Computer)
5-2-1. Kabel die Kommunikation zwischen dem Computer und dem Gerät.
Конечно же нужен компьютер, который имеет COM-порт (разъем SUB-D, 9 контактов “папа”). Нужно подключить нуль-модемный кабель (кабель с перекрёстным соединением) между компьютером и устройством. Если у вас его нет, вы можете легко его сделать (нужно 3 провода и 2 разъема SUB-D, 9 контактов “мама”).
5-2-2. Das Kommunikationsprotokoll zwischen dem Computer und dem Gerät.
Der Computer sendet einen Befehl. Der mikrocontroller antwortet.
Der Computer sendet 3 Bytes (über RS232):
Команда DS1620 | 1. Byte (Befehlscode) | 2. Byte (Daten) | 3-te Byte (Daten) |
Read Temperature (alle 1000 Millisekunden) | 0Überall | 0х00 (nicht verwendet) | 0х00 (nicht verwendet) |
Read TH (Lesen Hochtemperatur-Thermostat) | 0HA1 | 0х00 (nicht verwendet) | 0х00 (nicht verwendet) |
Read TL (Lesen der niedrigen Temperatur des Thermostats) | 0HA2 | 0х00 (nicht verwendet) | 0х00 (nicht verwendet) |
Write TH (Aufnahme der hohen Temperatur des Thermostats) | 0X01 | (0000000 D8) | (D7 ... D0) |
Write TL (Aufnahme der niedrigen Temperatur des Thermostats) | 0X02 | (0000000 D8) | (D7 ... D0) |
Nachdem Sie, mikrocontroller sendet einen Befehl, den Sensor DS1620 (über 3-Draht Seriell, synchron). In dem Fall der Befehl für Lesezugriff (Read Temperature, TH Read, Read TL), Thermometer DS1620 sendet die Daten an den mikrocontroller (Temperatur als Binär 9 bit codiert zusätzlich in 2). Diese Zahl wird ohne änderungen auf dem Computer als 2-Byte:
1. Byte: (0000000 D8)
2-й байт: (D7 … D0)
D0 = бит
Für andere Teams, mikrocontroller Computer sendet zwei Bytes 0x00 (über RS232).
Команда DS1620 |
1. Byte (Daten) |
2. Byte (Daten) |
Read Temperature (alle 1000 Millisekunden) |
(0000000 D8) |
(D7 ... D0) |
Read TH (Lesen Hochtemperatur-Thermostat) |
(0000000 D8) |
(D7 ... D0) |
Read TL (Lesen der niedrigen Temperatur des Thermostats) |
(0000000 D8) |
(D7 ... D0) |
Write TH (Aufnahme der hohen Temperatur des Thermostats) | 0х00 (nicht verwendet) | 0х00 (nicht verwendet) |
Write TL (Aufnahme der niedrigen Temperatur des Thermostats) | 0х00 (nicht verwendet) | 0х00 (nicht verwendet) |
Ein Beispiel für Wellenformen: der Befehl Read Temperature
Kommunikation zwischen PC und PIC (RS232) :
0xAA = код команды lesen Temperatur
0x00 0x2D = 0 0010 1101 = 45 = +22,5 °C
Die Verbindung zwischen PIC und DS1620 (Seriell, synchron) :
10101010 = 0xAA = Befehlscode Read Temperature
0 00101101 = 0x2D = 45 = +22,5 °C
6. App DS1620_104.exe für Windows
Vorwort
Diese Anwendung wurde geschrieben in C++ Borland Builder 5. Die App funktioniert auf Windows NT4 und Windows XP (auf Windows Vista nicht getestet).
Hinweis: für die Steuerung des Gerätes über RS232-Schnittstelle erforderlich, installieren Sie die Komponente TComPort (Version 2.64 genug):
Herunterladen
Installationsverfahren
Lehrbuch
So verwenden:
- Verbinden Sie Computer und Gerät mit einem Nullmodem-Kabel (im ausgeschalteten Zustand)
- Schließen Sie das Netzteil
- Offene Bewerbung
- Konfigurieren Sie die Verbindungsparameter mit RS232C :
9600 bit/Sek.
8 Datenbits
Parity-Bit, keine
1 стопбит
Flusskontrolle, keine - Open Port
Sollte die tatsächliche Temperatur (Update alle 1000 MS). Gibt es die Möglichkeit, das speichern von Daten in einer Textdatei:
Этот файл затем может быть использован с Excel, Matlab …
Laden Sie die App DS1620_104.exe für Windows 797 Kb
Laden Sie den Quellcode der Anwendung DS1620_104.exe 224 Kb
7. Anwendung für RS232-Kommunikation mit LabVIEW
Hier sind zwei Anwendungen, die ich geschrieben habe für LabVIEW 5 :
ds1620_011.vi
ds1620_thermostat_004.vi
Bitte beachten Sie, dass diese Anwendungen funktionieren auch mit der Version 6 LabVIEW.
Download ds1620_011.vi 223 Kb
Download ds1620_thermostat_004.vi 223 Kb
8. Installieren Sie den RS232-Anschluss auf der Sprache Python
Python-Version: 2.7
Протестировано на Windows XP è Linux / Ubuntu
Dieses Skript benötigt das Paket pyserial (Download und Installation hier).
Quellcode:
# (C) Fabrice Сэнсэр
# python 2.7
# Verbindung RS232 mit einem digitalen Thermometer auf dem digitalen Sensor DS1620
#http://fabrice.sincere.pagespersoorange.fr/cm_электроника/проект_pic/ЖК термометр_DS1620htm/LCD термометр_DS1620.htm
# Test: OK (linux/ubuntu + winXP)
Importzeit
import serial # externe Bibliothek pyserial
print ‘Связь с COM-портом’
filename = ‘температура.txt’
print ‘\nФайл резервного копирования : ‘+filename
File = open(filename,’a’)
# Bibliothek pyserial :
# http://pyserial.sourceforge.net/shortintro.html
# http://pyserial.sourceforge.net/pyserial_api.html
Port = serial.Serial()
Port.baudrate = 9600
Port.bytesize = 8
Port.parities = 0
Port.stopbits = 1
Port.xonxoff = 0
Port.rtscts = 0
Port.timeout=0.1 # in Sekunden
print “””
# Unter Windows :
# COM1 -> 0 (oder COM1)
# COM2 -> 1 (oder COM2)
# Unter Linux :
# COM1 -> 0 (oder /dev/ttyS0)
# COM2 -> 1 (oder /dev/ttyS1)
“””
nomport = raw_input(‘Имя COM-порта ? ‘)
try:
int(nomport)
Port.port = int(nomport)
except:
Port.port = nomport
print (‘Port ->’, Port.portstr,’\n’
Port.open()
try:
while True:
# Aufzeichnung
Port.write(‘\xAA\x00\x00’)
# Lesen
MSB = Port.read() # High-Byte
LSB = Port.read() # Low-Byte
if (MSB !=” and LSB != “):
temperature = ord(LSB) + 256* ord(MSB)
if temperature >= 256:
temperature = temperature – 512
temperature *= 0.5
affichage = “time”.strftime(‘%H:%M:%S’,time.localtime()) + ‘ ‘+ str(temperature) +’ °C’
Druck affichage
Fichier.write(affichage +’\n’)
# Pause in 1 Sekunde
time.sleep(1.0)
except KeyboardInterrupt:
# STRG + C
print “\nCTRL+C\nЗакрытие порта”, Port.portstr
Port.close()
Fichier.close()
Die Ausführung des Skripts :
>>>
Die Kommunikation mit dem COM-Port
Backup-Datei : температура.txt
# Unter Windows :
# COM1 -> 0 (oder COM1)
# COM2 -> 1 (oder COM2)
# Unter Linux :
# COM1 -> 0 (oder /dev/ttyS0)
# COM2 -> 1 (oder /dev/ttyS1)
Name COM-Port ? 0
Port -> COM1
09:15:28 19.5 °C
09:15:29 19.5 °C
09:15:30 19.5 °C
09:15:31 19.5 °C
09:15:32 19.5 °C
09:15:33 19.5 °C
09:15:34 20.0 °C
09:15:35 20.0 °C
09:15:36 20.0 °C
09:15:37 20.0 °C
09:15:38 20.0 °C
09:15:39 20.0 °C
STRG + C
Schließen des COM1
>>>
Herunterladen сценарий Python
9. Prüfen Sie die Temperatur über das Internet mit Hilfe von CGI-Skripts in Python
Getestet habe ich auf Linux/Ubuntu auf die Livebox (der Autor ist dem Kunden Orange), mit folgenden Parametern des Netzwerks:
- private IP-Adresse: 192.168.1.10
- öffentlich: 90.14.148.96
Installation:
Neben Python 2.7 und Paket pyserial, müssen Sie auf Ihrem Computer installieren den Apache Web Server (hier mit XAMPP).Python-Skripte сді_чтение температуры.ру , сді_сборник установок.ру und сді_обработка Compilation установок.ру müssen platziert werden in das Verzeichnis /opt/lampp/cgi-bin/
Achtung bei der Installation: Eigenschaften -> Berechtigungen -> Zulassen der Ausführung Datei als Programm
Was für CGI-Skripts in Python:
Die erste Zeile der Skripts sollte:
#! /usr/bin/python
Die erste Ausfahrt muss (header) :
print “Content-Type: text/html\n\n”
Einstellen Der Livebox:
Путь – Преобразование сетевых адресов -> Добавить службу http(протокол TCP, порт 80, IP-адрес сервера 192.168.1.10)
Konfiguration der Firewall:
eingehende verbindungen auf Port 80 (TCP)