• Добро пожаловать на форум умных покупателей! Присоединяйтесь к нашей уютной компании и участвуйте в обсуждениях – Регистрация

Компонент умного дома от конторы Jinan USR IOT tech ltd

R

roman1017

Продвинутый
Регистрация
3 Янв 2012
Сообщения
187
Баллы
219
Оживлю тему...
Проект на ардуино Nano -автоматизация включения вытяжки и света в туалете (программу-"скетч" дам позже) .
Выглядит все так- при входе датчик (HC-SR04) измеряет расстояние от своей точки расположения , "до точки свободного унитаза" и сравнивает ардуино с расстоянием до "занятого " - таким образом, даже если "клиент" не движется -система понимает , что ОН ТАМ ЕСТЬ , и не выключает свет- и не включает вытяжку . Как только расстояние до "точки свободного унитаза " увеличивается -сразу(ну тут можно хоть какую сделать задержку) выключается свет и включается вытяжка . Сам датчик (HC-SR04)вы найдете в "голом " виде , а мне китаец боится присылать 3D принтер по частям , потому привожу фото как я сделал корпус.

Если кому поможет - значит не зря старался )

Продолжение следует...

Добавлено спустя 5 мин. 12 сек.
да , забыл.. все залито из "термопистолета", и поскольку клей прозрачный , можно светодиодом визуально показывать сработало или нет .

Добавлено спустя 10 мин. 3 сек.
Я думаю модератор , при желании может создать отдельную тему "умный дом" или как хочет )

Добавлено спустя 1 мин. 34 сек.
Вызов "Тебе Вам" - бросай эти реле ))

Добавлено спустя 2 мин. 35 сек.
эт я для Esonya
 

Вложения

  • IMG_0511.JPG
    IMG_0511.JPG
    176.6 КБ · Просмотры: 87
  • IMG_0512.JPG
    IMG_0512.JPG
    175.7 КБ · Просмотры: 83
  • IMG_0514.JPG
    IMG_0514.JPG
    93 КБ · Просмотры: 93
  • IMG_0522.JPG
    IMG_0522.JPG
    100.4 КБ · Просмотры: 90
ESonya

ESonya

Крутой иБаер
Регистрация
24 Окт 2011
Сообщения
1 526
Баллы
528
Местоположение
С-Посад
Проект на ардуино Nano -автоматизация включения вытяжки и света в туалете (программу-"скетч" дам позже) .
Оригинально!
но не будет ли это "стрельба из пушки по воробьям", не жирно ли ставить микроконтроллер в туалет? ;) Есть же готовый простой туалетный таймер.
Хотя, глянув на цены на arduino nano и сам датчик, был приятно удивлён.

Как только расстояние до "точки свободного унитаза " увеличивается -сразу(ну тут можно хоть какую сделать задержку) выключается свет и включается вытяжка .
Алгоритм стоит немного изменить, дополнив задержкой от первого срабатывания: если человек зашёл по-малому (провёл пару минут), то вытяжку не включаем; а если что-то высидел, то через 3 минуты включаем вытяжку и она работает всё время и ещё 5 минут после того, как он ушёл.

Вызов "Тебе Вам" - бросай эти реле ))
эт я для Esonya
Я пока отошёл от дел и не занимаюсь автоматизацией дома, а напрямую его отделкой. А тот компонент выполняет пока единственную роль - через него я контролирую через интернет температуру и влажность в доме.

Добавлено спустя 1 мин. 11 сек.
выключается свет и включается вытяжка
А что отвечает непосредственно за управление нагрузкой?
 
R

roman1017

