Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > Открытый проект умного дома

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.11.2012, 14:12   #1
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1606
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию тестирование Modbus на Arduino

Мои эксперименты с Modbus
Нажмите на изображение для увеличения
Название: arduino_modbus.jpg
Просмотров: 1400
Размер:	589.6 Кб
ID:	610

В arduino залита следующая программа:
Код:
/*
Test Modbus RTU - Arduino
Для простоты и уменьшения потребления памяти 
поддерживается только две следующие функции Modbus: 
- read holding registers   (0x03)
- write multiple registers (0x10)
*/

#include <SoftwareSerial.h>
#include <Modbusino.h>


const int RL0 = 22;
const int RL1 = 24;
const int RL2 = 26;
const int RL3 = 28;
const int rl_arr[] = {RL0,RL1,RL2,RL3};
const int regs = 10; // количество регистров
const int ID_slave = 25;

uint16_t tab_reg[regs]; //задаем массив регистров

// Инициализация SLAVE, идентификатор (адрес) в сети ID = 25
ModbusinoSlave modbusino_slave(ID_slave);

// на цифр. выходы сразу записываем значение регистров
// любое значение > 0 это HIGH, 0 - LOW   

void SetRelay() {
int i;
for (i = 0; i < 4; i++) {
  digitalWrite(rl_arr[i], tab_reg[i]); 
 }
}

void setup() {
  modbusino_slave.setup(115200);
  pinMode(RL0, OUTPUT); // установка цифровых вх/вых в режим выхода   
  pinMode(RL1, OUTPUT);
  pinMode(RL2, OUTPUT);
  pinMode(RL3, OUTPUT);
}

void loop() {
  modbusino_slave.loop(tab_reg, regs);
  SetRelay();
  tab_reg[9] = analogRead(A0); //запись аналогового значения в 9-ый регистр
}
Для управления я использовал QModbus

здесь я щелкаю реле
Нажмите на изображение для увеличения
Название: write_modbus.png
Просмотров: 1343
Размер:	17.3 Кб
ID:	612

а здесь читаю аналоговый вход
Нажмите на изображение для увеличения
Название: read_modbus.png
Просмотров: 1297
Размер:	17.2 Кб
ID:	611

На время эксперимента я специально подключился с помощью стороннего преобразователя TTL-USB к serial порту RX0, TX0 т.к. планирую сделать TTL-RS485 преобразователь на MAX485.
Чтобы все было "по взрослому"

вот планируемая схема ttl-rs485.zip

Последний раз редактировалось andr128; 17.12.2012 в 05:50.
andr128 вне форума   Ответить с цитированием
Старый 23.11.2012, 07:36   #2
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1312
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию

Савсем не могу понять как это будет работать!
Вот к примеру у меня дома на каждое помещение стоит по ардуине.
Прихожая, ванна, кухня, две комнаты. Итого пять штук. Это к примеру!!!
В прихожей стоит мегаардуина, она будет главной и подключена к домашнему серверу. Сначала думал сервером будет роутер, но потом решил что будет роутер, а за ним полноценный комп-сервер, формфактор пока неважен (ноутбук например), просто хочу чтоб в прихожей на стене был монитор с тачскрином. На нём будет включаться/отключаться сигнализация и выводится всякие данные. Также вся инфа и управление будет доступна через инет (web-браузер), чтоб можно было и с андройдтелефона и с айпада всем рулить откуда угодно.Так же планируется пара IP-вебкамер, и в прихожей камера напрямую к серверу подключенная.
В общем здесь всё просто, соединить мегаардуину с сервером, написать веб интерфейс, настроить apache.
GSM-сигнализация, подключается к мегаардуине.
В случае отключения электроэнергии ноутбуку-серверу это не повредит, равно как и мегаардуине подключённой к нему по USB, вот для остальных ардуин и GSM нужно делать автономное питание, какой-то аккумулятор.
Я немного отвлёкся от протокола, но с другой стороны от части из организации железа вытекает понимание как всё это связать.
Ардуины размещённые в разных помещениях следят за разными датчиками, показаниями и управляют устройствами (свет, жалюзи, медия, розетки и ещё чёрте что).

Квартира у меня сейчас находится в затяжной стадии ремонта, посему с проводами проблем нет! Но вот как проложить эти самые провода?
А больше всего интересует как все ардуины будут общаться меж собой по RS-485?
Вот предположим все они находятся в режиме приёма. Выключатель на кухне ( к примеру инфракрасный ) http://cyber-place.ru/showthread.php?t=237 ,работает через "кухонную ардуину"
, он дал сигнал и свет зажёгся.
По идее "кухонная ардуина" должна сообщить об этом основной мегаардуине.
(тут наверно ещё стоит добавить базу MySQL на сервер, чтоб мегаардуина записала в неё что свет на кухне включен).
(хотя всё можно и в мегаардуине хранить без базы, но с базой мне кажется лучше, значения никуда не потеряются в случае чего.....)
А "ванная ардуина" в этот момент пытается сообщить мегаардуине что протечка воды.
И в тот же момент, жена сидя в комнате, нажимает кнопку на айпаде выключить свет. Этот сигнал идёт на сервер, с сервера на мегаардуину, а та в свою очередь пытается отправить сигнал на "комнатную ардуину", чтоб та выключила свет. После чего "комнатная ардуина" выключая свет пытается отправить сигнал на мегааардуину о том , что она выключила свет, далее мегаардуина должна сообщить серверу что, свет в комнате погашен и чтоб сервер отправил сигнал об этом жене на айпад! Тут тоже получается , что страница должна постоянно обновляться или как-то по другому? А я в тот же момент со своего андройдфона, выключаю свет в другой комнате, после чего произойти должно тоже что и у жены на айпаде.
Конечно некоторые действия могут подождать чутка, но другие требуют оперативности!

И начинается такая чахорда от которой у меня голова кругом идёт))))) правда щас уже 7 утра , а я ещё не спал)))))
Вопщем с этим RS-485 салат какой-то........)))))

И это всего лишь маленькая-маленькая часть функций "умного дома" ))))))))

Извиняйте за ошибки, спать охота.....))))

Последний раз редактировалось stD; 23.11.2012 в 08:12.
stD вне форума   Ответить с цитированием
Старый 23.11.2012, 08:08   #3
filinmd
Senior Member
 
Регистрация: 18.09.2012
Адрес: Moscow
Сообщений: 157
Вес репутации: 0
filinmd is an unknown quantity at this point
Отправить сообщение для filinmd с помощью ICQ
По умолчанию

вот честно говоря все тоже самое у меня в голове сейчас происходит
filinmd вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 17:10. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика