#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.print("WiFi Signal Strength: "); | "); 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 |