Difference between revisions of "Thingspeak: Suhu dan Humidity"
Jump to navigation
Jump to search
Onnowpurbo (talk | contribs) (Created page with " /* WriteMultipleFields Description: Writes values to fields 1,2,3 and 4 in a single ThingSpeak update every 20 seconds. Hardware: Arduino Ethernet !!...") |
Onnowpurbo (talk | contribs) |
||
Line 1: | Line 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
#include "ThingSpeak.h" | #include "ThingSpeak.h" | ||
#include <Ethernet.h> | #include <Ethernet.h> | ||
#include "secrets.h" | #include "secrets.h" | ||
+ | #include "DHT.h" | ||
+ | #define DHTPIN 2 // what digital pin we're connected to | ||
+ | // Uncomment whatever type you're using! | ||
+ | #define DHTTYPE DHT11 // DHT 11 | ||
+ | // define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 | ||
+ | DHT dht(DHTPIN, DHTTYPE); | ||
byte mac[] = SECRET_MAC; | byte mac[] = SECRET_MAC; | ||
− | |||
// Set the static IP address to use if the DHCP fails to assign | // Set the static IP address to use if the DHCP fails to assign | ||
IPAddress ip(192, 168, 0, 177); | IPAddress ip(192, 168, 0, 177); | ||
IPAddress myDns(192, 168, 0, 1); | IPAddress myDns(192, 168, 0, 1); | ||
− | |||
EthernetClient client; | EthernetClient client; | ||
unsigned long myChannelNumber = SECRET_CH_ID; | unsigned long myChannelNumber = SECRET_CH_ID; | ||
const char * myWriteAPIKey = SECRET_WRITE_APIKEY; | const char * myWriteAPIKey = SECRET_WRITE_APIKEY; | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
void setup() { | void setup() { | ||
Line 71: | Line 43: | ||
} | } | ||
// give the Ethernet shield a second to initialize: | // give the Ethernet shield a second to initialize: | ||
− | delay(1000); | + | delay(1000); |
− | + | ||
+ | dht.begin(); | ||
ThingSpeak.begin(client); // Initialize ThingSpeak | ThingSpeak.begin(client); // Initialize ThingSpeak | ||
} | } | ||
void loop() { | void loop() { | ||
+ | |||
+ | float h = dht.readHumidity(); | ||
+ | // Reading temperature or humidity takes about 250 milliseconds! | ||
+ | float t = dht.readTemperature(); | ||
+ | // Read temperature as Celsius (the default) | ||
+ | if (isnan(h) || isnan(t) ) { | ||
+ | Serial.println("Failed to read from DHT sensor!"); | ||
+ | return; | ||
+ | } | ||
// set the fields with the values | // set the fields with the values | ||
− | ThingSpeak.setField(1, | + | ThingSpeak.setField(1, t); |
− | ThingSpeak.setField(2, | + | ThingSpeak.setField(2, h); |
− | |||
− | |||
− | |||
// write to the ThingSpeak channel | // write to the ThingSpeak channel | ||
Line 93: | Line 72: | ||
Serial.println("Problem updating channel. HTTP error code " + String(x)); | Serial.println("Problem updating channel. HTTP error code " + String(x)); | ||
} | } | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
delay(20000); // Wait 20 seconds to update the channel again | delay(20000); // Wait 20 seconds to update the channel again | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 18:24, 21 September 2019
#include "ThingSpeak.h" #include <Ethernet.h> #include "secrets.h" #include "DHT.h" #define DHTPIN 2 // what digital pin we're connected to // Uncomment whatever type you're using! #define DHTTYPE DHT11 // DHT 11 // define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 DHT dht(DHTPIN, DHTTYPE); byte mac[] = SECRET_MAC; // Set the static IP address to use if the DHCP fails to assign IPAddress ip(192, 168, 0, 177); IPAddress myDns(192, 168, 0, 1); EthernetClient client; unsigned long myChannelNumber = SECRET_CH_ID; const char * myWriteAPIKey = SECRET_WRITE_APIKEY; void setup() { Ethernet.init(10); // Most Arduino Ethernet hardware Serial.begin(115200); //Initialize serial // start the Ethernet connection: Serial.println("Initialize Ethernet with DHCP:"); if (Ethernet.begin(mac) == 0) { Serial.println("Failed to configure Ethernet using DHCP"); // Check for Ethernet hardware present if (Ethernet.hardwareStatus() == EthernetNoHardware) { Serial.println("Ethernet shield was not found. Sorry, can't run without hardware. :("); while (true) { delay(1); // do nothing, no point running without Ethernet hardware } } if (Ethernet.linkStatus() == LinkOFF) { Serial.println("Ethernet cable is not connected."); } // try to congifure using IP address instead of DHCP: Ethernet.begin(mac, ip, myDns); } else { Serial.print(" DHCP assigned IP "); Serial.println(Ethernet.localIP()); } // give the Ethernet shield a second to initialize: delay(1000); dht.begin(); ThingSpeak.begin(client); // Initialize ThingSpeak } void loop() { float h = dht.readHumidity(); // Reading temperature or humidity takes about 250 milliseconds! float t = dht.readTemperature(); // Read temperature as Celsius (the default) if (isnan(h) || isnan(t) ) { Serial.println("Failed to read from DHT sensor!"); return; } // set the fields with the values ThingSpeak.setField(1, t); ThingSpeak.setField(2, h); // write to the ThingSpeak channel int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey); if(x == 200){ Serial.println("Channel update successful."); } else{ Serial.println("Problem updating channel. HTTP error code " + String(x)); } delay(20000); // Wait 20 seconds to update the channel again }