Продвинутый
Регистрация
3 Янв 2012
Сообщения
187
Баллы
219
ну цену nano ты видел + HC-SR04 + реле G3MB-202P + блок питани (http://ru.aliexpress.com/item/220-V...ply-module-transformer-module/2002795437.html) - выходит дешевле чем те реле , а главное -перспективнее . Например если присоединить ESP8266 , то через домашний роутер будет доступ по интернету , если добавить датчик влажности и установить его в ванне , то ардуино может включать вытяжку в ванее -это пока все , что придумал :p
 
R

roman1017

Продвинутый
Регистрация
3 Янв 2012
Сообщения
187
Баллы
219
ESonya

ESonya

Крутой иБаер
Регистрация
24 Окт 2011
Сообщения
1 526
Баллы
528
Местоположение
С-Посад
R

roman1017

Продвинутый
Регистрация
3 Янв 2012
Сообщения
187
Баллы
219
И всё же, можно ссылку на проверенный лот? А то есть упоминания, что высылают китайские подделки.

так они все "китайские подделки" , берут чип атмега и делают свой обвес . Главное чтоб таможня партией пропустила, но я брал по 10 шт , проблем не было .

 
ESonya

ESonya

Крутой иБаер
Регистрация
24 Окт 2011
Сообщения
1 526
Баллы
528
Местоположение
С-Посад
Благодарю. Ушёл читать про ардуино.
Если с аппаратной частью проблем возникнуть не должно, с программной реализацией трудности наверняка возникнут - программирование было 15 лет назад в институте, да и то паскаль.
 
R

roman1017

Продвинутый
Регистрация
3 Янв 2012
Сообщения
187
Баллы
219
а как скетч прикрепить , пишет "Вы не можете загружать файлы подобного типа " ?

Добавлено спустя 31 мин. 31 сек.
Так и не понял , как загрузить, если кому надо , скиньте адрес я на почту вышлю .
 
ESonya

ESonya

Крутой иБаер
Регистрация
24 Окт 2011
Сообщения
1 526
Баллы
528
Местоположение
С-Посад
а как скетч прикрепить , пишет "Вы не можете загружать файлы подобного типа " ?
Запаковать в архив, их вроде можно прикреплять. Или, на крайний случай, залить на яндекс-диск и дать ссылку.
 
R

roman1017

Продвинутый
Регистрация
3 Янв 2012
Сообщения
187
Баллы
219
вот так я подключил светодиоды к HC-SR04 , там указаны мои сопротивления для моих светодиодов- у Вас они могут отличаться .
Вот эти светодиоды, на красный ток должен быть меньше, но у меня получилось так.. я ставил переменный резистор и выставлял ограничения на каждую ногу светодиода.

Добавлено спустя 9 мин. 31 сек.
Вот эти светодиоды -описание
 

Вложения

  • LED.png
    LED.png
    67.7 КБ · Просмотры: 118
R

roman1017

Продвинутый
Регистрация
3 Янв 2012
Сообщения
187
Баллы
219
Вот программа (скетч)

#include "Ultrasonic.h"
int FAN = 7; // пин вытяжка
int Light = 8; // пин свет
long OnTime = 10000; // время работы вытяжки , мс
int ledState = LOW;
int Flag = 0;// переменная
unsigned long previousMillis = 0;
Ultrasonic ultrasonic(3, 4);

void setup()
{
pinMode(FAN, OUTPUT);
pinMode(Light, OUTPUT);
digitalWrite(FAN, HIGH);
digitalWrite(Light, HIGH);
pinMode(3, OUTPUT);
pinMode(4, INPUT);
}

void loop()
{
float dist_cm = ultrasonic.Ranging(CM); // get distance
delay(100);

unsigned long currentMillis;
if ((dist_cm) < 100 && (Flag == 0))
{
digitalWrite(FAN, HIGH);// выключаем вытяжку
digitalWrite(Light, LOW);//включаем свет
delay (2000);
Flag = 1;

}


currentMillis = millis();

if (currentMillis - previousMillis >= OnTime)
{
ledState = LOW;
previousMillis = 0;
digitalWrite(FAN, HIGH);

}


if ((dist_cm) > 100 && (Flag == 1))
{
previousMillis = currentMillis; // запоминаем время
ledState = HIGH;
digitalWrite(FAN, LOW);
digitalWrite(Light, HIGH);
Flag = 0;

}
}


выводы на ардуино нано - цифровые , т.е перед номером буква "D"

Добавлено спустя 2 мин. 47 сек.
да , в моих реле положение "HIGH" это -выключено , в других это может быть "включено".

Добавлено спустя 3 мин. 40 сек.
поэтому , если у вас по другому - то где у меня в реле "HIGH" - поставьте "LOW".

Добавлено спустя 48 мин. 20 сек.
вот с добавлением светодиодов на датчике расстояния- красным горит при обнаружении, если нет-зеленым .


#include "Ultrasonic.h"
int FAN = 7; // пин вытяжка
int Light = 8; // пин свет
long OnTime = 10000; // время работы вытяжки , мс
int ledState = LOW;
int Flag = 0;// переменная
unsigned long previousMillis = 0;
Ultrasonic ultrasonic(3, 4);

void setup()
{
pinMode(FAN, OUTPUT);
pinMode(Light, OUTPUT);
digitalWrite(FAN, HIGH);
digitalWrite(Light, HIGH);
pinMode(3, OUTPUT);
pinMode(4, INPUT);
}

void loop()
{
float dist_cm = ultrasonic.Ranging(CM); // get distance
delay(100);

unsigned long currentMillis;
if ((dist_cm) < 100 && (Flag == 0))
{
digitalWrite(FAN, HIGH);// выключаем вытяжку
digitalWrite(Light, LOW);//включаем свет
digitalWrite(6, LOW);//выключаем зеленый светодиод
digitalWrite(5, HIGH);//включаем красный светодиод
delay (2000);
Flag = 1;

}


currentMillis = millis();

if (currentMillis - previousMillis >= OnTime)
{
ledState = LOW;
previousMillis = 0;
digitalWrite(FAN, HIGH);

}


if ((dist_cm) > 100 && (Flag == 1))
{
previousMillis = currentMillis; // запоминаем время
ledState = HIGH;
digitalWrite(FAN, LOW);
digitalWrite(Light, HIGH);
digitalWrite(5, LOW);//выключаем красный светодиод
digitalWrite(6, HIGH);//включаем зеленый светодиод
Flag = 0;

}
}
 
ESonya

ESonya

Крутой иБаер
Регистрация
24 Окт 2011
Сообщения
1 526
Баллы
528
Местоположение
С-Посад
Нашёл у себя в закладках магазин, торгующий шторами с электроприводм.
Думаю, можно на ардуино собрать схему управления ими. Например, управление по расписанию: по будням в 7:30 поднять, в 18:00 опустить, в выходные в 10:00 поднять, в 22:00 опустить. Только к ардуинке придётся прикрутить часы реального времени.
 
R

roman1017

Продвинутый
Регистрация
3 Янв 2012
Сообщения
187
Баллы
219
На счет штор не знаю, не пробовал- но в входной двери стоит Electric Drop Bolt (2 замка) , они по таймеру- в 21-00 закрывают дверь (есть кнопка ручного открытия, а сами замки дублируют два механических) , а утром( у меня в 7-30) разблокируют . Таким образом и дверь закрыта на ночь , если забыл и замки не замечаю (правда стукают во время откр-закр) .

Добавлено спустя 5 мин. 9 сек.
Только к ардуинке придётся прикрутить часы реального времени.


 
R

roman1017

Продвинутый
Регистрация
3 Янв 2012
Сообщения
187
Баллы
219
Добрался до автоматизации , вот сектч со всеми изменениями и схема моей вытяжки .Пол дня на столе работала , ставить буду дня через три , если что не так -скажите вместе доработаем :eek:ffice1:

Добавлено спустя 2 мин. 51 сек.
#include "Ultrasonic.h" //библиотека датчика HC-SR04
#include "DHT.h" //библиотека датчика DHT11
#define DHTPIN 2 // цифр пин 2 замер влажности и температуры
int FAN_FAN = 5; // цифр пин вытяжка общая
int FAN_VANNA = 6; // цифр пин вытяжка из ванны
int FAN = 7; // цифр пин вытяжка туалет
int Light = 8; // цифр пин свет
int DIOD_KR = 9; // цифр пин,красный светодиод
long OnTime_T = 5000; // время по истечении которого принудительно
long OnTime = 10000; // время работы вытяжки при "пустом"туалете, мс
int Flag = 0;// переменная выт.туалет
int Flag_T = 0;// переменная прин.выт.туалет
unsigned long previousMillis = 0; // перемен.вытяжка туалет
unsigned long previousMillis_T = 0;// перемен.принуд вкл.вытяжки туалет
Ultrasonic ultrasonic(3, 4);
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);

