Let me start by saying.. I'm new to Arduino, and am learning tons of things every day. I've been working on this for several hours and am totally lost with what I need to change. If anyone can give me ANY insight it would help me a ton.
Hardware -
ESP8266 nodeMCU, DHT22.
#include <dht.h>
#define CAYENNE_PRINT Serial
#include <CayenneMQTTESP8266.h>
#include <DHT.h>
#define DHTPIN D5 // what pin the DHT is connected to
#define DHTTYPE DHT22 // DHT 22 (AM2302)
const int TEMPERATURE_INTERVAL = 30;
unsigned long last_temperature_sent = 0;
const int HUMIDITY_INTERVAL = 30;
unsigned long last_humidity_sent = 0;
String display_temp;
String display_humid;
DHT dht(DHTPIN, DHTTYPE);
// Your network name and password.
char ssid[] = “XXXX”;
char wifiPassword[] = “XXXX”;
// Cayenne authentication info. This should be obtained from the Cayenne Dashboard.
char username[] = “XXXXX”;
char password[] = “XXXXX”;
char clientID[] = “XXXXX”;
void getSendTemperature() {
if (millis() – last_temperature_sent >= TEMPERATURE_INTERVAL * 1000UL || last_temperature_sent == 0) {
float temperature = dht.readTemperature(true);
if (isnan(temperature)) {
Serial.println(“Failed to read from DHT sensor!”);
return;
}
display_temp = temperature;
Serial.print(“Temperature: “);
Serial.print(temperature);
Serial.println(” °F”);
Cayenne.virtualWrite(8, temperature);
last_temperature_sent = millis();
}
}
void getSendHumid() {
if (millis() – last_humidity_sent >= HUMIDITY_INTERVAL * 1000UL || last_humidity_sent == 0) {
float humidity = dht.readHumidity();
if (isnan(humidity)) {
Serial.println(“Failed to read from DHT sensor!”);
return;
}
display_humid = humidity;
Serial.print(“Humidity: “);
Serial.print(humidity);
Serial.println(” %”);
Cayenne.virtualWrite(9, humidity);
last_humidity_sent = millis();
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(230400);
dht.begin();
Cayenne.begin(username, password, clientID, ssid, wifiPassword);
}
void loop() {
// put your main code here, to run repeatedly:
getSendTemperature();
getSendHumid();
Cayenne.loop();
}
//Default function for processing actuator commands from the Cayenne Dashboard.
//You can also use functions for specific channels, e.g CAYENNE_IN(1) for channel 1 commands.
CAYENNE_IN_DEFAULT()
{
CAYENNE_LOG(“CAYENNE_IN_DEFAULT(%u) – %s, %s”, request.channel, getValue.getId(), getValue.asString());
//Process message here. If there is an error set an error message using getValue.setError(), e.g getValue.setError(“Error message”);
}
#define DHTPIN D5 // what pin the DHT is connected to
#define DHTTYPE DHT22 // DHT 22 (AM2302)
const int TEMPERATURE_INTERVAL = 30;
unsigned long last_temperature_sent = 0;
const int HUMIDITY_INTERVAL = 30;
unsigned long last_humidity_sent = 0;
String display_temp;
String display_humid;
DHT dht(DHTPIN, DHTTYPE);
// Your network name and password.
char ssid[] = “Your WiFi SSID”;
char wifiPassword[] = “Your WiFi PWD”;
// Cayenne authentication info. This should be obtained from the Cayenne Dashboard.
char username[] = “Your Cayenne MQTT Username”;
char password[] = “Your Cayenne MQTT Password”;
char clientID[] = “Your Cayenne MQTT Client ID”;
void getSendTemperature() {
if (millis() – last_temperature_sent >= TEMPERATURE_INTERVAL * 1000UL || last_temperature_sent == 0) {
float temperature = dht.readTemperature(true);
if (isnan(temperature)) {
Serial.println(“Failed to read from DHT sensor!”);
return;
}
display_temp = temperature;
Serial.print(“Temperature: “);
Serial.print(temperature);
Serial.println(” °F”);
Cayenne.virtualWrite(8, temperature);
last_temperature_sent = millis();
}
}
void getSendHumid() {
if (millis() – last_humidity_sent >= HUMIDITY_INTERVAL * 1000UL || last_humidity_sent == 0) {
float humidity = dht.readHumidity();
if (isnan(humidity)) {
Serial.println(“Failed to read from DHT sensor!”);
return;
}
display_humid = humidity;
Serial.print(“Humidity: “);
Serial.print(humidity);
Serial.println(” %”);
Cayenne.virtualWrite(9, humidity);
last_humidity_sent = millis();
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(230400);
dht.begin();
Cayenne.begin(username, password, clientID, ssid, wifiPassword);
}
void loop() {
// put your main code here, to run repeatedly:
getSendTemperature();
getSendHumid();
Cayenne.loop();
}
//Default function for processing actuator commands from the Cayenne Dashboard.
//You can also use functions for specific channels, e.g CAYENNE_IN(1) for channel 1 commands.
CAYENNE_IN_DEFAULT()
{
CAYENNE_LOG(“CAYENNE_IN_DEFAULT(%u) – %s, %s”, request.channel, getValue.getId(), getValue.asString());
//Process message here. If there is an error set an error message using getValue.setError(), e.g getValue.setError(“Error message”);
}
The error message that I'm receiving during compiling is this -
Arduino: 1.8.9 (Windows 7), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
DHT22:89:108: error: macro "CAYENNE_IN_DEFAULT" passed 1 arguments, but takes just 0
CAYENNE_LOG(“CAYENNE_IN_DEFAULT(%u) – %s, %s”, request.channel, getValue.getId(), getValue.asString());
^
DHT22:168:108: error: macro "CAYENNE_IN_DEFAULT" passed 1 arguments, but takes just 0
CAYENNE_LOG(“CAYENNE_IN_DEFAULT(%u) – %s, %s”, request.channel, getValue.getId(), getValue.asString());
^
exit status 1
macro "CAYENNE_IN_DEFAULT" passed 1 arguments, but takes just 0
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
I'm truly lost on this and have tried changing several things to see if it would work but no. Any help would be very much appreciated.
Thank you,
J