Ви не увійшли.
Почему беспроводная связь?
Намного надежнее проводная связь, например Ethernet. Если это возможно, то схема может быть такая:
Raspberry Pi является основным устройством в котором крутятся все программы, включая Web сервер. Arduino используется только для снятия информации с датчиков, включения реле и/или аналоговых выходов/входов. Хотя Arduino можно и не применять. Например подключать к Raspberry необходимое количество входов/выходов по OneWire или I2C. Учтите, что I2C работает только на малых расстояниях, например в пределах электического щита. OneWire дает дальность до 200 м. При больших расстояниях применяйте соединение по Ethernet, например Arduino Nano + ENC28J60 или Orange Pi Zero и т.д.Сенсорный монитор подключенный к Raspberry далеко не лучше решение. Проще заходить на WEB сервер, который реализован в Raspberry через смартфон, планшет, компьютер. Можно даже со SmartTV!
Некоторые мои разработки в этом направлении можно посмотреть на сайте.
Вот принципиальная схема автоматики освещения на Orange Pi(Raspberry Pi). Для удобства коммутации разработана интерфейсная плата.
Вот схема автоматики управления системой отопления.
В обеих случаях достаточно одного контроллера типа Raspberry Pi. Управление осуществляется через WEB интерфейс. А с применением сервиса типа Weaved получаете и удаленный доступ через Интернет без проброса портов и фиксированного IP.
Если нужно больше - делайте блоки расширений входов/выходов.
Посмотрите соседнюю тему на
форуме
Использую источники питания с аккумулятором для сигнализации 12В. Для понижения напряжения подключаю преобразователь 12В-5В.
Памяти контроллера недостаточно однозначно.
Для просмотра записанной информации возьмите Bluetooth модуль, например HC-06
и с его помощью передайте информацию с SD карты на мобильный телефон. Там можно построить графики. Лично я для таких целей писал приложение под Android. Прекрасно все работает. Использовал для записи и просмотра данных во время полетов. Писал не только параметры воздуха, но и параметры работы двигателя, высоту, скорость, ускорение, крен, тангаж и т.д.
Для хорошей читаемости данных в полете применил Android планшет на E-ink. Любые другие экраны на ярком солнце читаются хуже.
На фото 1 показана установка планшета с E-Ink дисплеем на раме. На фото 2 показан датчик температуры выхлопных газов. На фото 3 показан контроллер Arduino (без крышки), установленный на раме двигателя. К контроллеру были подключены все необходимые датчики, включая датчики параметров атмосферы.
Для погодной станции минимальный набор следующий:
Arduino Nano
Барометр на BMP280
Датчик влажности и температуры DHT22
Модуль micro SD/TF card
ENC28J60 Ethernet модуль
В походе для экономии электроэнергии Ethernet модуль надо сделать отключаемым и подключать его только для считывания информации, хотя по моему мнению намного проще его вообще не применять а информацию считывать прямо с SD карточки. Вынимаете карточку, подключаете ее к персональному компьютеру и скачиваете файлы. Если формат файлов, которые будет создавать ваша программа выбрать правильно, то графики можно получать сразу же через Excel.
Относительно надежности SD - карточки. Если взять карточку промышленного стандарта (как минимум MLC, SLC), то вам ее хватит надолго. NoName карточки могут сыпаться при интенсивной записи. Не думаю, что погодная станция сможет часто губить карточки. Моя погодная станция на NoName карточке работает уже несколько лет.
Lic Control пише:Вот посмотрите мою реализацию подобной задачи. Проверено на реальных объектах.
Контроллер
Потребуется не только разобраться с пайкой но и вникнуть в Linux.
Можно сделать и на Arduino но тогда Web будет неполноценный.Можете пожалуйста подробнее описать почему будет не полноценный веб если делать например на ардуино?
По моему мнению, минимальный Arduino-подобный контроллер способный реализовать WEB это TEENSY 3.1 с Ethernet - модулем, например WIZ820io. Ключевыми свойствами, которые ограничивают применение контроллеров под WEB есть объем памяти контроллера и быстродействие как самого контроллера так и Ethernet модуля. Потребуется еще и SD-карта. Но суммарно эти устройства (TEENSY + WIZ820io + SD) стоят дороже чем, например OrangePI PC. Также следует заметить, что программирование Arduino/TEENSY под WEB намного более трудоемкое чем написание программ в LINUX. В итоге, учитывая цену оборудования и то, что для LINUX под WEB существует огромное количество примеров и библиотек, становиться очевидно, что тратить время на Arduino + WEB нет смысла.
Собирал такую сетку: 170 метров кабеля и 20 датчиков ds18b20 подключенных через DS2482-100 с активной подтяжкой к Orange Pi Pc. Для уверенности контролировал сигнал через осциллограф. Все работало отлично. Сигнал был в норме. Следует заметить, что на сигнал сильно влияет длина, тип кабеля, к-во датчиков а также то по каким парам проводов распределены сигнал, питание и земля. Учтите, без активной подтяжки такое работать не будет.
Для подключения датчиков к Orange PI/RASPBERRY разработал интерфейсную плату. Здесь размещена DS2482-100 и другие интерфейсные микросхемы. Web интерфейс ограничивается только вашей фантазией и терпением.
Вот посмотрите мою реализацию подобной задачи. Проверено на реальных объектах.
Контроллер
Потребуется не только разобраться с пайкой но и вникнуть в Linux.
Можно сделать и на Arduino но тогда Web будет неполноценный.
А посмотрите мой пример
http://forum.arduino.ua/viewtopic.php?id=415
Там похоже есть ответ на ваш вопрос.
Самый простой способ решения вашей задачи следующий.
На откосах дверей устанавливаются герконы, на полотне двери - магниты. Все герконы группами по 8 шт через микросхему DS2408 (~200 грн) подключаются в 1Wire сеть - один общий кабель на 3 жилы. Можно просто на кабель UTP 5 cat. Т.е. по всей гостинице пройдет один кабель. Количество микросхем = к-во номеров /8. Кабель подключите к Linux контроллеру типа Raspberry Pi (Orange Pi и т.д.) https://arduino-ua.com/prod1082-raspberry-pi-2-model-b. Если в комнатах есть датчики движения охранной сигнализации, то их можно использовать без герконов на дверях.
Такой контроллер легко соберет и запишет данные по открытию /закрытию дверей: время и номер комнаты. Более того он выведет эту информацию как на обычный стационарный монитор, так и на планшет или смартфон. Распечатка тоже возможна. Объем архива не ограничен.
Для подключения герконов у меня есть компактный модуль расширения на 8 входов, помещающийся в подрозетник.
Есть у меня и универсальный контроллер https://sites.google.com/site/twosoftdo … ht_control
для освещения и отопления. Его можно перепрограммировать под вашу задачу.
exit(0); ?? я бы предположил что это выход с основного цикла. тогда ничего не понимаю (
Для упрощения я выдернул этот пример из программы.
Поэтому даю как пример только один проход и закрываю цикл - exit(0);
В реальной жизни нужно писать полную программу.
Вот примерчик управления медиаплеером Dune 303D по Ethernet сети.
#include <SPI.h>
#include <Ethernet.h>
//******************* ETHERNET ****************************
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEE };
EthernetServer server(80);
EthernetClient DUNE_CLIENT;
IPAddress ip(192,168,1,10); //TEENSY
IPAddress DUNE_IP(192,168,1,11); //АДРЕС DUNE В СЕТИ
//******************* ETHERNET ****************************
char Buffer[256];
char* IR[] = {"A05FBF00","A15EBF00","BC43BF00","F807BF00","E718BF00","E817BF00","E619BF00"};
enum { irPOWERON,irPOWEROFF,irPOWER, irPOPUPMENU,irRIGHT,irLEFT, irSTOP};
char IRCommand[] = "GET /cgi-bin/do?cmd=ir_code&ir_code=";
char PlayCommand[] = "GET /cgi-bin/do?cmd=start_file_playback&media_url=storage_name:";
char PlayListCommand[] = "GET /cgi-bin/do?cmd=start_playlist_playback&media_url=storage_name:";
char C11[2] = {char(0x2F),char(0x2F)};
char LR[2] = {char(0x0D),char(0x0A)};
char PlayList1[] = "HDD01/play1.m3u"; //ПЛЕЙЛИСТ ДЛЯ ВОСПРОИЗВЕДЕНИЯ
void setup() {
Serial.begin(9600);
//Перезапуск Ethernet chip
pinMode(10, OUTPUT); digitalWrite(10, HIGH);
Ethernet.begin(mac, ip);
server.begin();
Serial.println("Ethernet start");
}
void DuneOFF() {
if (DUNE_CLIENT.connect(DUNE_IP, 80)) {
Serial.println("DUNE_CLIENT.connect");
memset(Buffer,0,256);
memcpy(Buffer,IRCommand,sizeof(IRCommand)-1);
memcpy(Buffer+sizeof(IRCommand)-1,IR[irPOWEROFF],8);
Serial.print("Send command = "); Serial.println(Buffer);
DUNE_CLIENT.println(Buffer);
DUNE_CLIENT.stop();
}
}
void DuneON() {
if (DUNE_CLIENT.connect(DUNE_IP, 80)) {
Serial.println("DUNE_CLIENT.connect");
memset(Buffer,0,256);
memcpy(Buffer,IRCommand,sizeof(IRCommand)-1);
memcpy(Buffer+sizeof(IRCommand)-1,IR[irPOWERON],8);
Serial.print("Send command = "); Serial.println(Buffer);
DUNE_CLIENT.println(Buffer);
DUNE_CLIENT.stop();
double Time1 = millis();
double dt=0;
while (dt<20000) {
delay(200);
dt=millis()-Time1;
}
} else Serial.println("NOT DUNE connect!!!!");
if (DUNE_CLIENT.connect(DUNE_IP, 80)) {
Serial.println("DUNE_CLIENT.connect");
memset(Buffer,0,256);
memcpy(Buffer,PlayListCommand,sizeof(PlayListCommand));
memcpy(Buffer+sizeof(PlayListCommand)-1,C11,2);
memcpy(Buffer+sizeof(PlayListCommand)+1,PlayList1,sizeof(PlayList1)-1);
Serial.print("Send command = "); Serial.println(Buffer);
DUNE_CLIENT.println(Buffer);
DUNE_CLIENT.stop();
} else Serial.println("NOT DUNE connect!!!!");
}
void loop(void) {
DuneON(); //ВКЛЮЧАЕМ DUNE И ЗАПУСКАЕМ НА ВОСПРОИЗВЕДЕНИЕ ПЛЕЙЛИСТ HDD01/play1.m3u
delay(100000); //НЕМНОЖКО СЛУШАЕМ
DuneOFF(); //ВЫКЛЮЧАЕМ DUNE
exit(0);
}
Этот код я для простоты понимания извлек из своей программы, в которой Dune запускалась с комнатных выключателей и через мобилный телефон. Усилителем служил Yamaha RX-V673, который тоже управлялся по Ethernet - сети. В результате получился недорогой 2-х зонный Multiroom c отличным звучанием. По этому принципу можно запускать на воспроизведение также и отдельные композиции.
Ссылку на пример управления ресивером Yamaha RX-V673 я уже давал. На всякий случай повторяю: https://sites.google.com/site/twosoftdo … plications
Если вы о печатной плате, то ДА ЕСТЬ.
Я заказываю их изготовление по мере необходимости. Срок изготовления 7-10 дней. Цена сильно зависит от количества.
Привет всем!
Orange Pi PC пока самый дешевый контроллер на Linux и Ethernet на борту.
Я попробовал его для управления освещением. Вот что получилось
https://sites.google.com/site/twosoftdo … -orange-pi
Если сравнивать с Raspberry Pi то трудно увидеть разницу. Сложнее с библиотеками и описаниями. Их просто меньше. Но поискав все можно найти.
Транзисторный ключ при отсутствии питания на контроллере не включит нагрузку, конечно если он не запитан со стороны нагрузки (но тогда нарушается гальваническая развязка). Нормально замкнутое оптореле при выходе из строя контроллера просто не будет отключать нагрузку.
Давно отказался от W5100 в пользу W5200 (например Wiz820io http://www.kosmodrom.com.ua/el.php?name=WIZ820IO).
Намного стабильнее работает и не греется. Особенно хорошо работает с Teensy 3.1/3.2.
Вот посмотрите пример https://sites.google.com/site/twosoftdogs/teensy - компактный WEB-контроллер.
Пробовал W5500 - не работает с доступными мне библиотеками.
Поставьте еще одно нормально замкнутое оптореле, например CPC1150 (http://www.kosmodrom.com.ua/el.php?name=CPC1150NTR)
Привет всем.
Вот пример управления ресивером Yamaha RX-V673 через педаль для контроля за воспроизведением фонограм (минусовок):
https://sites.google.com/site/twosoftdo … plications
Дана схема подключения и пример скетча.
Использованы Teensy 3.1 + WIZ820io.
У меня есть готовый контроллер,
https://sites.google.com/site/twosoftdogs/teensy
которому по вашему заданию, не хватает только одного аналогового выхода, который легко можно добавить на плату.
Поэтому вопрос:
1. Какое количество контроллеров вам необходимо?
2. Кто будет писать программное обеспечение?
3. Какая нагрузочная способность (по току) выхода ШИМ необходима? Да и почему ШИМ, может лучше еще один чистый аналоговый выход.
Два года испытаний, которые я провел, говорят о том, что Arduino, Raspberry Pi и другие подобные контроллеры с успехом могут выполнять задачи по домашней автоматизации.
При этом стоимость вопроса в разы ниже, чем например у KNX или LON.
Весь вопрос в том, хватит ли у вас времени и терпения на такую работу. Ведь все надо делать самому: интерфейсные платы, писать программное обеспечение, отлаживать и т.д.
Вот ссылка на описание реальной реализации по созданию универсальных контроллеров для домашней автоматизации.
Эта реализация прошла длительное испытание, кторое подтверждает ее работоспособность и достаточный уровень надежности.
https://sites.google.com/site/twosoftdogs/
Надеюсь эта информация сможет направить вас в нужное русло.
Успехов!
Привет всем!
Ниже в ссылке сайт, на котором показаны несколько примеров использования Arduino (Teensy) и Raspberry Pi для создания универсальных контроллеров.
Такие контроллеры могут быть использованы в том числе и в домашней автоматизации ("Умный дом").
https://sites.google.com/site/twosoftdogs/