Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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[] = "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");
- }
Advertisement
Add Comment
Please, Sign In to add comment