forked from iot-playground/Arduino
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
added DS18B20_temperature_sensor ESP8266 Arduino IDE example
- Loading branch information
1 parent
20b4c2f
commit 90bb877
Showing
6 changed files
with
134 additions
and
5 deletions.
There are no files selected for viewing
124 changes: 124 additions & 0 deletions
124
ESP8266ArduinoIDE/DS18B20_temperature_sensor/DS18B20_temperature_sensor.ino
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,124 @@ | ||
/* | ||
Created by Igor Jarc | ||
See http://iot-playground.com for details | ||
Please use community fourum on website do not contact author directly | ||
Code based on https://github.com/DennisSc/easyIoT-ESPduino/blob/master/sketches/ds18b20.ino | ||
External libraries: | ||
- https://github.com/adamvr/arduino-base64 | ||
- https://github.com/milesburton/Arduino-Temperature-Control-Library | ||
This program is free software; you can redistribute it and/or | ||
modify it under the terms of the GNU General Public License | ||
version 2 as published by the Free Software Foundation. | ||
*/ | ||
#include <ESP8266WiFi.h> | ||
#include <Base64.h> | ||
#include <OneWire.h> | ||
#include <DallasTemperature.h> | ||
|
||
//AP definitions | ||
#define AP_SSID "your ssid" | ||
#define AP_PASSWORD "ap password" | ||
|
||
// EasyIoT server definitions | ||
#define EIOT_USERNAME "admin" | ||
#define EIOT_PASSWORD "test" | ||
#define EIOT_IP_ADDRESS "192.168.1.5" | ||
#define EIOT_PORT 80 | ||
#define EIOT_NODE "N13S0" | ||
|
||
#define REPORT_INTERVAL 60 // in sec | ||
|
||
|
||
#define ONE_WIRE_BUS 2 // DS18B20 pin | ||
OneWire oneWire(ONE_WIRE_BUS); | ||
DallasTemperature DS18B20(&oneWire); | ||
|
||
|
||
#define USER_PWD_LEN 40 | ||
char unameenc[USER_PWD_LEN]; | ||
float oldTemp; | ||
|
||
|
||
void setup() { | ||
Serial.begin(115200); | ||
|
||
wifiConnect(); | ||
|
||
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; | ||
} | ||
|
||
void loop() { | ||
float temp; | ||
|
||
do { | ||
DS18B20.requestTemperatures(); | ||
temp = DS18B20.getTempCByIndex(0); | ||
Serial.print("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 wifiConnect() | ||
{ | ||
Serial.print("Connecting to AP"); | ||
WiFi.begin(AP_SSID, AP_PASSWORD); | ||
while (WiFi.status() != WL_CONNECTED) { | ||
delay(1000); | ||
Serial.print("."); | ||
} | ||
|
||
Serial.println(""); | ||
Serial.println("WiFi connected"); | ||
} | ||
|
||
void sendTeperature(float temp) | ||
{ | ||
WiFiClient client; | ||
|
||
while(!client.connect(EIOT_IP_ADDRESS, EIOT_PORT)) { | ||
Serial.println("connection failed"); | ||
wifiConnect(); | ||
} | ||
|
||
String url = ""; | ||
url += "/Api/EasyIoT/Control/Module/Virtual/"+ String(EIOT_NODE) + "/ControlLevel/"+String(temp); // generate EasIoT server node URL | ||
|
||
Serial.print("POST data to URL: "); | ||
Serial.println(url); | ||
|
||
client.print(String("POST ") + url + " HTTP/1.1\r\n" + | ||
"Host: " + String(EIOT_IP_ADDRESS) + "\r\n" + | ||
"Connection: close\r\n" + | ||
"Authorization: Basic " + unameenc + " \r\n" + | ||
"Content-Length: 0\r\n" + | ||
"\r\n"); | ||
|
||
delay(100); | ||
while(client.available()){ | ||
String line = client.readStringUntil('\r'); | ||
Serial.print(line); | ||
} | ||
|
||
Serial.println(); | ||
Serial.println("Connection closed"); | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters