Модификация GPRS Logger

Тема в разделе "Arduino & Shields", создана пользователем Mexanik16, 11 мар 2017.

  1. Mexanik16

    Mexanik16 Нерд

    Здравствуйте!

    По случаю скидки приобрел комплект для GPRS Logger (все комплектующие с "Амперки"). Запустил штатно, всё работает.

    1. Не понравилось что датчик влажности воздуха стоит колом на 18%, хотя в комнате есть увлажнитель. Показания не меняются при включенном и выключенном увлажнителе. Второй момент, показания датчика температуры иногда выдают ошибочные значения 27-31 градус ( примерно через два три запроса), при фактической 24. Поэтому решил поменять библиотеку с dht11 на TROYKADHT11. Внес изменения в код. При проверке выдаёт ошибку. В C++ делаю первые шаги, помогите разобраться, что не так. Извините, почему то не вставляется нумерация строк, в IDE включено.
    Код (C++):
    [code]
    // библиотека для работы с GPRS устройством
    #include <GPRS_Shield_Arduino.h>

    // библиотека для эмуляции Serial-порта
    // она нужна для работы библиотеки GPRS_Shield_Arduino
    #include <SoftwareSerial.h>

    // библиотека для работы с датчиком DHT11 тройка модуль
    #include <TroykaDHT11.h>
    // даём разумное имя для пина к которому подключен датчик DHT11
    #define TROYKADHT11_PIN 11
    // даём разумное имя для пина к которому подключен датчик влажности почвы
    #define MOISTURE_PIN A0
    // даём разумное имя для пина к которому подключен датчик уровня CO2
    #define MQ2_PIN A2
    // даём разумное имя для пина к которому подключен датчик уровня освещённости
    #define LIGHT_PIN A4

    // IMEI GPRS Shield, он указан на лицевой стороне шилда
    // по IMEI устройство будет идентифицироваться в проекте
    // поэтому он должен быть уникальным
    #define IMEI "xxxxxxxxxxxxxxxxxx"

    // часть запроса в специальном формате для народного мониторинга, содержащая:
    // IMEI устройства, название фирмы и GPS-координаты
    #define CLIENT "#"IMEI"#MK1#55.7543#52.4466#2.0\r\n"

    // интервал между отправками данных в миллисекундах (30 минут)
    #define INTERVAL 1800000

    // размер массива, содержащий TCP-запрос
    #define LEN 370
    // буфер для отправки данных на народный мониторинг
    // согласно установленной сервисом форме
    char tcpBuffer[LEN];

    // переменная для хранения времени работы программы
    // с последнего запуска отправки данных на сервер
    unsigned long previousMillis = 0;

    // переменная температуры воздуха
    uint8_t temp = 0;
    // переменная влажности воздуха
    uint8_t humi = 0;
    // переменная влажности почвы
    int moisture = 0;
    // переменная уровня CO2
    int mq2 = 0;
    // переменная уровня освещённости
    int light = 0;

    // создаём объект класса dht11
    TROYKADHT11 DHT;

    // создаём объект класса GPRS и передаём в него объект Serial1
    GPRS gprs(Serial1);
    // можно указать дополнительные параметры — пины PK и ST
    // по умолчанию: PK = 2, ST = 3
    // GPRS gprs(Serial1, 2, 3);

           //Далее код без изменений. Не даёт создать сообщение более 1000 символов.
     
    [/code]

    2.
    Пока экспериментировал с независимым питанием спалил ST1S10PHR на GPRS Shild подав 12.7В (не посмотрел характеристики, в голове сидел диапазон 7-18В почему то). Это ладно, поменяю, благо копеечная деталь, лишь бы за собой ничего больше не потянул.
     

    Вложения:

    • GPRS_Logger.PNG
      GPRS_Logger.PNG
      Размер файла:
      52 КБ
      Просмотров:
      728
    • Temperatura.PNG
      Temperatura.PNG
      Размер файла:
      85,5 КБ
      Просмотров:
      709
  2. sslobodyan

    sslobodyan Гик

    Не подключена библиотека с описанием TROYKADHT11?
     
  3. Mexanik16

    Mexanik16 Нерд

    // библиотека для работы с датчиком DHT11 тройка модуль
    #include <TroykaDHT11.h>
    Так не правильно чтоли?
     
  4. sslobodyan

    sslobodyan Гик

    Должно быть правильно, пропустил. Значит откройте этот файл и посмотрите какой класс там определяется. Вот, посмотрел сам
    Код (C++):
    class DHT11
    Значит в тексте надо писать
    Код (C++):
    // создаём объект класса dht11
    DHT11 DHT;
     
  5. Mexanik16

    Mexanik16 Нерд

    Спасибо что помогаете.
    Поправил, теперь новая ошибка на этом же месте, no matching function for call to 'DHT11::DHT11()' (нет подходящей функции для вызова).
     

    Вложения: