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

Le thermomètre sur le microcontrôleur PIC16F628A et numérique capteur DS1620. Contrôle via Internet

L'affichage sur l'écran LCD:

  • température ambiante
  • température minimale
  • température maximale

La communication avec l'ordinateur (via le port RS232C)

  • Suivi de la courbe de perte de température
  • Enregistrer le fichier mesure
  • Thermostat programmable
  • Contrôle de la température par l'intermédiaire de l'Internet à la base de données MySQL
  • Contrôle de la température via Internet en utilisant le protocole FTP

1. Familiarisation

C'est un thermomètre électronique avec le retrait de la température sur l'écran LCD.
La température ambiante est mesurée toutes les 840 ms à l'aide de capteur numérique de DS1620, la firme de Dallas Semiconductor.
figure n ° 1Un bouton vous permet de basculer l'écran sur lequel s'affiche la température maximale et minimale:
l'écran n ° 1l'écran n ° 2Le deuxième bouton réinitialise la valeur de la température min/max en option, vous pouvez connecter votre appareil à l'ordinateur (via RS232). La température est envoyé à un ordinateur à partir d'un périphérique géré par un microcontrôleur 16F628A. L'application installée sur votre ordinateur, vous indique la température en temps réel et affiche sur le graphique. D'autre part, l'application permet de programmer les deux valeurs limites de la température du thermostat DS1620.
graphique n ° 1

2. Concept:

Version n ° 1: sans interface RS232;
Schéma n ° 1
Version n ° 2: via RS232
Schéma n ° 2REMARQUE: Firmware pour le microcontrôleur la même pour les deux options.
3. L'examen de la sonde de température DS1620
4. Le principe de fonctionnement de l'écran LCD (interface parallèle)
5. Le principe de fonctionnement de l'appareil
5-1. Sans l'interface RS232;
Après le dépôt de la tension, le microcontrôleur 16F628A interroge le capteur de température DS1620 (la commande Write Config CPU = 1 et 1SHOT = 0, puis la commande Start Convert T) et configure un affichage à cristaux liquides (commande Set Function pour une utilisation en mode 4 bits). Le module Timer1 (16 bits) du microcontrôleur 16F628A est activé, ce qui conduit à l'interruption environ 105 ms. Lors de chaque interruption, d'un module Timer1, interroge l'état de la touche SELECTION ÉCRAN et le bouton RESET MIN/MAX. Toutes les 8 interruptions (environ 840 ms) de lecture de la température et des informations sur l'écran LCD de mise à jour:
l'écran n ° 1 l'écran n ° 2
5-2. Via le port RS232

Concernant les travaux de l'absence d'une interface RS232, sont ajoutés deux interruptions:

  • L'interruption de la réception de l'UART (communique microcontrôleur, qu'il a obtenu des données de l'ordinateur par l'intermédiaire de RS232)
  • L'interruption de la transmission UART (communique microcontrôleur que UART va transmettre les données à l'ordinateur)
5-2-1. Le câble de communication entre l'ordinateur et le périphérique.

Конечно же нужен компьютер, который имеет COM-порт (разъем SUB-D, 9 контактов “папа”). Нужно подключить нуль-модемный кабель (кабель с перекрёстным соединением) между компьютером и устройством. Если у вас его нет, вы можете легко его сделать (нужно 3 провода и 2 разъема SUB-D, 9 контактов “мама”).

5-2-2. Le protocole de communication entre l'ordinateur et le périphérique.

L'ordinateur envoie une commande. Le microcontrôleur répond.
L'ordinateur envoie 3 octets (via RS232):

Команда DS1620 1er octet (code de commande) 2ème octet (données) 3ème octet (données)
Read Temperature (toutes les 1000 ms) 0Partout 0х00 (non utilisé) 0х00 (non utilisé)
Read TH (lecture à haute température du thermostat) 0Ha1 0х00 (non utilisé) 0х00 (non utilisé)
Read TL (la lecture de la basse température du thermostat) 0ha2 0х00 (non utilisé) 0х00 (non utilisé)
Write TH (entrée haute de la température du thermostat) 0X01 (0000000 D8) (D7 D0...)
Write TL (enregistrement de la basse température du thermostat) 0X02 (0000000 D8) (D7 D0...)

Obtenez le même de leur, le microcontrôleur envoie capteur DS1620 (3-filaire port série synchrone). Dans le cas d'une commande de lecture (Read Temperature, TH Read, Read TL), le thermomètre DS1620 envoie des données à un microcontrôleur (la température sous la forme d'un nombre binaire 9 bits codés en complément à 2). Ce nombre est transmis sans modification sur votre ordinateur sous la forme de 2 octets:
1er octet: (0000000 D8)
2-й байт: (D7 … D0)
D0 = бит
Pour les autres commandes, le microcontrôleur envoie à l'ordinateur de deux octets 0x00 (via RS232).

Команда DS1620
1er octet (données)
2ème octet (données)
Read Temperature (toutes les 1000 ms)
(0000000 D8)
(D7 D0...)
Read TH (lecture à haute température du thermostat)
(0000000 D8)
(D7 D0...)
Read TL (la lecture de la basse température du thermostat)
(0000000 D8)
(D7 D0...)
Write TH (entrée haute de la température du thermostat) 0х00 (non utilisé) 0х00 (non utilisé)
Write TL (enregistrement de la basse température du thermostat) 0х00 (non utilisé) 0х00 (non utilisé)

