![]() |
![]() |
#1 |
Junior Member
Регистрация: 04.07.2013
Адрес: Новополоцк, Беларусь
Сообщений: 16
Вес репутации: 0 ![]() |
![]()
Собственно, начинаю свой проект умного дома. Заодно, если получится, хочу его "притянуть" к диплому (через год).
С микроконтроллерами (Atmega) ранее общался, даже есть некоторые проекты. С программированием знаком - вроде как программер ))) По мере выполнения могу все выкладывать, если кому-то это будет нужно. Есть несколько вопросов, но о них позже. Итак, что имеем: На данный момент имеется однокомнатная квартира (прихожая, комната, ванна+туалет, кухня, лоджия). В картире (в комнате) стоит и успешно работает сервак (ubuntu: Apache, mysql, php, bind, samba, dlna etc.) - используется для различных целей, не выключается и имеет выделенный IP. У сервера ADSL-модем (в режиме моста), через WiFi которого раздается инет и сеть всем беспроводным устройствам (телефоны, буки etc.). Также к нему через rj45 подключен сервак, ещё два компа и телек. Собственно, закуплено (еще в пути от наших доблестных китайцев): - 2012 UNO R3 (http://www.ebay.com/itm/200917607394) - я так думаю, что не должна отличаться от ардуино уно - New Pro Mini atmega328 (http://www.ebay.com/itm/130839929399) *2шт. - почти arduino mini ))) - Mini USB Nano V3.0 (http://www.ebay.com/itm/310674366051) - nano (для экспериментов) Ну и куча датчиков и мелочевки: - DHT22; - 433Mhz RF Transmitter Module And Receiver *2; - 10А релюшки с опторазвязкой; - HC-SR04; - штуки 3-4 HC-SR501; - I2C RTC DS1307 AT24C32 (мне лично удобнее купить на плате со стоимостью 2$, чем отдельно травить и паять под DS1307); - BMP085; - MQ-3; - MQ-4; - ADXL345 3-axis Digital Tilt Sensor; - 3.3V/5V Power Supply Module; - 10 пищалок (buzzer); - NRF24L01; - NC28J60 Ethernet LAN Network Module; - Ethernet Shield W5100 (этот приехал уже); - 125 KHZ EM4100 RFID card read module RDM630 + 10 карточек к нему; - YF-S201 Water Flow Sensor Counter (похоже горячнулся с ним). Что планируется: Для начала, не очень хочу тянуть лишние провода (но если придется - витой пары бухта почти - хватит 100%). Идея такая: к серваку подключена uno (посредством шилда на W5100) - она же и выполняет роль master-устройства. Slave будут arduino mini и связаны мастер со слейвами будут через NRF24L01 (насколько это реально? читал где-то тут на форуме, что как только устройств >2 начинаются траблы с приемом-передачей). Мастер будет в пхп скрипт передавать все параметры, а он уж будет писать в MySQL-бд (а другим скриптом потом отображать, графики рисовать, управлять и т.д.) Для успешной задумки для диплома необходимо реализовать учет воды, электроэнергии, газа. Все счетчики стоят аналоговые. Для учета воды, заказал YF-S201 (пока только попробовать) - поставлю ниже счетчика. Но похоже погорячился, т.к. он под трубы 1/2". У меня внешне больше (около 2 см.). Как точно их измерить? Хватит ли производительности в 30л./мин., если у меня два крана - в ванне и на кухне? С газом пока вообще не знаю что делать. Может у кого есть идеи или ссылки на такие (с импульсным выходом) счетчики? Электросчетчик цифровой (на лестничной площадке в распред. щитке). Естественно, влезть никто не даст, есть вот такая статья по учету энергии по вспышкам светодиода (врядли понравится проверяющим органам - могут в один прекрасный день просто вырвать с корнем))) На входе (во входные двери) врезать электромеханический замок (в процессе поиска - пока даже не определился какой - может кто посоветовать?) и открывание дверей карточкой RFID. В комнате, прихожей, ванне, на кухне, на балконе - DHT22, на балкон плюс BMP-085, на кухне MQ-4, в ванне хотелось бы ещё нечто в области датчика протечки с электромагнитами на трубах воды (если трубу прорвет или подтекать будет, чтоб отключил воду), хотя в таком серьезном деле, доверия китайцам большого нет (может ошибаюсь). По этой статье переделать все выключатели света в доме. Дополнительно на входе в туалет сделать счетчик народа в помещении по этому принципу. Опять вопрос - не будут ли влиять внешние "наводки" от пультов управления, допустим телевизором и т.д. и как их избежать? И ещё много вопросов даже просто "не по теме". Например вот эта статья. Кто может, поясните, плиз, принцип. P.S. Продолжение следует... P.P.S. Если не в той ветке - пните в нужную. Спасибо. |
![]() |
![]() |
![]() |
#2 |
Junior Member
Регистрация: 04.07.2013
Адрес: Новополоцк, Беларусь
Сообщений: 16
Вес репутации: 0 ![]() |
![]()
Задался вопросом задержки без delay.
Взглянув на этот код понял, что как только произойдет сброс значения millis() вследствие переполнения (приблизительно через 50 дней), данная конструкция перестанет работать, т.к. currentMillis будет на следующей итерации после сброса 0, да хоть миллион, но previousMillis будет неизменно (4 294 967 000 при interval = 1000 ![]() Немного переделал код, вынеся в отдельную функцию - ИМХО удобнее вызывать с параметром - кол-во миллисекунд. Функция возвращает true когда указанный промежуток времени прошёл. Поправьте, если неправ (пока ардуины нет в руках - проверить не на чем) Собственно код: PHP код:
|
![]() |
![]() |
![]() |
#3 |
Junior Member
Регистрация: 04.07.2013
Адрес: Новополоцк, Беларусь
Сообщений: 16
Вес репутации: 0 ![]() |
![]()
Вопрос по RFID. Возможно ли создать антенну, считывающую метки на частоте 125KHz на расстоянии хотя бы 1м.?
Если да, то в какую сторону копать? Есть где-нибудь документация? Хочу сделать что-то типа того, как антенны читают метки в магазинах. Там на какой частоте они работают? |
![]() |
![]() |
![]() |
#4 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Возможно, но антенна будет очень большой
Например рамочная антенна в супермаркете Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Junior Member
Регистрация: 04.07.2013
Адрес: Новополоцк, Беларусь
Сообщений: 16
Вес репутации: 0 ![]() |
![]()
Admin об этом я знаю. Однако, не известен доподлинно вопрос, возможно ли сделать такую антенну на 125 KGHz? И как рассчитать сечение, количество витков и диаметр? Размеры интересуют в последнюю очередь - в идеале её можно было бы "пустить" вокруг двери.
|
![]() |
![]() |
![]() |
#6 |
Junior Member
Регистрация: 04.07.2013
Адрес: Новополоцк, Беларусь
Сообщений: 16
Вес репутации: 0 ![]() |
![]()
Реализовываю чтение RFID-меток и открывание дверей. Возник вопрос.
У меня читает метку ардуина (через вот такой модуль), формирует GET-запрос и посылает его через сеть (ethernet-шилд) php-скрипту на сервере. Скрипт его разбирает, сравнивает на наличие такого ключа в БД и отсылает ответ ардуине открыть или нет двери. Так вот сейчас что запрос (метка) что ответ идут в явном виде, что не есть хорошо. Думаю, нужно как-то шифровать сие дело, но как-то пока не придумал. У кого есть какие идеи? Или может я где-то не увидел на форуме решение? Просьба не пинать ногами, а ткнуть носом ))) Спасибо. |
![]() |
![]() |
![]() |
#7 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
В каком виде отправляете метку? В ASC-II или в бинарном виде?
|
![]() |
![]() |
![]() |
#8 |
Junior Member
Регистрация: 04.07.2013
Адрес: Новополоцк, Беларусь
Сообщений: 16
Вес репутации: 0 ![]() |
![]()
Да, в принципе это не проблема. Пока храню в char-переменной (пока ничего не отправляю, поэтому и хотел проконсультироваться ) в ASCII конечно же. Но перевести в hex или bin IMHO, не большая проблема.
А что это меняет? |
![]() |
![]() |
![]() |
#9 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Всегда проще работать с одним числом чем с пакетом.
Можно самому написать простейший шифратор/дешифратор с ключом Например передаваемый пакет начинается с ключа, который выбирается случайно Если кодировать методом ротации бит внутри байта, то ключ будет содержать число сдвигов. Для надежности можно еще проинвертировать. В дишифраторе для восстановления нужно сначала проинвертировать и сдвигать по тому же ключу только в обратную сторону. Так же можно кодировать проводя математические операциями над байтом с помощью ключа |
![]() |
![]() |
![]() |
#10 |
Junior Member
Регистрация: 04.07.2013
Адрес: Новополоцк, Беларусь
Сообщений: 16
Вес репутации: 0 ![]() |
![]()
Вот тут правильно написали. Если перехватить весь запрос и ещё раз его отправить, то отсылай ты просто шифрованный ключ или ключ и ключ для расшифровки или ключ и номер ключа в блокноте - не важно - сервер расшифрует и откроет двери.
Так что просто шифровать не вариант. Задумался... |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|