(Ох чувствую закидают меня камнями...)
Небольшая предыстория
Решили мы всей группой делать курсовые и дипломные проекты на arduino. До этого дел никаких не имели мы с программированием во всех смыслах этого термина.
Но что уж тут поделать? <<Если решили, то будем делать.">> - подумал я и закупил себе мегу, шилд 5100 и пару датчиков. Но вот пришла пора решать что именно мы будем делать. И пока мой комплект ехал ко мне из столицы, все простые проекты разобрали. <<Но да ладно, оно так даже интереснее!>> - решил я и стал думать, что можно собрать из горочки всех, доселе невиданных, мне вещей. Начал писать обычную web-страницу, ну... Не писать конечно же, а собирать по крупицам из интернета, попутно уча C/C++. Но в один прекрасный момент преподаватель сказал: <<Посмотри Arduino Mega Server. Там ты что-то интереснее обычной страницы с показаниями датчиков сделаешь.>> Ну я и посмотрел... На энтузиазме скачал. Попытался запустить. Но ams упирался до последнего.
<<Куда мне писать код для своих датчиков? Как это всё вывести на сервер? Как вообще поменять внешний вид сайта?>> Ох и завлекла же меня вся эта тема...
Нужно сказать спасибо автору. Потому что я уже хоть что-то понимаю в C/C++, HTML,CSS. СПАСИБО АВТОР^^
Но не всё так "лампово"...
Проблемы.
Решил вывести показания температуры на Dash-панель.
На руках имеется AM2320-trema. Вот даже картиночка данного датчика^^

Рассмотрев модуль rtemp примерно понял что и как писать. Ну и набросал модуль по образу и подобию готового.
#include <Wire.h>//I2C
#include <iarduino_AM2320.h> //датчик температуры и влажности
iarduino_AM2320 sensor;
byte const MAX_TEMP_SENSORS = 1;
char objSens[MAX_TEMP_SENSORS][12] = {"tempSTR",};
float current_temp[MAX_TEMP_SENSORS];
float temp_[MAX_TEMP_SENSORS];
void dtempInit(){
sensor.begin();
Serial.print("Module AM2320 \n" );
}
void dtempWorks() {
sensor.read();
temp_[0]=sensor.tem;
temp_[1]=sensor.hum;
Serial.println(temp_[0]);
getTemperature(0);
}
void getDTemperature(byte n) {
current_temp[n] = temp_[n];
if (!isnan(current_temp[n])) {
Serial.print(objSens[n]);
Serial.print(": ");
Serial.println(current_temp[n]);
}
}
#endif
#define DTEMP_FEATURE
.
.
.
#ifdef TEMP_FEATURE
tempInit();
#endif
#ifdef DTEMP_FEATURE
dtempInit();
#endif
.
.
.
#ifdef TEMP_FEATURE
if (cycle5m) {
tempWorks();
}
#endif
#ifdef DTEMP_FEATURE
if (cycle5m) {
dtempWorks();
}
#endif
Помогите пожалуйста понять нулю в программирование, что это за ошибка.
arduino_mega_server.cpp.o: In function `dtempWorks()':
E:\Arduino/rtemp.ino:26: undefined reference to `getTemperature(unsigned char)'
collect2.exe: error: ld returned 1 exit status
Ошибка компиляции.
Надеюсь тапками бить не будете.
><
U.P.D.
Проблема решена.
Исправил
void getDTemperature(byte n)
на
void getTemperature(byte n)