Ошибка базы данных WordPress: [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

Термометр на микроконтроллере PIC16F628A и цифровом датчике DS1620. Контроль через Интернет — Меандр — занимательная электроника
Site icon Меандр — занимательная электроника

Термометр на микроконтроллере PIC16F628A и цифровом датчике DS1620. Контроль через Интернет

Отображение на ЖК-дисплее:

Связь с компьютером (через порт RS232C)

1.  Ознакомление

Это электронный термометр с выводом температуры на ЖК-дисплей.
Температура окружающей среды измеряется каждые 840 мс при помощи цифрового датчика DS1620, фирмы Dallas Semiconductor.
Одна из кнопок позволяет переключить экран, на котором отображается максимальная и минимальная температура:
Вторая кнопка сбрасывает значения температуры мин./макс.Как вариант, можно подключить устройство к компьютеру (через RS232). Температура передается на компьютер с устройства, управляемого микроконтроллером 16F628A. Приложение, установленное на компьютере, показывает температуру в реальном времени и выводит её на график. С другой стороны, приложение позволяет запрограммировать два предельных значения температуры термостата DS1620.

2. Принципиальная схема:

Версия № 1: без интерфейса RS232;

Версия № 2: с помощью RS232
ПРИМЕЧАНИЕ: Прошивка для микроконтроллера одна и таже для обоих вариантов.
3. Обзор датчика температуры DS1620
4. Принцип работы ЖК-дисплея (параллельный интерфейс)
5. Принцип работы устройства
5-1. Без интерфейса RS232;
После подачи напряжения, микроконтроллер 16F628A опрашивает датчик температуры DS1620 (команда Write Config с CPU = 1 и 1SHOT = 0, затем команда Start Convert T) и настраивает ЖК-дисплей (команда Set Function для использования в режиме интерфейса 4 бита). Модуль Timer1 (16 бит) микроконтроллера 16F628A активируется, что приводит к прерыванию приблизительно каждые 105 мс. При каждом прерывании модуля Timer1, опрашивается состояние кнопки SELECTION ECRAN и кнопки RESET MIN/MAX. Каждые 8 прерываний (около 840 мс) происходит чтение температуры и информация на ЖК-дисплее обновляется:

5-2. Через порт RS232

Относительно работы без интерфейса RS232, добавляются два прерывания:

5-2-1. Кабель связи между компьютером и устройством.

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

5-2-2. Протокол связи между компьютером и устройством.

Компьютер посылает команду. Микроконтроллер отвечает.
Компьютер посылает 3 байта (через RS232):

Команда DS1620 1-ый байт (код команды) 2-ой байт (данные) 3-ий байт (данные)
Read Temperature (каждые 1000 мс) 0хАА 0х00 (не используется) 0х00 (не используется)
Read TH (чтение высокой температуры термостата) 0хА1      0х00 (не используется) 0х00 (не используется)
Read TL (чтение низкой температуры термостата) 0хА2 0х00 (не используется) 0х00 (не используется)
Write TH (запись высокой температуры термостата) 0х01 (0000000 D8) (D7 … D0)
Write TL (запись низкой температуры термостата) 0х02 (0000000 D8) (D7 … D0)

Получив же их, микроконтроллер передает команду датчику DS1620 (через 3-проводной последовательный порт, синхронный). В случае команды чтения (Read Temperature, TH Read, Read TL), термометр DS1620 отправляет данные в микроконтроллер (температура в виде двоичного числа 9 бит, закодированных в дополнение в 2). Это число передается без изменений на компьютер в виде 2-х байт:
1-й байт: (0000000 D8)
2-й байт: (D7 … D0)
D0 = бит
Для других команд, микроконтроллер посылает компьютеру два байта 0x00 (через RS232).

Команда DS1620
1-ый байт (данные)
   2-ой байт (данные)
Read Temperature (каждые 1000 мс)
       (0000000 D8)
           (D7 … D0)
Read TH (чтение высокой температуры термостата)
       (0000000 D8)
           (D7 … D0)
Read TL (чтение низкой температуры термостата)
       (0000000 D8)
           (D7 … D0)
Write TH (запись высокой температуры термостата)      0х00 (не используется)      0х00 (не используется)
Write TL (запись низкой температуры термостата)      0х00 (не используется)      0х00 (не используется)

Пример осциллограммы: команда Read Temperature
Связь между компьютером и PIC (RS232) :
0xAA = код команды Read Temperature

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

Связь между PIC и DS1620 (последовательный порт, синхронный) :
10101010 = 0xAA = код команды Read Temperature

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

6. Приложение DS1620_104.exe для Windows

Предисловие
Это приложение было написано на C++ Borland Builder 5. Приложение работает на Windows NT4 и Windows XP (на Windows Vista не тестировалось).

Примечание: для управления устройством через порт RS232 требуется установка компонента TComPort (версии 2.64 достаточно):
Скачать
Процедура установки
Учебник

Процедура использования:

Этот файл затем может быть использован с Excel, Matlab …

Скачать приложение DS1620_104.exe для Windows 797 кб
Скачать исходный код приложения DS1620_104.exe 224 кб

7. Приложения для связи RS232 с LabVIEW

Вот два приложения, которые я написал для LabVIEW 5 :
ds1620_011.vi
ds1620_thermostat_004.vi
Обратите внимание, что эти приложения также работают с версией 6 LabVIEW.

Скачать ds1620_011.vi 223 кб
Скачать ds1620_thermostat_004.vi 223 кб

8. Установка соединения RS232 на языке Python

Версия Python: 2.7
Протестировано на Windows XP и Linux/Ubuntu
Этот сценарий требует наличия пакета pyserial (загрузка и процесс установки здесь).
Исходный код:

# (C) Фабрис Сэнсэр
# python 2.7

# соединение RS232 с цифровым термометром на цифровом датчике DS1620
#http://fabrice.sincere.pagespersoorange.fr/cm_электроника/проект_pic/ЖК термометр_DS1620htm/ЖК термометр_DS1620.htm

# тест: OK (linux/ubuntu + winXP)

import time
import serial # внешняя библиотека pyserial

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

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

# библиотека 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 # в секундах

print «»»
# Под Windows :
# COM1 -> 0 (или COM1)
# COM2 -> 1 (или COM2)

# Под Linux :
# COM1 -> 0 (или /dev/ttyS0)
# COM2 -> 1 (или /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:
# запись
Port.write(‘\xAA\x00\x00’)

# чтение
MSB = Port.read() # старший байт
LSB = Port.read() # младший байт

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’
print affichage
Fichier.write(affichage +’\n’)

# пауза в 1 секунду
time.sleep(1.0)

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

Выполнение сценария :
>>>
Связь с COM-портом

Файл резервной копии : температура.txt

# Под Windows :
# COM1 -> 0 (или COM1)
# COM2 -> 1 (или COM2)

# Под Linux :
# COM1 -> 0 (или /dev/ttyS0)
# COM2 -> 1 (или /dev/ttyS1)

Имя COM-порта ? 0
Порт -> 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
Закрытие порта COM1
>>>

Скачать сценарий Python

9. Проверка температуры через интернет с помощью CGI-скрипта на Python

Тестировалось у меня на Linux/Ubuntu на Livebox (автор является клиентом Orange), со следующими настройками сети:

Установка:

Помимо Python 2.7 и пакета pyserial, нужно установить на компьютер Веб-сервер Apache (здесь с XAMPP).Сценарии Python cgi_чтение температуры.py , cgi_сборник установок.py и cgi_обработка сборника установок.py должны быть помещены в каталог /opt/lampp/cgi-bin/
Внимание на установки: Свойства -> Разрешения -> Разрешить выполнение файла как программы
Что касается сценариев CGI в Python:
Первая линия сценариев должна быть:
#! /usr/bin/python
Первый выход должен быть (header) :
print «Content-Type: text/html\n\n»
Настройка Livebox:
Путь — Преобразование сетевых адресов -> Добавить службу http(протокол TCP, порт 80, IP-адрес сервера 192.168.1.10)
Настройка брандмауэра:
разрешить входящие соединения на порт 80 (TCP)

Запуск Веб-сервера :
В Linux набрать команду :
sudo /opt/lampp/lampp start

Если сценарий cgi_ чтение температуры.py выдаёт ошибку типа:
Permission denied: ‘/dev/ttyS0’
тогда в Linux введите команду:
sudo chmod 666 /dev/ttyS0
Эти сценарии также работают в Windows (тестировалось на XP и Wampserver).

#! /usr/bin/python
#-*- coding:utf-8 -*-

# сценарий cgi_чтение температуры.py
# (C) Фабрис Сэнсэр
# python 2.7
# сценарий cgi
# соединение RS232 с цифровым термометром на цифровом датчике DS1620
# http://fabrice.sincere.pagesperso orange.fr/cm_электроника/проект_pic/ЖК термометр_DS1620htm/ЖК термометр_DS1620.htm
# тест: ОК (linux/ubuntu 11.10 + xampp 1.7.7)
import cgitb # отладка программы cgi
cgitb.enable()
import serial # внешняя библиотека pyserial
# Библиотека pyserial :
# http://pyserial.sourceforge.net/shortintro.html
# http://pyserial.sourceforge.net/pyserial_api.html
import time
print «Content-Type: text/html\n\n»
print «»»<!DOCTYPE html
PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN»
«http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»>
<html xmlns=»http://www.w3.org/1999/xhtml» xml:lang=»ru» lang=»fr»>
<head>
<meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″ />
<title>Mesure de température</title>
<meta http-equiv=»Refresh» content=»10″/>
<meta name=»Author» content=»Фабрис Sincère»/>
</head>
<body>»»»
print ‘<p>Соединение с COM-портом</p>’
# предварительно, нужно создать реестр /opt/lampp/htdocs/температура
filename = ‘/opt/lampp/htdocs/ температура / температура.txt’
filename0 = ‘../ температура температура.txt’
print «<p><a href='»+filename0+»‘>Файл резервной копии</a></p>»
Fichier = open(filename,’a’)

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 # в секундах

# Под Windows :
# COM1 -> 0 (или COM1)
# COM2 -> 1 (или COM2)

# Под Linux :
# внимание : разрешение 666
# > sudo chmod 666 /dev/ttyS0
# COM1 -> 0 (или /dev/ttyS0)
# COM2 -> 1 (или /dev/ttyS1)

nomport = 0
try:
int(nomport)
Port.port = int(nomport)
exept:
Port.port = nomport

print ‘<p>Открытие порта», Port.portstr,'</p>’

Port.open()

# чтение температуры
Port.write(‘\xAA\x00\x00’)

# чтение

MSB = Port.read() # старший байт
LSB = Port.read() # младший байт

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’
print ‘<p>’+ affichage +'</p>’
Fichier.write(affichage +’\n’)
else:
print ‘<div style=»color:red;»>Устройство не понимает!</p>’

# чтение низкой температуры термостата
Port.write(‘\xA2\x00\x00′)

MSB = Port.read() # старший байт
LSB = Port.read() # младший байт

if (MSB !=» and LSB != «):
temperature = ord(LSB) + 256* ord(MSB)
if temperature >= 256:
temperature = temperature — 512
temperature *= 0.5
affichage = str(temperature) +’ °C’
print ‘<p>’+’Thermostat : TLow —>’+ affichage +'</p>’

# воспроизведение высокой температуры термостата
Port.write(‘\xA1\x00\x00′)

MSB = Port.read() # старший байт
LSB = Port.read() # младший байт

if (MSB !=» and LSB != «):
temperature = ord(LSB) + 256* ord(MSB)
if temperature >= 256:
temperature = temperature — 512
temperature *= 0.5
affichage = str(temperature) +’ °C’
print ‘<p>’+’ Thermostat : Thigh —>’+ affichage +'</p>’

print «<p>Закрытие порта, Port.portstr,'</p>’
Port.close()
Fichier.close()

print «</body></html>»

Чтение температуры (обновляется каждые 10 секунд):
Файл резервной копии:

#! /usr/bin/python
# -*- coding: utf-8 -*-

# сценарий cgi_сборник установок.py

# Просмотр HTML-формы

print «Content-Type: text/html\n\n»

print «»»<!DOCTYPE html
PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN»
«http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»>

<html xmlns=»http://www.w3.org/1999/xhtml» xml:lang=»ru» lang=»ru»>

<head>
<meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″ />
<title>Измерение температуры</title>
<meta name=».Автор» content=»Фабрис Сэнсэр»/>
</head>

<body>
<p>Установка температуры (в °C) термостата:</p>

<p>например: 54.5</p>

<form action=»cgi_обработка сборника установок.py» method=»post»>
<p>
Tlow : <input type=»text» name=»tlow» /><br/><br/>
Thigh : <input type=»text» name=»thigh» /><br/><br/>
<input value=»СОХРАНИТЬ» type=»submit» name=»отправить»/>
</p>
</form>

</body>
</html>»»»

#! /usr/bin/python
# -*- coding: utf-8 -*-
# (C) Фабрис Сэнсэр
# сценарий cgi_обработка сборника установок.py
# Обработка данных, переданных через HTML-форму
import serial
import cgi
form = «cgi».FieldStorage()

def байт(температура):
temperature =int(temperature*2)
if temperature < 0:
температура += 256
MSB = 1
LSB = temperature
else:
MSB = 0
LSB = temperature
return [MSB,LSB]
print «Content-Type: text/html\n\n»
print «»»<!DOCTYPE html
PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN»
«http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»>
<html xmlns=»http://www.w3.org/1999/xhtml» xml:lang=»ru» lang=»ru»>
<head>
<meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″ />
<title>Измерение температуры</title>
<meta name=»Автор» content=»Фабрис Сэнсэр»/>
</head>
<body>»»»
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 # в секунду
# Под Windows :
# COM1 -> 0 (или COM1)
# COM2 -> 1 (или COM2)
# Под Linux :
# внимание : разрешение 666
# > chmod 666 /dev/ttyS0
# COM1 -> 0 (или /dev/ttyS0)
# COM2 -> 1 (или /dev/ttyS1)
nomport = 0
try:
int(nomport)
Port.port = int(nomport)
except:
Port.port = nomport
print ‘<p>Открытие порта, ‘Port.portstr,'</p>’
Port.open()
if form.has_key(«tlow»):
Tlow = form[«tlow»].value
try:
Tlow = float(Tlow)
Port.write(‘\x02’+chr(байт(Tlow)[0])+chr(байт(Tlow)[1]))
Port.read()
Port read()
print ‘<p>Tlow : сохранённое значение</p>’
except:
print ‘<p>Tlow : недопустимое Значение</p>’

if form.has_key(«thigh»):
Thigh = form[«thigh»].value
try:
Thigh = float(Thigh)
Port.write(‘\x01’+chr(байт(Thigh)[0])+chr(байт(Thigh)[1]))
Port.read()
Port.read()
print ‘<p>Thigh : сохраненное значение</p>’
except:
print ‘<p>Thigh : недопустимое Значение</p>’

print «<p>Закрытие порта, Port.portstr,'</p>’
Port.close()

print «</body></html>»

10. Приложения для связи RS232 с LINUX

Связь между платой с микроконтроллером и компьютером (оснащенного операционной системой Linux) может установиться просто с консоли команд (командный процессор Linux).Для этого мы будем использовать два сценария bash :

Эти сценарии были успешно протестированы на многих системах Linux : Ubuntu, Mandriva и Puppy.
Эти сценарии являются базовыми: можно сделать гораздо более мощные!

1 bash-сценарий (файл DS1620_reception.sh) :

#!/bin/bash
# bash-сценарий для Linux
# (C) Фабрис Сэнсэр ; Версия 1.0.1
# Связь RS232 (COM-порт) между компьютером и микроконтроллером PIC

clear

# обнаружение COM-портов компьютера
message=’Команда : dmesg | grep tty’
echo-e «$message\n»

dmesg | grep tty

# настройка порта COM1 :
# 9600 бит/с
# 8 битов данных
# бит четности-нет
# 1 стоп-бит
# управление потоком-нет

message=’Commande: stty-F /dev/ttyS0 9600 cs8-parenb-parodd-cstopb-ixon cread clocal-crtscts-icanon’
echo-e «\n$message\n»

stty-F /dev/ttyS0 9600 cs8-parenb-parodd-cstopb-ixon cread clocal-crtscts-icanon

# отображает все параметры порта COM1
message=’ Commande: stty-a-F /dev/ttyS0′
echo-e «$message\n»

stty-a-F /dev/ttyS0

message=’Во второй консоли, запустить сценарий DS1620_emission.sh’
echo-e «\n*****************************************************************»
echo-e «$message»
echo-e»*****************************************************************\n»

# данные, полученные с компьютера, сохраняются в режиме реального времени в файл
message=’ Commande: cat /dev/ttyS0 > temperature.dat’
echo-e «$message\n»

cat /dev/ttyS0 > temperature.dat

В консоли, выполнение этого сценария bash даёт:

fabrice@imedia2089:~$ ./DS1620_reception.sh
Commande: dmesg | grep tty

[ 0.000000] console [tty0] enabled
[ 0.573305] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 0.573406] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[ 0.573739] 00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 0.573872] 00:0a: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

