Старты для чайников
Модератор: immortal
Старты для чайников
Господа, добрый день. Комплект умная квартира - это замечательно. Но т.к. опыт в этом деле почти нулевой, может есть у кого какой то материал в виде мурзилок с графическими схемами, скринами, каментами и готовыми сценариями к системе? Самый элементарный контроль по свету как реализовать? Ну или чтоб система просто привет утром сказала ))) Что именно купить и как настроить. С малого начать бы.
- adzam
- Сообщения: 602
- Зарегистрирован: Сб дек 08, 2012 10:28 pm
- Откуда: Кишинев
- Благодарил (а): 20 раз
- Поблагодарили: 138 раз
Re: Старты для чайников
Чтоб система сказала доброе утро ничего покупать не надо,kbnn писал(а):Поддерживаю. Уже час пытаюсь понять с чего начать и пока не понял.
надо установить прогу и написать пару строк и все
Мои проекты здесь...https://connect.smartliving.ru/profile/41/blog213.htm
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
Re: Старты для чайников
Отлично!
Первые шаги:
1. Установить дистрибутив (в моем случае Windows версия).
2. Подключить IP камеру. КАК?
Первые шаги:
1. Установить дистрибутив (в моем случае Windows версия).
2. Подключить IP камеру. КАК?
-
- Сообщения: 867
- Зарегистрирован: Вт янв 17, 2012 12:31 pm
- Благодарил (а): 121 раз
- Поблагодарили: 78 раз
Re: Старты для чайников
например как написано в данной статьеkbnn писал(а):Отлично!
Первые шаги:
1. Установить дистрибутив (в моем случае Windows версия).
2. Подключить IP камеру. КАК?
http://smartliving.ru/Main/ScNetCam
Re: Старты для чайников
Первые шаги:
1. Установить дистрибутив (в моем случае Windows версия).
2. Подключить IP камеру.
Инструкция: Перейти по ссылке "Панель управления" (правый верхний угол).
В вертикальном меню Панели управления выбрать "Домашние страницы"
Нажать кнопку "Новая страница"
Заполнить поля :
Название: Камеры
Приоритет: 50
Тип: HTML Code
КОД:
например как написано в данной статье
http://smartliving.ru/Main/ScNetCam
3. Исправить настройки часового пояса и языка можно по ссылке:
http://127.0.0.1/popup/first_start.html
заменив IP и порт на свой
4. Заставить работать Медиа
Для начала нужно создать медиа коллекцию:
MajorDoMo / Панель управления/Медиа -> Добавить новую коллекцию
Заполнить поля Название: и Путь:, Путь следует указывать сетевой, предварительно расшарив папку.
Пример:\\Comp\SmartHouse\WakeUP\
После этого проверить параметры Терминала:
MajorDoMo / Панель управления/Терминалы -> Редактировать
Хост (адрес): (*) = Свой IP
может проигрывать медиа-контент = Галка
Тип плэйера: VLC
Порт доступа к плэеру: Порт на котором работает MajorDoMo
После этого у меня заработал плэер.
5. Контроль за температурой в помещении.
5.1 Аппаратная часть
Для измерения температуры я использовал:
контроллер Arduino http://amperka.ru/collection/boards/product/arduino-uno
Ethernet Shield http://amperka.ru/collection/boards/pro ... net-shield
Датчик температуры DS18B20+ http://amperka.ru/collection/sensors/pr ... or-ds18b20
Сразу замечу, что цены в данном магазины намного выше чем в Китае но зато доставка быстрее.
Схема подключения:
В данном случаем я передаю в MDM только температуру в одной комнате.
Ниже представлен код для загрузки в Arduino:
Следует обратить внимание на строчки:
Тут следует указать IP на котором работает MDM:
Тут указан порт на котором работает MDM:
Следующая строка содержит информацию для изменяемого объекта:
Объект=SensorZal
метод=tempChanged
параметр=t
Данные параметры должны соответствовать заведенным в MDM (см. ниже)
5.2 Серверная часть
В MDM выбираем: Панель управления->Объекты
в Дереве объектов выбрать класс tempSensors
проверить наличие у него:
- свойства temp (для этого свойства нужно включить хранение 7 дней (впрочем количество дней по желанию))
Далее как на рисунке, данные свойства просто должны быть, они ни чем не заполняются. - Проверить и если нет то создать Метод tempChanged
Код Метода tempChanged
- Создать объект SensorZal
Обратите внимание что: SensorZal и tempChanged это те объекты, которые упоминались в Аппаратной части (см. выше).
После этого можно строить график температуры воспользовавшись Визардом: http://smartliving.ru/Main/WizardGraphics
Вот и все.
1. Установить дистрибутив (в моем случае Windows версия).
2. Подключить IP камеру.
Инструкция: Перейти по ссылке "Панель управления" (правый верхний угол).
В вертикальном меню Панели управления выбрать "Домашние страницы"
Нажать кнопку "Новая страница"
Заполнить поля :
Название: Камеры
Приоритет: 50
Тип: HTML Code
КОД:
Код: Выделить всё
<div align="center">
<br><img src="http://192.168.1.101:85/videostream.cgi?user=Admin&pwd=pass&resolution=8&rate=6" width="340">
</div>
http://smartliving.ru/Main/ScNetCam
3. Исправить настройки часового пояса и языка можно по ссылке:
http://127.0.0.1/popup/first_start.html
заменив IP и порт на свой
4. Заставить работать Медиа
Для начала нужно создать медиа коллекцию:
MajorDoMo / Панель управления/Медиа -> Добавить новую коллекцию
Заполнить поля Название: и Путь:, Путь следует указывать сетевой, предварительно расшарив папку.
Пример:\\Comp\SmartHouse\WakeUP\
После этого проверить параметры Терминала:
MajorDoMo / Панель управления/Терминалы -> Редактировать
Хост (адрес): (*) = Свой IP
может проигрывать медиа-контент = Галка
Тип плэйера: VLC
Порт доступа к плэеру: Порт на котором работает MajorDoMo
После этого у меня заработал плэер.
5. Контроль за температурой в помещении.
5.1 Аппаратная часть
Для измерения температуры я использовал:
контроллер Arduino http://amperka.ru/collection/boards/product/arduino-uno
Ethernet Shield http://amperka.ru/collection/boards/pro ... net-shield
Датчик температуры DS18B20+ http://amperka.ru/collection/sensors/pr ... or-ds18b20
Сразу замечу, что цены в данном магазины намного выше чем в Китае но зато доставка быстрее.
Схема подключения:
В данном случаем я передаю в MDM только температуру в одной комнате.
Ниже представлен код для загрузки в Arduino:
Код: Выделить всё
/**
* Контроллер-сборщик данных (к проекту http://smartliving.ru/)
* Platform: Arduino UNO R3 + EthernetShield W5100
**/
#include <Ethernet.h>
#include <SPI.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <math.h>
// MAC-адрес нашего устройства
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 250 };
byte subnet[] = { 255, 255, 255, 0 };
byte gateway[] = { 192, 168, 1, 1 };
byte dns_server[] = { 192, 168, 1, 1 };
// ip-адрес удалённого сервера
byte server[] = { 192, 168, 1, 200 };
EthernetClient rclient;
// Pin controller for connection data pin DS18S20
#define ONE_WIRE_BUS 2 // Digital 2 pin Arduino (куда подключен выход с шины датчиков DS18X20
#define TEMPERATURE_PRECISION 9
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// Для поиска
DeviceAddress Termometers;
// Инициализация начальных значений
float tempC;
int old_temperature1=0;
char buf[80];
char ipbuff[16];
// ------------------------------------------------------------------------------------------------
// Функция отправки HTTP-запроса на сервер
void sendHTTPRequest() {
Serial.println("Begin send request");
Serial.println(buf);
if (rclient.connect(server, 81)) {
Serial.println("OK");
rclient.print(buf);
rclient.println(" HTTP/1.0");
rclient.print("Host: ");
sprintf(ipbuff, "%u.%u.%u.%u", ip[0], ip[1], ip[2], ip[3]);
rclient.println(ipbuff); // ip адрес нашего контроллера в текстовом виде
rclient.print("Content-Type: text/html\n");
rclient.println("Connection: close\n");
delay(2000);
rclient.stop();
} else {
Serial.println("FAILED");
}
}
/**************************************************************************************************
*/
void searchDevices() {
Serial.println("Start search on 1-wire");
int numberOfDevices = sensors.getDeviceCount();
Serial.print("Searched 1-wire units: ");
Serial.println(numberOfDevices);
// sensors.begin();
for(int i=0;i<numberOfDevices; i++) {
if(sensors.getAddress(Termometers, i))
{
Serial.print("Found device ");
Serial.print(i, DEC);
Serial.print(" with address: ");
for (uint8_t i = 0; i < 8; i++) {
if (Termometers[i] < 16) Serial.print("0");
Serial.print(Termometers[i], HEX);
}
Serial.print("Resolution actually set to: ");
Serial.print(sensors.getResolution(Termometers), DEC);
Serial.println();
float tempC = sensors.getTempC(Termometers);
Serial.print(tempC);
Serial.println("C");
} else {
// not found
}
}
}
/**************************************************************************************************
*/
// ------------------------------------------------------------------------------------------------
void setup()
{
// Для дебага будем выводить отладочные сообщения в консоль
Serial.begin(9600);
Serial.println("Start");
// Настройки 1-wire
sensors.begin(); // Инициализация шины 1-wire (для датчиков температуры)
searchDevices();
Ethernet.begin(mac, ip, dns_server, gateway, subnet); // Инициализируем Ethernet Shield
}
// ------------------------------------------------------------------------------------------------
void loop()
{
// Перед каждым получением температуры надо ее запросить
sensors.requestTemperatures();
int valid_sensor=0;
delay(1000); // задержка в 1 сек.
// TEMP SENSOR 1 --------------------------------------
float current_temp1=0;
sensors.getAddress(Termometers, 0);
float tempC = sensors.getTempC(Termometers); // Получим температуру от датчика (или ошибку)
if (tempC == DEVICE_DISCONNECTED) {
// Устройство отсоеденнено
Serial.println("Termometer1 is DEVICE_DISCONNECTED");
// TODO Послать бы на сервер сигнал о том, что датчит не отвечает
} else {
// Устройство отдало реальное значение температуры (или осталось старое)
Serial.print("T1: ");
current_temp1 = tempC; // получаем температуру
Serial.println(current_temp1);
if ((old_temperature1!=(int)current_temp1) && (current_temp1<79) && (current_temp1>5)) {
int temp1 = (current_temp1 - (int)current_temp1) * 100; // выделяем дробную часть
sprintf(buf, "GET /objects/?object=SensorZal&op=m&m=tempChanged&t=%0d.%d", (int)current_temp1, abs(temp1));
sendHTTPRequest();
}
old_temperature1=(int)current_temp1;
}
}
Тут следует указать IP на котором работает MDM:
Код: Выделить всё
// ip-адрес удалённого сервера
byte server[] = { 192, 168, 1, 200 };
Код: Выделить всё
if (rclient.connect(server, 81)) {
Код: Выделить всё
sprintf(buf, "GET /objects/?object=SensorZal&op=m&m=tempChanged&t=%0d.%d", (int)current_temp1, abs(temp1));
метод=tempChanged
параметр=t
Данные параметры должны соответствовать заведенным в MDM (см. ниже)
5.2 Серверная часть
В MDM выбираем: Панель управления->Объекты
в Дереве объектов выбрать класс tempSensors
проверить наличие у него:
- свойства temp (для этого свойства нужно включить хранение 7 дней (впрочем количество дней по желанию))
Далее как на рисунке, данные свойства просто должны быть, они ни чем не заполняются. - Проверить и если нет то создать Метод tempChanged
Код Метода tempChanged
Код: Выделить всё
//$params['t']
$this->setProperty("updated",time());
$this->setProperty("updatedTime",date("H:i",time()));
$this->setProperty("alive",1);
$ot=$this->object_title;
$alive_timeout=(int)$this->getProperty("aliveTimeOut");
if (!$alive_timeout) {
$alive_timeout=30*60;
}
clearTimeOut($ot."_alive");
setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout);
if (!isset($params['t'])) {
return;
}
$old_temp=$this->getProperty('temp');
$t=round($params['t'],1);
if ($t>110) return;
$this->setProperty('temp',$t);
if ($params['uptime']) {
$this->setProperty('uptime',$params['uptime']);
}
if ($t>$old_temp) {
$d=1;
} elseif ($t<$old_temp) {
$d=-1;
} else {
$d=0;
}
$this->setProperty('direction',$d);
$linked_room=$this->getProperty("LinkedRoom");
if ($linked_room) {
setGlobal($linked_room.'.Temperature',$t);
}
После этого можно строить график температуры воспользовавшись Визардом: http://smartliving.ru/Main/WizardGraphics
Вот и все.
Последний раз редактировалось kbnn Ср сен 18, 2013 10:20 pm, всего редактировалось 15 раз.
- Рейтинг: 5.81%
Re: Старты для чайников
Вот еще вопрос. Хочется сделать мониторинг тока в квартире. Понятно, что потребуется Ардуино но с этим проблем нет. Не могу найти Датчик тока. Причем хотелось бы без контактный. Нашел вот такой
http://dx.com/p/ta17-03-octopus-non-inv ... ick-165262 но он только на 10А вроде маловато.
Может кто то знает что нить подобное но посильнее.
http://dx.com/p/ta17-03-octopus-non-inv ... ick-165262 но он только на 10А вроде маловато.
Может кто то знает что нить подобное но посильнее.
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Старты для чайников
У меня точно такой же уже куплен, но времени никак нет его прикрутить и попробовать. А почему он на 10А? Он ведь безконтактный и от большого тока ему не должно быть плохо.kbnn писал(а):Вот еще вопрос. Хочется сделать мониторинг тока в квартире. Понятно, что потребуется Ардуино но с этим проблем нет. Не могу найти Датчик тока. Причем хотелось бы без контактный. Нашел вот такой
http://dx.com/p/ta17-03-octopus-non-inv ... ick-165262 но он только на 10А вроде маловато.
Может кто то знает что нить подобное но посильнее.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги