Подключение железа к AMS

Модератор: Alex

ученик
Сообщения: 229
Зарегистрирован: Чт фев 12, 2015 2:34 pm
Благодарил (а): 36 раз
Поблагодарили: 5 раз

Re: Подключение железа к AMS

Сообщение ученик » Ср июн 29, 2016 3:39 pm

serghei писал(а):Продолжаем подключать оборудование к сенсору для измерения расхода воды. Использую датчик YF-S201.
Промежуточный результат на АМС на картинке.
.
А саму схему сенсора расхода воды как можно увидеть ?
server i5, OS-Ubuntu Server 16., 1-wire
php 7, AMS,broadlink rm2,rm3 mini.
serghei
Сообщения: 2556
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 297 раз
Поблагодарили: 280 раз

Re: Подключение железа к AMS

Сообщение serghei » Ср июн 29, 2016 6:49 pm

В смысле как подключить датчик к сенсору? Я использую NANO 3 и датчик на фото. У него 3 вывода . Черный на корпус (0),
красный на +5 вольт , желтый на D3 (в скетче написано). Внутри счетчика стоит датчик холла и всё. Не проверял работу на 3.3
вольта. Судя по паспорту работает до 24 вольт.
Пара замечаний. При хорошем напоре воды гремит как паровоз))). Скорости считать хватает. В интернете гуляет стандартный скетч под него. ( По запросу " расход воды на ардуино" ) Его не использовал , потому что меня интересует количество литров,
а не расход литров в минуту. Хотя памяти остается и для зтого. Сейчас вырезал из скетча измерение температуры и пробую
прикрутить второй счетчик воды. Пока не могу написать процедуру передачи данных от сенсора к АМС так,чтобы передача литров была только при изменении на 1 литр ,ну и по запросу базы. Изучаю протокол для подключения второго и третьего сенсора.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
serghei
Сообщения: 2556
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 297 раз
Поблагодарили: 280 раз

Re: Подключение железа к AMS

Сообщение serghei » Ср июн 29, 2016 9:03 pm

Да, еще одно замечание. Залил скетч в другую NANO 3 и заметил,что не правильно передается имя сенсора. Вместо названия в сериале русские Я и на веб странице ??????????? . Вылечилось прописыванием нулей в EEPROM из стандартных примеров.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
ученик
Сообщения: 229
Зарегистрирован: Чт фев 12, 2015 2:34 pm
Благодарил (а): 36 раз
Поблагодарили: 5 раз

Re: Подключение железа к AMS

Сообщение ученик » Чт июн 30, 2016 4:38 am

Меня интересует сенсор, каким образом АМС контактирует с сенсором?
какой скетч у сенсора?
server i5, OS-Ubuntu Server 16., 1-wire
php 7, AMS,broadlink rm2,rm3 mini.
serghei
Сообщения: 2556
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 297 раз
Поблагодарили: 280 раз

Re: Подключение железа к AMS

Сообщение serghei » Чт июн 30, 2016 8:03 am

По терменологии, сложившейся на форуме под сенсором понимается некое устройство ,передающее данные на АМС_015 с помощью радио модулей NRF24. По дефакту используется ардуино про мини + nrf24. Протокол и принцип работы расписаны на официальном сайте АМС http://hi-lab.ru/arduino-mega-server/do ... less/nrf24 . Я использую ардуино nano3. скачиваем правильный скетч для сенсора и видим вкладку yfs201. Каждая строчка подробно прокомментирована.
Нас интересует переменная vol1 , это значение литров. В остальных вкладках написана процедура передачи этого числа на АМС.
На стороне МегаСервера происходит прием числа литров и вывод на полноэкранное демо. Для этого на карту SD надо добавить два файла FULL5.JS и FULL5.HTM и внести изменения в файл SCRIPT.JS. Там же в файлах FULL4 выведен датчик температуры с сенсора. Если не хотите использовать связь по радио, можно вкладку yfs201 вставить непосредственно в АМС. Но такой вариант я не проверял.Надо уточнить сколько прерываний и на каких выводах у МЕГИ .
СпойлерПоказать

Код: Выделить всё