Commande: stty-F /dev/ttyS0 9600 cs8-parenb-parodd-cstopb-ixon кред помощью clocal-crtscts-icanon

Commande: stty-a-F /dev/ttyS0

speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; флеш = ^O; min = 1; time = 0;
-parenb-parodd cs8-hupcl-cstopb cread clocal-crtscts
-ignbrk-brkint-ignpar-parmrk-inpck-istrip-inlcr-igncr-icrnl-ixon-ixoff
-iuclc-ixany-imaxbel-iutf8
-opost-olcuc-ocrnl-onlcr-onocr-onlret-ofill-ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig-icanon iexten echo-echoe-echok-echonl-noflsh-xcase-tostop-echoprt
echoctl echoke

*****************************************************************
Во второй консоли, выполняется сценарий DS1620_emission.sh
*****************************************************************

Commande: cat /dev/ttyS0 > temperature.dat

2 bash-сценарий (файл DS1620_emission.sh) :

#!/bin/bash
# bash-сценарий для Linux
# (C) Фабрис Сэнсэр; Версия 1.0.1
# Связь RS232 (COM-порт) между компьютером и микроконтроллером PIC

clear

message=’В другой консоли, запуск первого сценария DS1620_reception.sh’
echo-e «\n**************************************************************************»
echo-e «$message»
echo-e»**************************************************************************\n»

# бесконечный цикл
# посылает 3 байта (0xAA 0x00 0x00) = ПИК
# повторяет операцию каждые 5 секунд
while [ 1 ]
do
message=’Emission : echo-e-n «\xAA\x00\x00» > /dev/ttyS0′
echo «$message»
echo-e-n «\xAA\x00\x00» > /dev/ttyS0

sleep 5s
# вывод содержимого файла данных, полученного с помощью компьютера (в шестнадцатеричном формате)
echo-e «Прием»
od-t x1 temperature.dat
done

В консоли, выполнение этого сценария bash дает :

fabrice@imedia2089:~$ ./DS1620_emission.sh

**************************************************************************
В другой консоли, исполнение первого сценария DS1620_reception.sh
**************************************************************************

Посылка: echo-e-n «\xAA\x00\x00» > /dev/ttyS0
Приём

0000000 00 32
0000002
Посылка: echo-e-n «\xAA\x00\x00» > /dev/ttyS0
Приём
0000000 00 32 00 32
0000004
Посылка: echo-e-n «\xAA\x00\x00» > /dev/ttyS0
Приём
0000000 00 32 00 32 00 32
0000006
Посылка: echo-e-n «\xAA\x00\x00» > /dev/ttyS0
Приём
0000000 00 32 00 32 00 32 00 33
0000010



