WordPress database error: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC

0

Das Thermometer auf dem Mikrocontroller und digitale Sensor DS1620 PIC16F628A. Kontrolle über das Internet

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.
Abbildung # 1Eine Taste ermöglicht die Anzeige wechseln, wird die maximale und minimale Temperatur:
Anzeige Nr. 1Anzeige Nr. 2Die 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.
Chart Nr. 1

2. Konzept:

Version Nr. 1: ohne Schnittstelle RS232;
Schematisches Diagramm №1
Version Nummer 2: mit Hilfe der RS232
Konzept Nr. 2HINWEIS: 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:
Anzeige Nr. 1 Anzeige Nr. 2
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) :
Осцилограмма Nr. 10xAA = код команды lesen Temperatur

0x00 0x2D = 0 0010 1101 = 45 = +22,5 °C

Die Verbindung zwischen PIC und DS1620 (Seriell, synchron) :
Осцилограмма Nummer 210101010 = 0xAA = Befehlscode Read Temperature

0 00101101 = 0x2D = 45 = +22,5 °C

6. App DS1620_104.exe für Windows

Chart Nr. 1Vorwort
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:

Textdatei Nummer 1Этот файл затем может быть использован с 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 :
Anwendung für RS232-Kommunikation mit LabVIEW Nr. 1Anwendung für RS232-Kommunikation mit LabVIEW Nummer 2ds1620_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)

Admin

Hinterlasse eine Antwort

Your email address will not be published. Required fields are marked *