/*
   YF-S201 Hall Effect Water Flow Meter / Sensor
   http://www.hobbytronics.co.uk/yf-s201-water-flow-meter
   
   Read Water Flow Meter and output reading in litres/hour


Тупо регистрируем замыкания контактов
*/
  #ifdef YFS201_FEATURE



  int pin = 3;       // 3-й цифровой пин, первое прерывание
  long counter = 0;  // счётчик импульсов


  void yfs201Init()


  {
  // Настраиваем последовательный интерфейс, для вывода информации 
    Serial.begin(9600);
  
  //Настраиваем цифровой вход
    pinMode(pin, INPUT);      // Сюда будем подключать подтягивающий резюк
    digitalWrite(pin, HIGH);  // "Подключаем" подтягивающий резистор (реализован внутри ATmega)
    attachInterrupt(1, count, FALLING); // задаём обработчик прерывания 1 (3-й пин). 
                                      // прерывание будет при изменении уровня с HIGHT на LOW
                                      // вызывать функицю count
   }


    void yfs201Works ()  


   {
  
  
  // основной рабочий цикл
    
     vol1 = (counter / 430); //430 оборотов на литр
   
 /* 
   #ifdef YFS201_FEATURE
    if (vol1NeedSend) {
      sendPacket(DTA_VOL_1);
    }
  #endif
 */
    checkTemp(); 

    #ifdef SERIAL_PRINT
    Serial.print(F("Volume: "));// вывод литров . Надо дописать условие - выволить при изменении на 1 литр
    Serial.println(vol1);
    
     Serial.print(F("V: ")); // для проверки работы счетчика
    Serial.println(counter);
    #endif
  }


   void count(){
  // вызывается прерыванием 1 от 3-го цифрового входа
     counter++;  // ясен перец, увеличиваем переменную. Утекло ещё 2 грамма
  }
 
   #endif

 
На стороне АМС надо дописать код для литров по образу и подобию температуры
СпойлерПоказать

Код: Выделить всё

#ifdef NRF24_FEATURE
  // commands
  byte const GET_NAME      = 1;
  byte const DTA_NAME      = 2;
  byte const SET_NAME      = 3;
  byte const GET_ADDR      = 4;
  byte const DTA_ADDR      = 5;
  byte const SET_ADDR      = 6;
  byte const GET_FREE_MEM  = 7;
  byte const DTA_FREE_MEM  = 8;
  byte const GET_BATTERY   = 9;
  byte const DTA_BATTERY   = 10;
  byte const GET_SELF_TEMP = 11;
  byte const DTA_SELF_TEMP = 12;
  byte const GET_TEMP_1    = 13;
  byte const DTA_TEMP_1    = 14;

  //byte const GET_TEMP_2    = 17;
 // byte const DTA_TEMP_2    = 18;
  
  
   
  byte const GET_HEALTH    = 15;
  byte const DTA_HEALTH    = 16;
  
  
  
  
  byte const GET_VOL_1    = 19;
  byte const DTA_VOL_1    = 20;
  
  
  
  byte const GET_ID        = 100;
  byte const DTA_ID        = 101;
  byte const SET_ID        = 102;
  byte const GEN_ID        = 103;
  byte const BAK_ECHO      = 200;  

  // sender structure
  typedef struct Sender {
    boolean active      = false;
    boolean required    = true;
    boolean success     = false;
    byte type           = 0;
    byte command        = 0;
    byte number         = 0;
    byte tryouts        = 0;
    int errors          = 0;
    String result       = "";
    unsigned long timer = millis();
  } sender;

  sender sendEcho,
         sendGetName, sendGetId, sendGetAddress,
         sendGetFreeMem, sendGetBattery, sendGetSelfTemp,
         sendGetHealth,sendGetTemp1,sendGetVol1;// передача объема воды
        // sendGetTemp2;

Код не доделан ,но все работает на АМС_015 для Дуи. На МЕГЕ не проверял,но думаю все аналогично будет
За это сообщение автора serghei поблагодарил:
ученик (Чт июн 30, 2016 11:12 am)
Рейтинг: 1.23%
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Fav0rit
Сообщения: 60
Зарегистрирован: Чт мар 19, 2015 10:27 pm
Благодарил (а): 8 раз
Поблагодарили: 22 раза

Re: Подключение железа к AMS

Сообщение Fav0rit » Чт июл 14, 2016 1:01 am

