Четверг, 26.12.2024, 05:11
| RSS
Главная | Raspberry Pi. Общие вопросы. Часть 1 (тема закрыта) - Страница 77 - Форум
Защита, контроль, управление
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS · Чат

Наш канал в YouTube
]
Raspberry Pi. Общие вопросы. Часть 1 (тема закрыта)
ZooluДата: Суббота, 22.02.2014, 22:47 | Сообщение # 1
Группа: Пользователи
Сообщений: 490
Статус: Offline
Настоятельно прошу ознакомиться с уже предложенной документацией прежде чем задавать вопрос. Если информация, обсуждаемая на форуме несет в себе полезную смысловую нагрузку и будет полезна другим, то она будет закреплена в шапке (Просьба в этом мне помогать!)



ВСЕ Авторские разработки, касаемые Raspberry находятся ЗДЕСЬ! Обязательно к прочтению!!!

Варианты преобразователя интерфейсов. Еще тут и тут

Немного о политике безопасности- Рекомендовано к прочтению!

P.S. Давайте сделаем ВМЕСТЕ форум информативным и интересным!

ВНИМАНИЕ !!! В процессе разработки системы домашней автоматизации было создано несколько различных версий. Из-за этого у многих пользователей возникает путаница - программное обеспечение применяется от одних проектов, прошивки контроллеров от других. Поэтому, перед тем как задавать вопро, внимательно ознакомьтесь с этой информацией


Сообщение отредактировал Zoolu - Четверг, 28.04.2016, 11:09
 
ZooluДата: Воскресенье, 10.04.2016, 16:51 | Сообщение # 761
Группа: Пользователи
Сообщений: 490
Статус: Offline
Admin, понятно) Будем ждать и думать сами) А еще ОЧЕНЬ будем ждать "допиливания" возможного прошивок под ModBUS. Мне пришел логический анализатор- приложу на днях картинки с него.

Добавлено (10.04.2016, 16:51)
---------------------------------------------
Созрел вопрос: Те кто использует переходник usb/rs485 не сталкивался с проблемой переиначивания ttyusb0 на ttyusb 3 например? (у меня подключен еще USB модем). Как вы с этим боретесь? Есть такая штука как udev, но уж больно мудрено там все. И еще один вопросик: Кто нибудь смог подключиться к MySQL из скрипта python webiopi?

 
AdminДата: Воскресенье, 10.04.2016, 17:57 | Сообщение # 762
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
По поводу базы данных. Я использую обычные тестовые файлы. Для логирования процессов и параметров этого более чем достаточно. К тому же читал, что эскюэль может потреблять значительные ресурсы. Поэтому и не стал пока заморачиваться с базами данных.
При возможности размещу об этом на сайте статью.
 
ZooluДата: Воскресенье, 10.04.2016, 18:15 | Сообщение # 763
Группа: Пользователи
Сообщений: 490
Статус: Offline
Admin, я противник если честно парсить текстовые файлы на несколько миллионов записей... Тут поспорить можно что будет бестрее работать и жрать меньше ресурсов при таком количестве записей... К тому же я смс отправляю и принимаю с помощью SQL. Так можно и малиной управлять и информацию нужную получать. Допустим сработал датчик протечки- полетела смс что сработал датчик имненно в ванной комнате. Ну можно еще долго описывать преимущества и недостатки) я считаю что удобно хранить ВСЮ информацию в одной бд. И доступ иметь к ней и из сторонних ресурсов.
Я думаю нужно стремиться не к простому а к лучшему)
 
AdminДата: Воскресенье, 10.04.2016, 18:43 | Сообщение # 764
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
Zoolu, может оно и так.
В любом случае тут уже каждый для себя должен решить, что ему лучше и удобнее использовать.
 
ZooluДата: Понедельник, 11.04.2016, 03:58 | Сообщение # 765
Группа: Пользователи
Сообщений: 490
Статус: Offline
Admin, но принцып логирования вы действительно опишите- это очень интересно. А вот куда эти логи сладывать- действительно дело каждого smile
 
AdminДата: Понедельник, 11.04.2016, 05:02 | Сообщение # 766
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
Обязательно опишу.
Если коротко - все очень просто, при событии считываем дату и время этого события и скидываем в файл. Каждое событие "конкретизируется"  - например , указывается от чего переключилось определённое реле - от управления с интерфейса, воздействия на "привязанный" к этому реле  вход, команды от датчика температуры и т.д.
 