Два последних полученных байта — 0x33 0x00, соответствующих температуре +25,5 °C.

11. Проверка температуры через интернет с MySQL

Вам нужен Интернет-хостинг с PHP и базой данных MySQL.У автора статьи хостинг Olympe Network (бесплатный и без рекламы).

11-1. Локальная установка web_temperature.exe

Это приложение запускается на локальном компьютере, куда подключено устройство для сбора данных о температуре (через порт RS232).

Оно позволяет :

  1. CREATE TABLE IF NOT EXISTS web_temperature1 (ID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,date date NOT NULL,time time NOT NULL,temperature varchar(20) collate latin1_general_ci NOT NULL) ENGINE = MYISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
  2. INSERT INTO web_temperature1(ID,date,time,temperature) VALUES (NULL,CURDATE(), CURTIME(), ‘21,5’)
  3. SELECT date,time,temperature FROM web_temperature1 ORDER BY ID DESC LIMIT 0,1

Приложение состоит из двух файлов :

Скачать web_temperature.exe (263 кб)
Скачать libmysql.dll (1,0 Мб)

Исходный код приложения
Это приложение было написано на C++ Borland Builder 5.

Скачать исходный код (222 кб)

Примечание: Для связи с COM-портом (RS232), необходимо установить компонент TComPort (о котором я уже говорил выше).Для связи с базой данных MySQL необходима библиотека C libmysql, которую вы можете свободно скачать с официального сайта www.mysql.com:
Раздел: Downloads
-> mysql-connector-c-noinstall-6.0.2-win32.zip
Чтобы использовать эту библиотеку в C++ Borland Builder 5, вот внешняя ссылка:
Учебник: Использование API MySQL в Borland C++ Builder
Небольшое упущение в этом учебнике: нужно добавить libmysql.lib в проект (Проект -> Добавить в проект -> libmysql.lib)
Полезная ссылка: http://fabrice.sincere.pagesperso-orange.fr/application_builder5/client_mysql/mysql_client_builder.html