L'exemple de la forme d'onde: la commande Read Temperature
La communication entre l'ordinateur et le PIC (RS232) :
Осцилограмма n ° 10Xaa = код команды Lire Température

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

La communication entre le PIC et le DS1620 (port série synchrone) :
Осцилограмма n ° 210101010 = 0xAA = code de commande Read Temperature

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

6. L'application DS1620_104.exe pour Windows

graphique n ° 1Avant-propos
Cette application a été écrit en C++, Borland Builder 5. L'application fonctionne sur Windows NT4 et Windows XP (Windows Vista n'a pas été testé).

Remarque: pour la gestion du périphérique via le port RS232 est nécessaire d'installer le composant TComPort (version 2.64):
Télécharger
Procédure d'installation
Manuel

Procédure d'utilisation:

  • Relier l'ordinateur et de l'appareil un câble null-modem (off)
  • Branchez l'alimentation
  • Ouvrir l'application
  • Configurer les paramètres de connexion RS232C :
    9600 bit/s
    8 bits de données
    bit de parité, pas de
    1 стопбит
    contrôle de flux, pas
  • Ouvrir Port
    Doit s'afficher la température réelle (avec mise à jour toutes les 1000 ms). Il est possible d'enregistrer les données dans un fichier texte:

Un fichier texte n ° 1Этот файл затем может быть использован с Excel, Matlab …

Télécharger l'application DS1620_104.exe pour Windows 797 ko
Télécharger le code source de l'application DS1620_104.exe 224 ko

7. Les applications de communication RS232 avec LabVIEW

Voici deux applications que j'ai écrit pour LabVIEW 5 :
L'application pour la communication RS232 avec LabVIEW n ° 1L'application pour la communication RS232 avec LabVIEW n ° 2ds1620_011.vi
ds1620_thermostat_004.vi
Veuillez noter que ces applications fonctionnent également avec la version 6 de LabVIEW.

Télécharger ds1620_011.vi 223 ko
Télécharger ds1620_thermostat_004.vi 223 ko

8. Installation de la connexion RS232 sur le langage Python

Version De Python: 2.7
Протестировано на Windows XP Ø Linux / Ubuntu
Ce scénario requiert que le service pyserial (chargement et le processus d'installation ici).
Le code source:

# (C) Fabrice Сэнсэр
# python 2.7

# connexion RS232 avec thermomètre numérique numérique à capteur DS1620
#http://fabrice.sincere.pagespersoorange.fr/cm_электроника/проект_pic/ЖК термометр_DS1620htm/LCD термометр_DS1620.htm

# test: OK (linux/ubuntu + winXP)

moment de l'importation
import serial # bibliothèque externe pyserial

print ‘Связь с COM-портом’

filename = ‘температура.txt’
print ‘\nФайл резервного копирования : ‘+filename
File = open(filename,’a’)

# bibliothèque 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 # en quelques secondes

print “””
# Sous Windows :
# COM1 -> 0 (COM1)
# COM2 -> 1 (ou COM2)

# Sous Linux :
# COM1 -> 0 (ou /dev/ttyS0)
# COM2 -> 1 (ou /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:
# entrée
Port.write(‘\xAA\x00\x00’)

# lecture
MSB = Port.read() # octet
LSB = Port.read() # octet

if (MSB !=” and LSB != “):
temperature = ord(LSB) + 256* ord(MSB)
if température >= 256:
temperature = temperature – 512
temperature *= 0.5
affichage = “time”.strftime(‘%H:%M:%S’,time.localtime()) + ‘ ‘+ str(temperature) +’ °C’
Imprimer affichage
Fichier.write(affichage +’\n’)

# pause de 1 seconde
time.sleep(1.0)

except KeyboardInterrupt:
# CTRL + C
print “\nCTRL+C\nЗакрытие порта”, Port.portstr
Port.close()
Fichier.close()

L'exécution du script :
>>>
La communication avec le port COM

Le fichier de sauvegarde : температура.txt

# Sous Windows :
# COM1 -> 0 (COM1)
# COM2 -> 1 (ou COM2)

# Sous Linux :
# COM1 -> 0 (ou /dev/ttyS0)
# COM2 -> 1 (ou /dev/ttyS1)

Le nom du port COM ? 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

CTRL + C
Fermeture du COM1
>>>

Télécharger сценарий Python

9. Vérification de la température à travers l'internet à l'aide d'un script CGI en Python

Testé chez moi sur Linux/Ubuntu sur une Livebox (l'auteur est un client Orange), avec les paramètres suivants de réseau:

  • privé de l'adresse IP: 192.168.1.10
  • public: 90.14.148.96

Installation:

En dehors de Python 2.7 et le pack de pyserial, vous devez installer sur votre ordinateur un serveur Web Apache (ici avec XAMPP).Les scripts Python сді_чтение температуры.ру , сді_сборник установок.ру et сді_обработка recueil установок.ру doivent être placés dans le répertoire /opt/lampp/cgi-bin/
Attention à l'installation: Propriétés -> Permissions -> Autoriser l'exécution du fichier comme un programme
En ce qui concerne les scripts CGI en Python:
La première ligne de script doit être:
#! /usr/bin/python
La première sortie doit être (header) :
print “Content-Type: text/html\n\n”
Configuration De La Livebox:
Путь – Преобразование сетевых адресов -> Добавить службу http(протокол TCP, порт 80, IP-адрес сервера 192.168.1.10)
Configuration du pare-feu:
autoriser les connexions entrantes sur le port 80 (TCP)

administrateur

Laisser un commentaire

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