ZooluДата: Четверг, 14.04.2016, 09:17 | Сообщение # 767
Группа: Пользователи
Сообщений: 490
Статус: Offline
Заканчиваю работу над вэб страницей управления домашней автоматизации. Может быть кому-нибудь будет интересно, поэтому опишу вкрадце. Контроллеры влючены по протоколу ModbusRTU. Страница сделана с использованием "резинового макета", т.е. она занимает всегда 100% ширины страницы независимо от разрешения экрана (делалось это для удобства использования с телефона и планшета). html страница всего одна, поэтому грузятся сразу все данные со всех контроллеров и датчиков. В радиомодуле отказался от датчиков открыто/закрыто, высвободив приемник под датчики движения. Пока не подключена метеостанция (работают вместе пока радиомодуль и контроллер RS485). Входы контроллера задействовал под контроль окон. Так же на странице подключено видеонаблюдение с вэб камеры. Немного "причесал" script.py- ошибок на вэб странице не замечено. Ошибка "500" вроде исчезла навсегда (я надеюсь). Отказался от сбора показаний в текстовый файл- перевожу на MySQL, поэтому построения графиков пока нет- в скором времени появятся в другом исполнении. 
Рекомендую всем при отлаживании системы почаще смотреть Ctrl+shift+I (для тех кто пользуется хромом)- видно все ошибки, возникающие в связке python-js-html. Прикладываю скриншоты и архив, содержащий дополнительно папку shell (для учета показаний электрического счетчика).
P.S. В сообщении ниже привожу детальный план функций и ближайших изменений.









Прикрепления: 1322126.jpg (29.0 Kb) · 5580473.jpg (63.8 Kb) · 1433770.jpg (63.9 Kb) · 1709742.jpg (68.6 Kb) · 5262924.jpg (51.1 Kb)


Сообщение отредактировал Zoolu - Четверг, 28.04.2016, 10:46
 
ZooluДата: Четверг, 14.04.2016, 09:18 | Сообщение # 768
Группа: Пользователи
Сообщений: 490
Статус: Offline
Реализовано в настоящий момент:
1. Отправка смс о тревожных состояниях радиоконтроллера;
2. Все JavaScript вынесены в отдельный файл;
3. Запрос баланса счета сим карты;
4. "Резиновый макет" для веб страницы- 100% ширины экрана на любом разрешении;
5. Хранение и вывод в БД счетчика прерываний по порту GPIO;
6. Одна веб страница для всей системы. Все показания грузятся одновременно;
7. Видео наблюдение по средствам веб камеры;
Ближайшие планы по реализации:
1. Хранение данных температуры и влажности в БД;
2. Отрисовка графиков средствами Python;
3. Автосвет по срабатыванию датчиков движения;
4. Автоматическая передача показаний в расчетный центр;
5. Выполнение команд по средствам смс.
Прикрепления: RPiHome.zip (128.8 Kb)


Сообщение отредактировал Zoolu - Четверг, 28.04.2016, 10:48
 
AdminДата: Четверг, 14.04.2016, 12:04 | Сообщение # 769
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
Цитата Zoolu ()
Заканчиваю работу над вэб страницей управления домашней автоматизации.

Ну что же, меня очень радует то, что тема наконец-то получает развитие не только с моей стороны. Спасибо!!!

A я постараюсь скоро познакомить вас с новой версией системы, "заточенной" под кросс-плату. Разумеется, для это необязательно изготавливать такую плату, она была разработана просто как конструктивное исполнение системы.
 
ZooluДата: Пятница, 15.04.2016, 12:57 | Сообщение # 770
Группа: Пользователи
Сообщений: 490
Статус: Offline
Кто-нибудь писал свой Def loop под webiopi? Отзовитесь ОЧЕНЬ нужно! Есть вот такой код- не работает... webiopi перестает отвечать, стоит только раскомментировать... пробовал в if подставлять банально print вместо sql запроса- все опять нагибается... Всю голову поломал уже себе...

Код
def loop():   

    instrumentA = minimalmodbus.Instrument('/dev/ttyUSB0', 2)
    global a0, a1, a2, a3, a4, a5, a6, a7, a8, a9   
    try:
        a0 = instrumentA.read_register(1, 0)       
        a1 = instrumentA.read_register(2, 0) 
        a2 = instrumentA.read_register(3, 0) 
        a3 = instrumentA.read_register(4, 0)
        a4 = instrumentA.read_register(5, 0)
        a5 = instrumentA.read_register(6, 0)
        a6 = instrumentA.read_register(7, 0)
        a7 = instrumentA.read_register(8, 0)
        a8 = instrumentA.read_register(9, 0)   
        a9 = instrumentA.read_register(10, 0)      

        
        print(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)
        
      
        # if a0 == 1:
                     # conn = pymysql.connect(host='127.0.0.1', user='user', passwd='pass', db='smsd', charset='utf8')
                     # cur = conn.cursor()
                     # cur.execute("INSERT INTO outbox (DestinationNumber,   TextDecoded, CreatorID,   Coding) VALUES ('+792******61','Тревога!','WebIOPi','Unicode_No_Compression')")
                     # cur.close()
                     # conn.close()
      
   
      
    except IOError:
#      print "Connection problem, gonna try again"
        pass
        #os._exit()
      

      
    time.sleep(1800)
P.S.  Тот код, что после if- рабочий 100%. Проверено.


Сообщение отредактировал Zoolu - Пятница, 15.04.2016, 18:23
 
Поиск:



T2M © 2024
Сайт управляется системой uCoz