Pada kesempatan yang berbahagia kali ini saya akan menjelaskan mengenai bagaimana caranya agar me-monitoring 3 buah sensor menggunakan nodemcu esp8266, yang mana nodemcu ini hanya memiliki satu buah adc dengan range 10 bit. maka dari itu saya menggunakan sebuah IC multiplexer 4051 untuk kendali switchnya. sensor yang dipakai yaitu sensor suhu LM35, sensor shake dan sensor pulse. alat ini diaplikasi untuk monitoring suatu keadaan dimana ada suhu, getaran dan benda yang masuk sehingga sensor pulse akan mendeteksi. alat ini menggunakan webserver sehngga komunikasinya menggunakan wifi router sebagai set point. untuk lebih jelasnya berikut adalah skema dan programnya. untuk tutorial cara masukkan library bisa lihat di datasheetnya.
a. NodeMCU ESP8266 12E WIFI
b. Router WIFI
c. Sensor Suhu LM35
d. Sensor Shake / Getaran
e. Sensor Pulse High/Low
f. Multiplexer IC 4051
g. Program Arduino IDE
#include <ESP8266WiFi.h>
#define LED0 D0
#define LED1 D1
#define LED2 D2
const int AnalogIn = A0;
float suhu = 0;
float bpm = 0;
float resp = 0;
const char* ssid = "EVERCOSS WIFI";
const char* password = "123456789";
//int ledPin = D0;
WiFiServer server(80);
void setup() {
pinMode(LED0 , OUTPUT);
pinMode(LED1 , OUTPUT);
pinMode(LED2 , OUTPUT);
Serial.begin(115200);
delay(10);
// pinMode(ledPin, OUTPUT);
// digitalWrite(ledPin, LOW);
// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}
void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}
// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}
// Read the first line of the request
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Match the request
digitalWrite(LED0, LOW);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
suhu = analogRead(AnalogIn);
suhu = suhu * (3.3 / 1023.0);
suhu = suhu * 100.0;
Serial.print("suhu = ");
Serial.println(suhu);
delay(500);
digitalWrite(LED0, HIGH);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
bpm = analogRead(AnalogIn);
Serial.print("bpm = ");
Serial.println(bpm);
delay(500);
digitalWrite(LED0, LOW);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
resp = analogRead(AnalogIn);
Serial.print("Respirasi = ");
Serial.println(resp);
delay(500);
// Set ledPin according to the request
//digitalWrite(ledPin, value);
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Refresh: 1");
client.println(""); // do not forget this one
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<center>");
client.println("<h1>");
client.println("Monitoring Kondisi Tubuh");
client.println("</h1>");
client.println("<h3>");
client.println("Suhu = ");
client.println(suhu);
client.println(" C");
client.println("<br>");
client.println("Bpm = ");
client.println(bpm);
client.println("<br>");
client.println("Respirasi = ");
client.println(resp);
client.println("<br>");
client.println("</h3>");
client.println("</center>");
client.println("</html>");
delay(1);
Serial.println("Client disonnected");
Serial.println("");
}
h. Gambar Hasilnya
i. VIDEO HASILNYA
No comments:
Post a Comment