Управление через Народный мониторинг

Тема в разделе "Проводная и беспроводная связь", создана пользователем Mishaw, 24 сен 2017.

  1. Mishaw

    Mishaw Нерд

    Кто нибудь пробовал управлять через Народный мониторинг используя GPRS ?
    Отправка происходит через TCP. Пробовал несколько GSM модулей но так и не смог получить команду. В ответ на отправку данных ничего не приходит из ком порта модема кроме "send OK". Режим управления на сайте включен, приходит на телефон уведомление об успешной передаче команды. Отправка на сайт проходит прекрасно, устройство работает больше года. Просматривал все, что приходит с GSM модуля. Модули на sim900.
     
    Последнее редактирование: 24 сен 2017
  2. Mishaw

    Mishaw Нерд

    Хелп !
     
  3. ИгорьК

    ИгорьК Гуру

    Ну что - Хелп?
    Чем управлять? Как управлять? Какую задачу решать? Через Народный мониторинг - это обязательно, потому что по-иному религия не позволят?
    Что уже есть? Как работает? Что это такое?

    А так - никто не пробовал "управлять".
     
  4. Mishaw

    Mishaw Нерд

    Мне не нужно готовое решение и тем более решение вопроса за меня. Не суть чем управлять и как. Вопрос в том, что не могу получить команду управления с "Народного мониторинга", с GSM модуля она не приходит, хотя отправка данных проходит успешно (данные по TCP отправляются и успешно отображаются на сайте) и приходит уведомление о доставке команды. Что и как с ней делать в данный момент не важно. По иному действительно религия не позволяет, и называется она отсутствие знаний и опыта. Устройство базируется на примере GPRS логгера для теплицы.

    Собственно код отправки данных и попытки получения ответа
    Код (C++):
    void tcpRequest()
    {
        strcat(tcpBuffer, CLIENT);
       tcpTemp();
       strcat(tcpBuffer, "##");
      gprs.send(tcpBuffer);
      char* buf1;
      int len1;
      gprs.recv( buf1, len1);
      Serial.print("buf: ");
      Serial.println(buf1);
        clearTcpBuffer();
    }
    Я правильно понимаю, что вы мне предлагаете заплатить ?
     
    Последнее редактирование: 25 сен 2017
  5. rkit

    rkit Гуру

    Ни у кого нет хрустального шара, заглянув в который, можно узнать, что за это за "пример для теплицы", и что вы с ним сделали. Если хотите помощи - будьте добры, описывайте свою проблему так, чтобы человек, ничего о ней не знающий, мог что-то понять.
     
    ИгорьК нравится это.
  6. Mishaw

    Mishaw Нерд

    Я привел кусок кода отвечающий за отправку данных.
    gprs.send(tcpBuffer); данные уходят
    gprs.recv( buf1, len1); пришедшие данные должны считываться с UARTа модуля.

    когда то за основу был взят проект http://wiki.amperka.ru/projects:gprslogger
     
  7. ИгорьК

    ИгорьК Гуру

    Нет. Даже в мыслях не было.
    Было желание понять что же Вам надо и т.д.
    Было...
     
  8. Mishaw

    Mishaw Нерд

    А что зто за яндекс пиво ? Наверное я совсем туп.
     
    ИгорьК нравится это.
  9. b707

    b707 Гуру

    Вы в том скетче, откуда это скопипастили - комментарии читали? Два символа "##"" - это признак окончания запроса к серверу. А сам запрос-то где у вас?
    Вы посылаете серверу пустой запрос - вот он вам ничего и не отвечает...

    Думаю, вам надо внимательно почитать на "Народном мониторинге" - как составлять запросы и как получать ответы...
     
  10. Mishaw

    Mishaw Нерд

    Я привел кусок кода из из рабочей системы. У меня устройство работает больше года на отправку. Проблема в получении команды.
    Так наверное яснее. float temp = 23.8 жестко забито для теста

    Код (C++):
    void tcpTemp()
    {
      float temp = 23.8 ;
       // переменная для символьного представления
      // значения температуры воздуха
      char s_temp[8];
       // преобразуем число 10 системы исчисления (тип float)
      // из переменной temp в строковое представление в массив s_temp[]
      // с учетом знака числа
      float2str(s_temp, temp);
       Serial.print("s_temp :");
       Serial.println(s_temp);
      // добавляем к буферу разделительный символ «#»
      strcat(tcpBuffer, "#");
      // добавляем к буферу уникальный серийный номера датчика
      // получаем его путём добавления к IMEI GPRS-шилда названия датчика
      strcat(tcpBuffer, IMEI);
      strcat(tcpBuffer, "T01");
     
      // добавляем к буферу разделительный символ «#»
      strcat(tcpBuffer, "#");
       // добавляем к буферу строку s_temp
      strcat(tcpBuffer, s_temp);
      // добавляем к буферу разделительный символ «#»
      strcat(tcpBuffer, "#");
      // добавляем к буферу время актуальности показаний
      // если показания датчиков передаются немедленно,
      // то данный параметр передавать не надо
      strcat(tcpBuffer, " ");
      // добавляем к буферу разделительный символ «#»
      strcat(tcpBuffer, "#");
      // добавляем к буферу названия датчика
      strcat(tcpBuffer, "Тест");
      strcat(tcpBuffer, "\r\n");
     
    }
     
  11. Mishaw

    Mishaw Нерд

    Так выглядит полученный сервером запрос от моего рабочего устройства
    2017-09-25 17:10:37 83.220.236.248 TCP
    #86416102651IMEI#ХХХХХХХХ название скрыто
    #86416102651IMEIT01#13.1# #Улица
    #86416102651IMEIH01#60.0# #Влажность
    #86416102651IMEIP01#0.8# #Давление
    #86416102651IMEIT02#13.5# #Котел
    #86416102651IMEIT03#13.0# #Отопление
    #86416102651IMEIT04#14.5# #Помещение
    #86416102651IMEIP02#764# #Атм. давление
    #86416102651IMEIS01#1# #Сеть
    ##
    на тестовом устройстве убрано все не относящееся к отправке, оставлен один датчик и показания датчика статические

    запрос тестового устройства:

    2017-09-25 23:16:17 83.220.239.3 TCP
    #01322600718IMEI#Плетениха_тест
    #01322600718IMEIT01#23.8# #Тест
    ##
     
    Последнее редактирование: 26 сен 2017