void setup()
{
pinMode(FAN_FAN, OUTPUT);
pinMode(FAN_VANNA, OUTPUT);
pinMode(FAN, OUTPUT);
pinMode(Light, OUTPUT);
pinMode(DIOD_KR, OUTPUT);

digitalWrite(FAN_FAN, LOW);
digitalWrite(FAN_VANNA, LOW);
digitalWrite(FAN, LOW);
digitalWrite(Light, LOW);
digitalWrite(DIOD_KR, LOW);
pinMode(3, OUTPUT);
pinMode(4, INPUT);
dht.begin(); // вкл. датчик DHT11
Serial.begin(9600); //вкл. вывод в порт -надо для предварительного замера расстояния и влажности .

}

void loop()
{

unsigned long currentMillis;// перемен.вытяжка туалет
unsigned long currentMillis_T;// перемен.принудительная вытяжка туалет
currentMillis = millis();//перемен.вытяжка туалет привяз. к таймеру
currentMillis_T = millis();//перемен.принудит.вытяжка туалет привяз. к таймеру

float h = dht.readHumidity();//переменная влажность
float t = dht.readTemperature();//переменная температура
float dist_cm = ultrasonic.Ranging(CM); // переменная расстояние
delay(100);

if ((h) > 39 ) // если влажность в ванне больше 39%
{
digitalWrite(FAN_VANNA, HIGH); // включаем вытяжку в ванной
}
else {
digitalWrite(FAN_VANNA, LOW); // выключаем вытяжку в ванной
}
if (digitalRead(FAN_VANNA) == HIGH || digitalRead(FAN) == HIGH )
{
digitalWrite(FAN_FAN, HIGH);
}
else {
digitalWrite(FAN_FAN, LOW);
}
if ((dist_cm) < 100 && (Flag == 0))
{
digitalWrite(FAN, LOW);// выключаем вытяжку
digitalWrite(Light, HIGH);//включаем свет
digitalWrite(DIOD_KR, HIGH);//включаем красный светодиод
delay (2000);
previousMillis_T = currentMillis_T; // запоминаем время"занятого" туалета
Flag = 1;
Flag_T = 0;
}
if (currentMillis_T - previousMillis_T >= OnTime_T && Flag == 1)
{
digitalWrite(FAN, HIGH);
}
else {

}
if ((dist_cm) > 100 && (Flag == 1))// если расстояние увеличилось и Flag=1
{
previousMillis = currentMillis; // запоминаем время "свободного" туалета
digitalWrite(FAN, HIGH);
digitalWrite(Light, LOW);
digitalWrite(DIOD_KR, LOW);//выключаем красный светодиод
Flag_T = 0;
Flag = 0;
}


if (currentMillis - previousMillis >= OnTime && Flag_T == 0)
{

previousMillis = 0;
digitalWrite(FAN, LOW);
Flag_T = 1;
}
}

Добавлено спустя 1 мин. 18 сек.
Алгоритм стоит немного изменить, дополнив задержкой от первого срабатывания: если человек зашёл по-малому (провёл пару минут), то вытяжку не включаем; а если что-то высидел, то через 3 минуты включаем вытяжку и она работает всё время и ещё 5 минут после того, как он ушёл.

сделал :p

Добавлено спустя 1 мин. 7 сек.
по прежнему файлы rar. не дает загружать - потому такие простыни пишу :comando:
 

Вложения

  • cxema.JPG
    cxema.JPG
    24.2 КБ · Просмотры: 96
Live

Similar threads




Вверх
Live