#include <ESP8266WiFi.h>
#include "DHT.h"
#define DHTPIN 5
#define DHTTYPE DHT11

const char* ssid = "";
const char* password = "";

int WiFiStrength = 0;
double analogValue = 0.0;
double analogVolts = 0.0;
unsigned long timeHolder = 0;
int chartValue = 0;
int temperature;
int humidity;

WiFiServer server(80);
DHT dht(DHTPIN, DHTTYPE, 15);

void setup() {
Serial.begin(115200);
delay(10);

Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
dht.begin();

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi connected");

server.begin();
Serial.println("Server started");

Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}

void loop() {

WiFiStrength = WiFi.RSSI();
analogValue = analogRead(A0);

analogVolts = (analogValue * 3.08) / 1024;
chartValue = 100 - ( (analogValue/1024) * 100 );

temperature = dht.readTemperature();
humidity = dht.readHumidity();

Serial.print("Analog raw: ");
Serial.println(analogValue);
Serial.print("Analog V: ");
Serial.println(analogVolts);
Serial.print("ChartValue: ");
Serial.println(chartValue);
Serial.print("WiFi Strength: ");
Serial.print(WiFiStrength); Serial.println("dBm");
Serial.print("Temperature: ");
Serial.println(temperature);
Serial.print("Humidity: ");
Serial.println(humidity);
delay(1000);

WiFiClient client = server.available();
if (!client) {
return;
}

String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();

client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
client.println("");

client.println("");
client.println(" ");
client.println("<meta http-equiv="refresh" content="5" url="">");
client.println(" <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js\">");
client.println(" <script type="text/javascript">");
client.println(" google.charts.load('current', {'packages':['gauge']});");
client.println(" google.charts.setOnLoadCallback(drawChart);");
client.println(" function drawChart() {");

client.println(" var data = google.visualization.arrayToDataTable([ ");
client.println(" ['Label', 'Value'], ");
client.print(" ['Moisture', ");
client.print(chartValue);
client.println(" ], ");
client.println(" ]); ");

client.println(" var options = {");
client.println(" width: 400, height: 120,");
client.println(" redFrom: 0, redTo: 25,");
client.println(" yellowFrom: 25, yellowTo: 75,");
client.println(" greenFrom: 75, greenTo: 100,");
client.println(" minorTicks: 5");
client.println(" };");

client.println(" var chart = new google.visualization.Gauge(document.getElementById('chart_div'));");

client.println(" chart.draw(data, options);");

client.println(" setInterval(function() {");
client.print(" data.setValue(0, 1, ");
client.print(chartValue);
client.println(" );");
client.println(" chart.draw(data, options);");
client.println(" }, 13000);");

client.println(" }");
client.println(" ");

client.println(" ");
client.println(" ");

client.print("<h1 style="size:12px;">Soil Moisture");

client.println("

");
client.println("");
client.println("
");

client.print("WiFi Signal Strength: ");
client.println(WiFiStrength);
client.println("dBm
");
client.print("Analog Raw: ");
client.println(analogValue);
client.print("
Analog Volts: ");
client.println(analogVolts);
//client.println("
<a href="/REFRESH"">");
client.println("
Moisture(%): ");
client.println(chartValue);
client.println("

");
client.println("<div id="chart_div" style="width: 400px; height: 120px;">");
client.println("
");
client.print("Temperature: ");
client.println(temperature);
client.print("
Humidity: ");
client.println(humidity);
client.println("
");

client.println("");
client.println("");
delay(1);
Serial.println("Client disonnected");
Serial.println("");
}

'RaspBerry PI' 카테고리의 다른 글

chromecast 기능 만들기  (0) 2020.05.29
RaspBerry lcd 디스플레이  (0) 2020.03.30
장치 관련 사항  (0) 2020.02.18
무선 wifi 설정  (0) 2019.06.23
기온 / 습도 체크  (0) 2019.06.16

+ Recent posts