Здравствуйте! По случаю скидки приобрел комплект для 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В почему то). Это ладно, поменяю, благо копеечная деталь, лишь бы за собой ничего больше не потянул.
// библиотека для работы с датчиком DHT11 тройка модуль #include <TroykaDHT11.h> Так не правильно чтоли?
Должно быть правильно, пропустил. Значит откройте этот файл и посмотрите какой класс там определяется. Вот, посмотрел сам Код (C++): class DHT11 Значит в тексте надо писать Код (C++): // создаём объект класса dht11 DHT11 DHT;
Спасибо что помогаете. Поправил, теперь новая ошибка на этом же месте, no matching function for call to 'DHT11:HT11()' (нет подходящей функции для вызова).