Hi Arduinovini, I use your code and everything is fine! Thanks!
But, I include de DHT library for "real" values and get a error message:
sensor2.cpp.o: In function setup': /usr/share/arduino/hardware/arduino/cores/arduino/IPAddress.h:33: undefined reference to DHT::DHT(unsigned char, unsigned char, unsigned char)'
//*****************************************************************************************
//* Purpose : Zabbix Sensor Agent - Environmental Monitoring Solution *
//* Author : Evgeny Levkov *
//* Adapted to basics : Schotte Vincent *
//* Credits: *
//-----------------INCLUDES--------------------
#include "DHT1.h"
#include <SPI.h>
#include <Ethernet.h>
#define DHTPIN 7
#define DHTTYPE DHT22
#define MAX_CMD_LENGTH 25
DHT dht(DHTPIN, DHTTYPE);
//--------------------------------------------
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0xE3, 0x5B };
IPAddress ip(10, 0, 1, 3);
IPAddress gateway(10, 0, 1, 1);
IPAddress subnet(255, 255, 255, 0);
EthernetServer server = EthernetServer(10050); //Zabbix Agent port //Zabbix agent port
EthernetClient client;
boolean connected = false;
//--------------------------------------------
String cmd; //FOR ZABBIX COMMAND
//int led = 2; //LED PORT TO BLINK AFTER RECIEVING ZABBIX COMMAND
int counter = 1; // For testing
//--------------------------------------------
void setup()
{
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
//dht.begin();
//pinMode(led, OUTPUT);
//digitalWrite(led, LOW);
}
void loop()
{
//--------------------------------------------
client = server.available();
if (client == true) {
if (!connected) {
client.flush();
connected = true;
}
if (client.available() > 0) {
readTelnetCommand(client.read());
}
}
}
//--------------------------------------------
void readTelnetCommand(char c) {
if(cmd.length() == MAX_CMD_LENGTH) {
cmd = "";
}
cmd += c;
if(c == '\n') {
if(cmd.length() > 2) {
// remove \r and \n from the string
cmd = cmd.substring(0,cmd.length() - 1);
parseCommand();
}
}
}
//--------------------------------------------
void parseCommand() { //Commands recieved by agent on port 10050 parsing
counter = counter + 1;
// AGENT ping
if(cmd.equals("ping")) {
server.println("1");
client.stop();
// connected = false;
// AGENT version
} else if(cmd.equals("version")) {
server.println("ArduinZabbixVini.1.0");
client.stop();
// connected = false;
// AGENT sensor1
} else if(cmd.equals("sensor1")) {
//float h = 68;
float h = dht.readHumidity();
server.println(h );
client.stop();
delay(2000);
// AGENT sensor2
} else if(cmd.equals("sensor2")) {
//float t = 22;
float t = dht.readTemperature();
server.println(t );
client.stop();
delay(2000);
}
// AGENT counter
else if(cmd.equals("counter")) {
//float t = 20;
server.println(counter );
client.stop();
// NOT SUPPORTED
} else {
// server.println("ZBXDZBX_NOTSUPPORTED");
server.println(cmd);
client.stop();
}
cmd = "";
}
Debug message is attached.
Any help?
debug-sensor2.log (6.27 KB)