Убил сегодня уйму времени, безуспешно пытаясь подключить DS18B20 к Webmos D1 mini с AMS на борту. Не видела она этот сенсор и все тут, а разгадка была в том, что маркировка пинов в IDE и на плате различается, т.е. порт D2 соответствует GPIO 4 и.т.п.
Ясность внесла эта картинка: https://raw.githubusercontent.com/nodem ... PINMAP.png
Может где-то эта информация уже размещена, но на глаза мне не попадалась...
Датчик был подключен к порту D2, как только прописал ONE_WIRE_BUS 4, все сразу нашлось и заработало.
Вложения
NODEMCU_DEVKIT_V1.0_PINMAP.png
NODEMCU_DEVKIT_V1.0_PINMAP.png (71.87 КБ) 7977 просмотров
За это сообщение автора Fav0rit поблагодарил:
ipc2002 (Сб июл 28, 2018 10:01 pm)
Рейтинг: 1.23%
serghei
Сообщения: 2556
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 297 раз
Поблагодарили: 280 раз

Re: Подключение железа к AMS

Сообщение serghei » Чт июл 14, 2016 6:45 am

Я пробовал тот-же вариант и заметил ,что если надо активировать какой нибудь дополнительный протокол (например I2C) , происходит конфликт выводов и далласы надо включать на других пинах с заменой пина в скетче
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
nick7zmail
Сообщения: 7321
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 1931 раз

Re: Подключение железа к AMS

Сообщение nick7zmail » Пт июл 15, 2016 10:19 am

История одной самоделки))
На самом деле получилось не сильно аккуратно, но работает вполне неплохо))
Вот такой конечный вид:
DSC_0019.JPG
DSC_0019.JPG (199.18 КБ) 7904 просмотра
Хронология создания под спойлером...думаю описывать здесь что-то - излишне))Всё на фото
ФотоПоказать
DSC_0002.JPG
Короб
DSC_0002.JPG (207.57 КБ) 7904 просмотра
DSC_0005.JPG
Примерка
DSC_0005.JPG (189.09 КБ) 7904 просмотра
DSC_0006.JPG
DSC_0006.JPG (215.64 КБ) 7904 просмотра
DSC_0007.JPG
DSC_0007.JPG (167.95 КБ) 7904 просмотра
DSC_0008.JPG
Вид сверху
DSC_0008.JPG (218.48 КБ) 7904 просмотра
DSC_0009.JPG
Управляющий разъем витой пары
DSC_0009.JPG (140.09 КБ) 7904 просмотра
Единственный коммент - нужно выдерживать расстояние до пайки на плате с реле...там как никак 220v, если замкнет - не есть хорошо. Для этой цели приспособил куски корпуса шариковой ручки)) благо на работе много пустых валяется))) не знаю на кой они там, но помогли)).

Управляется по витой паре...т.к. у платы реле всего 6 контактов - остаётся пару свободных проводов. Один использовал под DHT-22, второй пока свободный. Планировал использовать под физические выключатели (на аналоговый вход), но пока не подключал.

Скетч на подключение платы немного косячный... Заабыл выходы в OUTPUT переключить...а без этого напряжения не хватает на перещелкивание реле. В самом AMS прикрутил вот такой интерфейс (по аналогии с кнопками noolite):
1223.jpg
Интерфейс
1223.jpg (76.04 КБ) 7904 просмотра
PS: Пленка, как выяснилось, очень херово клеется к фанере, и по-моему смотрится не очень...скорее всего буду отдирать, шкурить, шпатлевать и красить...

PPS: В общем как то так...сильно не судите))...вдруг кому сама идея пригодится...а сделать можно и по-аккуратнее).
За это сообщение автора nick7zmail поблагодарили (всего 2):
serghei (Пт июл 15, 2016 10:34 am) • Alex (Пт июл 15, 2016 6:40 pm)
Рейтинг: 2.47%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Подключение железа к AMS

Сообщение Alex » Пт июл 15, 2016 6:40 pm

PPS: В общем как то так...сильно не судите))...вдруг кому сама идея пригодится...а сделать можно и по-аккуратнее).
Мне нравится подход — взял и сделал. Молодец! Особенно нравится, что взял не что-нибудь, а АМС :)
relict
Сообщения: 72
Зарегистрирован: Пт июл 10, 2015 8:44 pm
Благодарил (а): 9 раз
Поблагодарили: 7 раз

Re: Подключение железа к AMS

Сообщение relict » Вс июл 17, 2016 10:41 am

А меня не похвалил. Взял АМС убрал, всё что лишнее и мне не нужное и ... получился FSBowser из примеров.
Debian GNU/Linux 8 (jessie)
Arduino 1.8.5 / esp32 1.0.1
Ответить