понедельник, 23 сентября 2013 г.

Подключение первого датчика (DHT11)


Вот и настало время подключить первый датчик и создать заготовку для дальнейшего приложения, которое по мере сил будет расширятся и дополнятся.
На рисунке приведена схема подключения датчика, я использую плату Arduino Mega и датчик температуры и влажности DHT11.
 
Питание мы возмём непосредственно с платы, для питания датчика необходимо +5В. Сигнальную линию подключил к 52 выводу платы. Собрав эту схему подключим схему к компьютеру, у меня при подключение создался виртуальный порт СОМ3 (возможно у вас будет другой).
 
Теперь приступим к созданию программы или точнее сказать прошивки микроконтроллера. Для этого создадим новый проект Arduino в Microsoft Visual Studio c установленным плагином Visual Micro.
 
 


В качестве имени проекта я указал ArdSmartHouse, вы можете конечно же выбрать своё имя проекта.

После этого мы увидим пустой проект.

Я не буду останавливаться на деталях разработки под ардуино если вы хотите найти информацию по этой теме то можете обратится к соответствующим форумам.
Для работы с датчиком нам потребуется дополнительная библиотека
Я воспользовался вот этой библиотекой:
https://github.com/adalton/arduino/tree/master/projects/Dht_Library
Загрузите её и поместите в соответствующий каталог вашей среды.
Для теста правильного подключения датчика и правильной настройки среды разработки вы можете скопировать данный скетч скомпилировать его и загрузить полученную сборку в ваш микроконтроллер.
 
//---Подключение дополнительных библиотек---
#include <dht11.h>
#include <dht.h>
//---Подключение собственных библиотек---
//---Глобальные объекты---
Dht11 dht11(52);
//---Глобальные переменные---
//---Вспомогательные функции---
void readSensor(Dht& sensor) {
    switch (sensor.read()) {
    case Dht::OK:
        Serial.print("Влажность (%): ");
        Serial.println(sensor.getHumidity());

        Serial.print("Температура (C): ");
        Serial.println(sensor.getTemperature());
        break;

    case Dht::ERROR_CHECKSUM:
        Serial.println("Ошибка CRC");
        break;

    case Dht::ERROR_TIMEOUT:
        Serial.println("Таймаут");
        break;

    default:
        Serial.println("Неизвестная ошибка");
        break;
    }
}
//---Базовая настройка---
void setup()
{
  Serial.begin(9600);
}
//---Основной цикл программы---
void loop()
{
 delay(2000);
 readSensor(dht11);
}
 
Если всё прошло успешно то открыв окно мониторинга порта вы увидите показатели полученные с датчика.
Теперь вы как минимум можете получить данные о температуре и влажности в комнате. Забегая вперёд скажу что бы можете подключить не один а несколько таких датчиков к одной плате, допустим вы захотите один на улицу разместить.
На сегодня всё, я обычно пишу и одновременно слушаю музыку, чему соседи уже явно не рады. ;)
PS: Возможно у вас не получится увидеть надписи на русском, не расстраивайтесь попробуйте поменять кодировку файла на Win-1251.
 

суббота, 21 сентября 2013 г.

Что же можно автоматизировать...

Для начало надо понять а что можно автоматизировать и какими силами, можно конечно ответить "ВСЁ" и ответ будет отчасти верным, отчасти потому что всё и сразу автоматизировать трудно. И вопрос тут не только в бюджете и времени, но и в том что это слишком сложно.
Итак давайте по порядку, т.е. начнём с простых вещей первое что легко поддаётся автоматизации это всё что управляется по каналу ИК, т.е. телевизор, DVD, кондиционер и тд., второе то что может управляться с использованием радиомодулей: это выключатели, розетки и другое барахло которое можно купить в китайских интернет магазинах и третье это различные измерения внешних факторов (температуры, влажности, освещенности и тд.)
Все эти не сложные операции требуют детальной проработки. Мы с вами начнём с измерения внешних показателей пока с использованием возможностей среды разработки, после чего перейдём к разработке программного модуля.
Для всего что будет изложено далее нам потребуется:
1. Желание
2.Время
3.Компьютер
4.Arduino Uno (Mega,Leonardo,Mini и тд.)
5.Microsoft Visual Studio 2010-2012 (понадобится вдальнейшем для разработки ПО, но и сейчас в ней удобно писать под ардуино) + Plug-In VisualMicro
6. Датчик температуры и влажности DHT11 или DHT22
датчик температуры DS18B20
,
фоторезистор 
.
Вообщем-то это и всё что потребуется для первых экспериментов, ну естественно нужна макетная плата, соеденительные провода и набор различных резисторов, но это уже легко можно найти в любом ларьке электродеталей.


вторник, 17 сентября 2013 г.

Общие сведения и безопасность

Все что будет здесь написано я пишу исключительно для ознакомления, и следовательно не несу ответственности за любые последствия применения тех или иных решений и конструкций, а равно и за ущерб причинённый их применением или не соблюдением техники безопасности при изготовление тех или иных конструкций.
Также все мысли и предположения это моё ИМХО и не может быть использовано как последняя инстанция в каких бы то ни было спорах.
Прошу всех кто решит что либо повторить из описанного в этом блоге прочитать технику безопастности и выучить её. Некоторые вещи описанные мною не соответствуют никаким правилам ТБ - повторять такие вещи только на свой страх и риск.
Для ознакомления несколько ссылок на ТБ:
Правила техники безопасности и гигиены при работе на ПК
Инструкция по охране труда для работников, занятых пайкой и лужением изделий паяльником
ПРАВИЛА ТЕХНИКИ БЕЗОПАСНОСТИ ПРИ РАБОТЕ С ЭЛЕКТРИЧЕСКИМ ТОКОМ

С чего всё начинается

Всё когда-то и с чего-то начинается. Вот и этот блог начинается с этой записи. Ну а что касается темы моего блога то началось всё с того что я в очередной раз потерял пульт от телевизора...