11-2. Чтение температуры через интернет: сценарий PHP

В вашем любимом веб-браузере, температура доступна в режиме реального времени на веб-странице в php. Сценарий PHP подключается к базе данных MySQL (через сеть интернет).Он считывает и отображает информацию, ранее записанную локальным приложением (обновление каждые 5 минут).
Скачать исходный код сценария PHP

12. Проверка температуры через интернет с FTP

Вам нужен интернет-хостинг .

12-1. Локальная установка web_temperature_ftp.exe

Это приложение запускается на локальном компьютере, куда подключается устройство для сбора данных о температуре (через порт RS232).

Оно позволяет :

Скачать web_temperature_ftp.exe (292 кб)

Это приложение было написано на C++ Borland Builder 5.

Скачать исходный код (15 кб)

12-2. Чтение температуры через интернет

В вашем любимом веб-браузере, температура доступна в реальном времени в URL:

http://fabrice.sincere.pagesperso-orange.fr/web_temperature.txt

13. Список оборудования и деталей

Без интерфейса RS232 :

С интерфейсом RS232: дополнительные компоненты

14. Печатная плата

Размеры: 62 x 100 мм
Односторонняя.
web_temperature_ftp_code_source
Скачать фотошаблон
Примечание: Не забудьте 9–контактный разъём (припаяйте в первую очередь).

15. Прошивка для PIC 16F628A

Исходный код был написан на ассемблере в бесплатной среде MPLAB IDE от Microchip.

Скачать прошивку (.hex) исходный код на ассемблере (.asm)

 Перевод Павла Блинкова (grayling3000) по заказу сайта Меандр

Оригинал статьи

Exit mobile version