1 2 3 4 5 6 7 8 9 10 10/10 10,00оценок: 19

"Народный контроллер" для теплового насоса

Тема в разделе "Геотермальные тепловые насосы", создана пользователем Pav2000, 21.03.16.

Статус темы:
Закрыта.
  1. Elprog
    Регистрация:
    11.07.12
    Сообщения:
    5.392
    Благодарности:
    3.501

    Elprog

    Живу здесь

    Elprog

    Живу здесь

    Регистрация:
    11.07.12
    Сообщения:
    5.392
    Благодарности:
    3.501
    Адрес:
    Москва
    Зря Вы так... обратите внимание, у ТС как раз таки VPN сделан. И контроллер в паблике не светится, есть только вход (опять таки по VPN) в частную (локальную) сеть...
     
  2. dobrinia
    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648

    dobrinia

    Живу здесь

    dobrinia

    Живу здесь

    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648
    Адрес:
    Минск
    @Elprog, моё дело предупредить... с впнами как у ТС я думаю 1 из 100 человек будет. Я уж точно ради ТН подымать впны не буду...
    Мне не принципиально, обидно будет за простой народ, ради которого и делаем контроллер.
    Кстати сам ТС верно все понимает и пишет, думаю все будет окей
     
  3. kir102
    Регистрация:
    08.11.13
    Сообщения:
    275
    Благодарности:
    179

    kir102

    Живу здесь

    kir102

    Живу здесь

    Регистрация:
    08.11.13
    Сообщения:
    275
    Благодарности:
    179
    Адрес:
    Минск
    можем. как вобще выглядит запрос браузера на ардуину? а вот так:
    Код:
    GET / HTTP/1.1
    Host: 192.168.0.253
    Connection: keep-alive
    Cache-Control: max-age=0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36
    Accept-Encoding: gzip, deflate, sdch
    Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
    
    в ответ на этот (первый) запрос нужно выдать страницу типа index. html. можно в этой странице организовать поле для ввода логина и пароля. и организовать передачу их на ардуину, например вот так:
    Код:
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Ку-ку</title>
        <link rel="icon" href="favicon.png" type="image/x-icon">
        <link rel="shortcut icon" href="favicon.png" type="image/x-icon">
        <link rel="stylesheet" href="style.css" media="screen" type="text/css" />
        <link href='http://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
    
    <script language="JavaScript">
    function login()
    {
    var x = new XMLHttpRequest();
    
    var params = 'name=' + document.iAccInput.ilogin.value + '&pass=' + document.iAccInput.ipassword.value
    
      x.open("GET", '/login.htm?'+params, true)
      x.onload = function ()
        {
        alert( x.responseText);
        }
      x.send(null);
    
    }
    </script>
    </head>
    
    
    
    <body>
        <div id="login-form">
          <h1>АВТОРИЗАЦИЯ</h1>
            <fieldset>
                <form action="javascript:void(0);" method="get"; name="iAccInput">
                    <input type="login" required value="Логин" name="ilogin" onBlur="if(this.value=='')this.value='Логин'" onFocus="if(this.value=='Логин')this.value='' ">
                    <input type="password" required value="Пароль" name="ipassword" onBlur="if(this.value=='')this.value='Пароль'" onFocus="if(this.value=='Пароль')this.value='' ">
                    <input type="submit" value="ВОЙТИ" onclick="login()">
                </form>
            </fieldset>
        </div>
    </body>
    </html>
    при этом, при нажатии кнопки "войти" браузер выдаст ардуине такой запрос (ввели логин 11111 и пароль 222):
    Код:
    GET /login.htm?name=11111&pass=222 HTTP/1.1
    Host: 192.168.0.253
    Connection: keep-alive
    User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36
    Accept: */*
    Referer: http://192.168.0.253/
    Accept-Encoding: gzip, deflate, sdch
    Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
    
    выдираем значения логина и пароля, сверяем с базой и решаем что делать дальше... все просто)

    п. с. логин и пароль передаются не зашифрованные, но тут дело за @dobrinia, если он забацает простое кодирование в html, то это несильно усложнит программу, но завернет любознательных... хотя... полином все равно будет виден в исходниках кода
     
    Последнее редактирование: 06.04.16
  4. dobrinia
    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648

    dobrinia

    Живу здесь

    dobrinia

    Живу здесь

    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648
    Адрес:
    Минск
    @kir102, закодировать то без проблем.
    все врено пишите.
    думаю сделаем на JS и куках авторизацию...
    все буду верстать, адекватный выход есть и это главное
     
  5. dobrinia
    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648

    dobrinia

    Живу здесь

    dobrinia

    Живу здесь

    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648
    Адрес:
    Минск
    Сверстал версию с боковым меню суммарный вес 35 КБ и это я не оптимизировал стили... будет чуть меньше. Кстати, все оформление, как и говорил, в файле стилей. Он кешируется всегда на стороне клиента и при переходе на другие страницы интерфейса будут лишь подгружаться страничке по 1-2 КБ в 1 соединение...
    http://31.130.206.212/v1/
    Смотрим, щупаем... сразу скажу что это еще сырая версия, мелочи надо дорабатывать а также сделаю её адаптивной когда полностью будет готова полная версия.
    Все я спать...
     
  6. Gaunt
    Регистрация:
    14.06.12
    Сообщения:
    14.743
    Благодарности:
    10.104

    Gaunt

    Живу здесь

    Gaunt

    Живу здесь

    Регистрация:
    14.06.12
    Сообщения:
    14.743
    Благодарности:
    10.104
    Адрес:
    Стерлитамак Уфимской Губернии
    @dobrinia,
    @Pav2000,
    Всё же давайте сделаем весь интерфейс, со всеми названиями датчиков на великом и могучем.
    Чтобы гейропой, пиндосами и прочей нечистью даже не пахло.
     
  7. dobrinia
    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648

    dobrinia

    Живу здесь

    dobrinia

    Живу здесь

    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648
    Адрес:
    Минск
    @Gaunt, дак нет проблем, ты можешь хоть на башкирском написать... Это ж все в html файликах хранится, правиться любым текстовым редактором...
    Я вообще думаю, что везде все может быть на русском а в таблице "Показания датчиков" вполне есть название датчика из прошивки...
     
  8. Pav2000
    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705

    Pav2000

    Живу здесь

    Pav2000

    Живу здесь

    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705
    Адрес:
    Москва
    Мне все нравится.
    Маленькое замечание - предлагаю в первом ряду выкинуть все температуры (то что без белого квадрата) ИХМО на стартовом экране это лишнее. Пусть будет пустое место. В версии два прикрутим график СОР например. Так скажем "место на вырост"

    Наверное еще будут замечания но что бы "начать" отлично! :hello:

    Я только за, НО названия датчиков на английском, где они используются (типа TIN).

    У меня сегодня ночью получилось запустить чип w5200 на дуе.
    Вчера вечером купил еще одну сетевую плату, теперь у меня их две. ;)
    Общие замечания:
    1. Есть масса езернет шилдов на w5200 они все разные и имеют ошибки в разводке и недокументированные возможности. А схем нет, либо схема не имеет ничего общего с платой.
    2. w5200 должен принципиально работать с дуе это убеждение мне помогло довести работу до конца.
    3. Существует масса библиотек для w5200 (наверное с десяток) но они тиражируют ошибки и неточности друг друга. Более того надо понимать что есть принципиальные отличия для среды ардуино 1.0 1.5 и 1.6 (нас будет волновать отличия 1.5 и 1.6).

    Итоги.
    1. Я использовал среду 1.6.5 (более новые плохо поддерживают stm32 и esp8266 - моя заморочка), при компиляции для дуе вылезала ошибка (какой то косяк для SAM8). Надо откатится до версии 1.6.4 (на других не пробовал) через боарад-менеджер.
    2. Шилды
    2.1 DFRobot Ethernet Shield for Arduino - W5200 (https://www.electronshik.ru/item/ethernet-shield-for-arduino-w5200-1263421). Выявленные косяки
    - запаян один резистор ни того наминала (смотрел типовое подключение w5200)
    - сигналы Reset и PWDN выведены на 8 и 9 ноги и соответственно ТРЕБУЮТ установки в программе (high и low соответственно) уровней. Об этом вообще нигде ни слова!
    - в интерентах везде выложена не правильная схема.
    Сейчас работает с установленном SPI 42 мГц, но периодически впадает в кому (сброс не помогает) буду разбираться.

    2.2 W5200 Ethernet Shield производство seeed (http://www.chipdip.ru/product/w5200-ethernet-shield/) На сайте висит картинка версии 2.0, я купил версии 2.4. ВНИМАНИЕ версия 2.0 скорее всего имеет ошибку в разводке (подтягивающий резистор для PWDN)
    Косяки
    - требует понижения частоты SPI (на плате стоят буфера, видимо они не достаточно быстрые)
    Работает на частоте SPI ниже или равной 21 мГц. Пока эта плата у меня основная.

    2.3 Китайский шилд типа (у меня его нет)
    http://ru.aliexpress.com/item/Free-shipping-New-Ethernet-SHIELD-W5200/32272381781.html?spm=2114.30010708.3.1.GMNBWe&ws_ab_test=searchweb201556_6,searchweb201602_3_301_10034_10033_507_10032_10020_10017_10005_10006_10021_10022_401_10007_10018_10019,searchweb201603_6&btsid=ee21075f-6ed6-4d83-83ee-42e5d9c7edcc
    Судя по картинке очень похож на п. 2.1. скорее всего потребует дополнительной инициализации, нет буферов. Скорее всего работать будет, но надо пробовать. Объем танцев с бубнами не понятен.
    Частота возможна 42 мГц

    2.4 W5200 Ethernet Shield производства Elecrow (у меня его нет)
    http://ru.aliexpress.com/item/Free-shipping-New-Ethernet-SHIELD-W5200/32272381781.html?spm=2114.30010708.3.1.GMNBWe&ws_ab_test=searchweb201556_6,searchweb201602_3_301_10034_10033_507_10032_10020_10017_10005_10006_10021_10022_401_10007_10018_10019,searchweb201603_6&btsid=ee21075f-6ed6-4d83-83ee-42e5d9c7edcc
    Подробно описано вот здесь http://feilipu.me/2013/08/03/wiznet-w5200-arduino-shield
    Статья очень мне помогла в понимании проблем с моим железом. Требует аппаратной доработки, будет работать скорее всего на частоте 21 мГц.

    Во общем обе платы заработали. Запустил с 3-4 вариантами библиотек. Остановился на библиотеке от Wiznet (разработчик w5200). Поправил частоту SPI до 21 мГц (см. файл) и настроил w5200.
    Как устанавливать (это не единственный способ)
    1. В папке установки среды в директории библиотеки убить папку езернет (что бы гарантировано не было конфликтов имен).
    2. В рабочей папке ардуино в директории библиотеки разархивировать архив.
    3. Библиотеки подходят к всем шилдам на w5200. Некоторые требуют дополнительных строчек инициализации.

    Надо проверить блочную передачу по SPI использование DMA в библиотеке.
    Теоретическая пропускная способность наверное будет на 21 мГц около 15 мБит.

    Использование w5100 возможно но не целесообразно (скорость где то в 40 раз меньше будет)

    Пойду ковырять SD карту.
     

    Вложения:

  9. dobrinia
    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648

    dobrinia

    Живу здесь

    dobrinia

    Живу здесь

    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648
    Адрес:
    Минск
    Прибрал параметры с первого ряда, выведем там что-нить интересное потом...
    буду верстать страницу параметров, параллельно надо думать что на других страницах у нас будет...
    скорости даже в 1мбит имхо за глаза, так что переживать не стоит по ethernet шилдам. Нам главное что б работало стабильно и не падало...
    Я писал выше что при первом открытии примерно 35КБ размер страницы+стили...
    Значит первое открытие, когда стили еще не скешировались займет при скорости 1мбит 35/(1024/8)=0.27 секунды.
    Все следующие открытия страниц будут происходить без подгрузки стилей т. к. заставим броузер их скешировать. А страница без стилей займет не более 2-3 КБ. Значит будет загружаться не дольше 0.027с
    Резюмирую: нам главное стабильность, а не скорость ...
     
  10. dobrinia
    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648

    dobrinia

    Живу здесь

    dobrinia

    Живу здесь

    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648
    Адрес:
    Минск
    Сверстал страницу показаний датчиков. Смотрите там же .. http://31.130.206.212/v1/
    давайте продумаем остальные страницы?
     
  11. Gaunt
    Регистрация:
    14.06.12
    Сообщения:
    14.743
    Благодарности:
    10.104

    Gaunt

    Живу здесь

    Gaunt

    Живу здесь

    Регистрация:
    14.06.12
    Сообщения:
    14.743
    Благодарности:
    10.104
    Адрес:
    Стерлитамак Уфимской Губернии
    Главная страница у меня разъехалась - текст выходит из границ подсветки.
    1360*768 Опера 36.02 с увеличением.
     
  12. lut
    Регистрация:
    08.08.11
    Сообщения:
    138
    Благодарности:
    156

    lut

    Живу здесь

    lut

    Живу здесь

    Регистрация:
    08.08.11
    Сообщения:
    138
    Благодарности:
    156
    Адрес:
    поселок Куйбышев
    И у меня в мобильной версии юцвеб главная не коректно отображается. Главное меню слева на весь экран прикреплено, остальное не видно.
     
  13. dobrinia
    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648

    dobrinia

    Живу здесь

    dobrinia

    Живу здесь

    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648
    Адрес:
    Минск
    Понеслась)
    верстка всегда идет в два этапа (у меня по крайней мере)
    1) верстаем полноценный вариант (100й масштаб под обычные экраны)
    2) доделываем все фишки, что бы потом не дорабатывать снова глобально ничего.
    3) только когда все готово и всех устраивает в основной версии я сделаю адаптивную под телефоны, планшеты, увеличенный масштаб итд... итд.
    Просто адаптивка занимает большой кусок времени и ее придется переделывать если что-то изменится в основной версии...
     
  14. Pav2000
    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705

    Pav2000

    Живу здесь

    Pav2000

    Живу здесь

    Регистрация:
    01.03.09
    Сообщения:
    1.018
    Благодарности:
    2.705
    Адрес:
    Москва
    Предложения:
    - столбец значения (везде по всем типам датиков) переместить сразу после описания. Нас чаще будет интересовать значения датчика, по этому так наверно будет эргономичнее. Это мой косяк я в бумаге написал так как сделал dobrinia.
    - добавить датчик давления (таблицу), пусть будет единообразие. В первой конфигурации строка будет серая. Единый саит для всего
    - в строке адрес температурного датчика будет шестнадцатеричное число из шести символов
    - код ошибки или 0 (ок) или отрицательное целое число. Можно вместо 0 ставить "-"
    - наверное разумным сделать отображение (одной строкой) номер версии прошивки/веб типа "Версия 0.1/0.3" которое показывается на всех экранах, где то меленько с краю. Что бы при отладке и обмене скриншотами было понятно что стоит у человека.
    По экранам предложения:
    1. "Состояние" - подменю нет - экран то что уже сделан стартовым (сейчас он вызывается нажатием на иконку.)
    2. "Настройка ТН"
    2.1 "Настройка СО" настройка для пользователя - настройка целевых температур
    2.2 "Настройка ГВС" настройка для пользователя - настройка целевых температур
    3. Конфигурация ТН
    3.1 "Датчики" - это экран есть
    3.2 "Исполнительные устройства" - названия надо покороче
    3.3 "Привязка датчиков" - привязка температурных датчиков
    4. "Сервис"
    4.1 "Опции ТН" - наверное основной экран там можно менять все переменные ТН
    4.2 "Тест" - ручное управление, перевод ТН в режим теста
    4.3 "Сеть" - настройка сетевых параметров
    4.4 "Дата/Время"
    5. "О контроллере"

    Предложение не ахти мне самому не все нравится давайте править!

    По моей текущей деятельности.
    Со штатной библиотекой "SD" все сразу заработало. Работает и сеть и карта (конечно попеременно) на одном SPI.
    Для понимания штатная библиотека "SD" базируется на ранних версиях SdFat.
    С библиотекой SdFat - отдельно работает, вместе с сетью нет. Разбираюсь.
    SdFat - быстрее, стабильнее, больше функций и новее. Буду пытаться ее доработать.
    С SdFat получил скорость записи 600-700 кбайт/с чтения 1.3-1.5 мбайт/сек при размере буфера 1 кб. на карте 10 класса, при увеличении буфера можно достигнуть скорости 2.5 мБайта/сек. Частота SPI 21 мГц

    Для моего понимания (я в технологиях веба плохо разбираюсь:|:)
    Вопрос - Выкладываемый пример kir102 заработал (https://www.forumhouse.ru/threads/352693/page-28#post-15556741) Который использует ajax запросы.
    Мы будем использовать тот же принцип?

    Если да, то получается мне надо написать парсер всех ajax запросов. Тогда для сокращения кода мне бы хотелось бы что бы запросы были с параметром типа get_temp (TIN), такое наверное возможно?
    Возвращаемое значение всегда строка как я понимаю? Длина строки? Наличие переносов на новую строку (если выводить что то длинное)?

    Это метод когда данные идут от контроллера в веб а обратно как? Типа установили целевую температуру и мне надо ее получить. Запрос типа set_temp (TIN_target)? а контроль валидности данных?

    И еще вопрос с кодировкой в Ардуино используется UTF-8 (Windows и Linux).
     
  15. dobrinia
    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648

    dobrinia

    Живу здесь

    dobrinia

    Живу здесь

    Регистрация:
    27.12.13
    Сообщения:
    4.445
    Благодарности:
    2.648
    Адрес:
    Минск
    По предложениям согласен со всеми пунктами, сделаю вечером, если еще что кто напишет до вечера сделаю тоже.

    Меню: при клике на каждуй основой пункт, содержащий подпункты, открываем сразу какой то из вложенных пунктов? (первый) что бы не плодить лишние страницы...верно?
    с пунктами меню согласен, если до вечера не передумаем -> так и сделаю, с минимальными правками по длинным пунктам т. к. они априори не влезут... в две строки будет криво...

    У этого способа есть проблемы, хоть он и не плох:
    1) открытие таблиц с параметрами будет бомбить контроллер тучей запросов и ждать ответ. А количество сокетов у нас ограничено...
    2) да и сможет ли контроллер быстро многопоточно отвечать на аякс запросы?
    3) контроллеру придется заниматься вычислением некотрых значений для отображения, к пример если мы захотим вывести минимальное значение температуры СО за день или месяц... это нагрузка...
    Предлагаю рассмотреть вариант хранения оперативных данных в файлах, а оттуда аяксом подставлять в страницу... что скажите?
    по-любому делаем UTF-8, это правило хорошего тона в вэбе .
     
Статус темы:
Закрыта.