Муниципальное бюджетное образовательное учреждение
«Бердигестяхская средняя общеобразовательная школа»
Автономная некоммерческая организация «Росток»
ДОКЛАД
на тему:
«Температурный датчик с оповещением через СМС на
робоплатформе Ардуино»
Выполнил: Петров Альберт 9 класс
Руководитель: Ефремов И.В.
с.Бердигестях
2016
СОДЕРЖАНИЕ
Введение
Подключение дисплея
Подключение
передатчика
Подключение приемника
Создание модели на 3Д
принтере
Введение
Мы живем в сельской местности, в частности в
Горном улусе село Бердигестях. В нашем селе газового отопления нету, не все
дома подключены к центральному отоплению, многие дома имеют собственное
отопление. Поэтому появляется необходимость контролировать температуру
помещения, дома, квартиры, гаража и т.д. По этому, наша тема доклада «Оповещение
температуры воздуха в помещении через СМС на Arduino» особенна актуальна.
Цель проекта: создание оборудования для
Температурный датчик с оповещением через СМС на робоплатформе Ардуино
Задачи:
- измерить
температуру помещения с помощью датчика;
- передать полученные данные на расстоянии;
- создать панели для приемника и передатчика с
помощью 3Д принтера;
Arduino Uno контроллер построен на ATmega328.
Платформа имеет 14 цифровых вход/выходов (6 из которых могут использоваться как
выходы ШИМ), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB,
силовой разъем, разъем ICSP и кнопку перезагрузки.
Рис.1 Arduino Uno
Модуль датчика температуры
Temperature sensor module KY-013
Модуль содержит аналоговый датчик температуры – терморезистор. С изменением температуры корпуса
терморезистора меняется его сопротивление. С помощью модуля KY-013
электроника грубо определяет температуру воздуха. Основное назначение
терморезистора – контроль температуры воздуха, но с его помощью можно
контролировать температуру поверхности. Для этого он прижимается механическим
креплением к поверхности, а между терморезистором и поверхностью вносят
термопроводящую пасту. В крайнем случае при отсутствии пасты терморезистор
приклеивают.
В автоматике
используется для грубого определения температуры, что позволяет включать или
отключать исполнительные устройства с помощью схем на дискретных элементах.
Основное назначение – коррекция, стабилизация режима работы цепей схем при
колебаниях температуры. Для точного измерения температуры, сборки электронных
термометров применяют цифровой датчик.
Рис.2 Датчик температуры
Характеристики:
- Диапазон рабочей температуры от -55 до 125 °C
- Потребляемая мощность 5 Вольт
Схема:
Arduino
pin analog A5 --> module S (Signal)
Arduino
pin GND - module -
Arduino
pin 5+ --> middel pin 5V
рис.3 Схема подключения датчика
Скетч
(программа) для обработки данных с датчика температуры:
#include <math.h> //Считывает библиотеку math
int sensorPin = A0; //вход для датчика температуры
double Thermistor(int RawADC) {
double Temp;
Temp = log(10000.0*((1024.0/RawADC-1)));
Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp );
Temp = Temp - 273.15; //Преобразует Kelvin на Celcius
return Temp; }
void setup() {
Serial.begin(9600);
}
void loop() {
int readVal=analogRead(sensorPin);
double temp = Thermistor(readVal);
Serial.println(temp); //вывод показания температуры
delay(500);
}
Рис.Схема
подключения датчика к Ардуино
Подключение дисплея LCD Nokia
5110 к ардуино:
Подключайте согласно
изображению. Если у вас печатная плата не красная а синяя, то к контакту №7(BL)
нужно вместо GND подавать +3.3В.
Предназначение:
RST - Вывод для
перезагрузки контроллера дисплея.
CE - Состояние данного вывода разрешает или
запрещает ввод данных в контроллер дисплея
DC -
Вывод выбора режима ввода данных - Данные/Команды
DIN - Вход данных последовательного интерфейса
SPI
CLK -
Тактирующий вывод для последовательного интерфейса SPI
VCC -
Питание контроллера дисплея 2.7 - 3.3Вольт
BL (LIGHT) - Подсветка
GND - GND
Скетч
Предварительно скачайте и установите библиотеку для
работы с дисплеем (просто распакуйте в папку Library). Еще понадобится
библиотека Adafruit_GFX.
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);
void setup() {
display.begin();
display.clearDisplay();
display.setContrast(50);
display.setTextSize(1);
display.setTextColor(BLACK);
display.setCursor(0, 0);
display.println("www.2150692.ru");
display.println("--------------");
display.println(" NOKIA 5110");
display.display();
delay(2000);
}
void loop() {}
Если на экране изображение слишком бледное или совсем
ничего не видно, то в скетче попробуйте поменять контраст вместо 50 например
60:
display.setContrast(60);
Приёмник
+ передатчик 433MHZ (комплект модулей)
433Mhz RF Wireless Transmitter Receiver Module
Комплект состоит из двух модулей:
радиопередатчика и приемника, настроенных на частоту 433,92 МГц. Он
предназначен для создания простого радиоканала трансляции данных, где происходит
передача команд без обратной связи. Контроль выполнения команды дистанционного
управления с помощью комплекта приемник + передатчик 433MHZ производится
оператором. Например: квартирный радиозвонок, дистанционное включение
освещения, управление электромагнитным замком двери, двигателями штор, жалюзи,
видеокамеры. Источники питания приборов должны иметь хорошую фильтрацию от
помех сети 220 В.
Приемник и передатчик 433MHZ
рассчитаны на антенны с волновым сопротивлением 50 Ом. Они изготавливаются из
одножильного провода длинной 17 см, что примерно соответствует 1/4 длины волны
сигнала 433,92 МГц или из проволоки длинной 33 см, свернутой в спираль, что
примерно соответствует ½ длины волны. Антенны устанавливаются как можно дальше
от источников помех и металлических конструкций.
Характеристики
Питание
напряжение
номинальное 5 В,
пределы 3,5–12 В.
ток 9–40 мА
Несущая частота 315 МГц или 433,92 МГц
150 КГц±Максимальное
отклонение частоты
Мощность передачи
номинальная 10 мВт (при питании 5 В),
максимальная 25 мВт (на частоте 315 МГц при питании 12 В).
Скорость передачи данных 2 Кбод
Размеры платы 19 x 19 мм
Описание
Устройство передает сигналы с помощью
разновидности амплитудной модуляции ООК (On Off Кeying). Это альтернатива
обычной амплитудной модуляции ASK несущей частоты. Альтернативой является
бинарная форма модуляции. При обычной модуляции ASK происходит постоянное
энергопотребление, а в процессе ООК энергии требуется меньше. Скорость передачи
данных в режиме ООК ограничивается временем выхода генератора на рабочий режим.
Благодаря использованию в передатчике ООК модуляции происходит экономия
энергии, что особенно важно при питании от батарей.
Подключение (схема) Приёмник + передатчик 433MHZ (комплект модулей)
Подключение Приёмник + передатчик 433MHZ (комплект модулей)
Подключаем по схеме
дисплей LCD Nokia5110 и ресивер (приемник) к плате Arduino Uno R3. Данный
ресивер должен приниамть сигнал с трансмиттера (передатчика) и вывести
результат на дисплей. Для этого написали программу приема сигнала и вывода на
дисплей. В программе используются бибилиотеки VirtualWire.h для работы ресивера, библиотеки Adafruit_GFX.h и Adafruit_PCD8544.h для работы дисплея, math.h для работы с данными температуры.
Скетч(программа)
для ресивера(приемника)
#include <VirtualWire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <math.h>
//Считывает библиотеку
Adafruit_PCD8544 display =
Adafruit_PCD8544(3, 4, 5, 6, 7);
const int led_pin =
11; //Вход для приемника
const int transmit_pin = 12;
const int receive_pin = 2;
const int transmit_en_pin = 1;
void setup()
{
delay(1000);
Serial.begin(9600); // Отладка
display.begin(); // Инициализация дисплея
display.setContrast(60); // Устанавливаем контраст
display.setTextColor(BLACK); // Устанавливаем цвет текста
display.setTextSize(1); // Устанавливаем размер текста
display.clearDisplay(); // Очищаем дисплей
display.display();
delay(1000);
Serial.println("Setup");
// Инициализируем IO и ISR
vw_set_tx_pin(transmit_pin);
vw_set_rx_pin(receive_pin);
vw_set_ptt_pin(transmit_en_pin);
vw_set_ptt_inverted(true);
vw_setup(2000);
vw_rx_start(); // Запустите приемник
pinMode(led_pin, OUTPUT);
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen =
VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf,
&buflen))
{ int
i;
digitalWrite(led_pin, HIGH); // Вспышка света, чтобы показать
хорошее сообщение принятый
for (i = 0; i < buflen; i++)
{
// Очищаем дисплей
display.clearDisplay();
display.display();
delay(25);
// Выведем текст
display.setTextSize(1);
display.println(" TEMPERATURA
");
display.setTextSize(4);
display.print(" ");
display.println(buf[i], DEC);
display.display();
delay(500);
Serial.print(buf[i], DEC);
Serial.print(' ');
}
Serial.println();
digitalWrite(led_pin, LOW);
}
}
Подключаем трансмиттер и датчик температуры Temperature
sensor module KY-013 к Ардуино UNO:
Подключаем
трансмиттер и датчик температуры к Ардуино по схеме. Датчик температуры
передает сигнал.
Скетч (программа) для трансмиттера (передатчика)
#include <VirtualWire.h>
#include <math.h>
int sensorPin = A5; // select the input pin
for the potentiometer
double Thermistor(int RawADC) {
double Temp;
Temp = log(10000.0*((1024.0/RawADC-1)));
Temp = 1 / (0.001129148 + (0.000234125 +
(0.0000000876741 * Temp * Temp ))* Temp );
Temp = Temp - 273.15; //
Convert Kelvin to Celcius
//Temp = (Temp * 9.0)/ 5.0 + 32.0; //
Convert Celcius to Fahrenheit
return Temp;
}
const int led_pin = 11;
const int transmit_pin = 12;
const int receive_pin = 2;
const int transmit_en_pin = 3;
void setup(){
Serial.begin(9600);
// Initialise the IO and ISR
vw_set_tx_pin(transmit_pin);
vw_set_rx_pin(receive_pin);
vw_set_ptt_pin(transmit_en_pin);
vw_set_ptt_inverted(true); // Required
for DR3100
vw_setup(2000); // Bits per sec
pinMode(led_pin, OUTPUT);
}
byte count = 1;
void loop() {
int readVal=analogRead(sensorPin);
double temp = Thermistor(readVal);
Serial.println(temp); // display tempature
//Serial.println(readVal); // display
tempature
delay(500);
char msg[7] = {temp};
msg[7] = count;
digitalWrite(led_pin, HIGH); // Flash a
light to show transmitting
vw_send(msg, 1);
vw_wait_tx(); // Wait until the whole
message is gone
digitalWrite(led_pin, LOW);
delay(1000);
count = count + 1;
}
Создание модели оборудования на 3Д принтере:
С
помощью программы 123Д Design создали модель оборудования
Распечатываем
с помощью принтера
Заключение
·
Мы изучили язык
программирования Ардуино.
·
Составили план-схему для
создания оборудования.
·
Подобрали необходимые
детали и датчик;
·
Сделали модель на 123Д и
распечатали на 3Д принтере;
Данное оборудование позволяет узнать
температуру помещения на расстоянии 90 метров.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.