- Posts: 81
- Karma: 5
- Thank you received: 26
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
#include <UIPEthernet.h>
#include <SPI.h>
#include <Base64.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define EIOT_USERNAME F("admin")
#define EIOT_PASSWORD F("test")
#define EIOT_IP_ADDRESS "192.168.1.100"
#define EIOT_PORT 8080
#define EIOT_NODE F("N20S0")
#define REPORT_INTERVAL 60 // in sec
#define ONE_WIRE_BUS 6 // DS18B20 pin
OneWire oneWire(ONE_WIRE_BUS); //DallasTemperature DS18B20(&oneWire);
DallasTemperature sensors(&oneWire);
#define USER_PWD_LEN 40
char unameenc[USER_PWD_LEN];
float temp;
float oldTemp;
byte s = 5;
byte mac[] = { 0x74, 0x69, 0x69, 0x2D, 0x30, 0x31 };
IPAddress ip(192, 168, 1, 170);
IPAddress myDns(192, 168, 1, 1);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
void setup() {
Serial.begin(115200);
lanConnect();
char uname[USER_PWD_LEN];
String str = String(EIOT_USERNAME) + ":" + String(EIOT_PASSWORD);
str.toCharArray(uname, USER_PWD_LEN);
memset(unameenc, 0, sizeof(unameenc));
base64_encode(unameenc, uname, strlen(uname));
oldTemp = -1;
sensors.begin();
}
void loop() {
do {
delay(50);
sensors.requestTemperatures();
temp = sensors.getTempCByIndex(0);
Serial.print(F("Temperature: "));
Serial.println(temp);
} while (temp == 85.0 || temp == (-127.0));
if (temp != oldTemp)
{
sendTeperature(temp);
oldTemp = temp;
}
int cnt = REPORT_INTERVAL;
while (cnt--)
delay(1000);
}
void lanConnect()
{
EthernetClient client;
Serial.print(F("Connecting"));
Ethernet.begin(mac, ip, myDns, gateway, subnet); {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println(F("Lan connected"));
}
void sendTeperature(float temp)
{
EthernetClient client;
while (!client.connect(EIOT_IP_ADDRESS, EIOT_PORT)) {
Serial.println(F("connection failed"));
lanConnect();
}
String url = "";
url += "/Api/EasyIoT/Control/Module/Virtual/" + String(EIOT_NODE) + "/ControlLevel/" + String(temp); // generate EasIoT server node URL
Serial.print(F("POST data to URL: "));
Serial.println(url);
client.print(String(F("POST ")) + url + F(" HTTP/1.1\r\n") +
F("Host: ") + String(EIOT_IP_ADDRESS) + "\r\n" +
F("Connection: close\r\n") +
F("Authorization: Basic ") + unameenc + " \r\n" +
F("Content-Length: 0\r\n") +
"\r\n");
delay(500);
while (client.available()) {
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println();
client.stop();
Serial.println(F("Connection closed"));
}
Please Log in or Create an account to join the conversation.