[c] uts_iot

Viewer

  1. #include <ESP8266WiFi.h>
  2. #include <WiFiClient.h>
  3.  
  4. const char* ssid = "FARIS";
  5. const char* password = "banjarsari1406";
  6. const char* host = "192.168.1.21"; // Alamat URL lengkap ke skrip PHP
  7.  
  8. int kursi1 = D5; // GPIO14
  9. int kursi2 = D6; // GPIO12
  10. int kursi3 = D7; // GPIO13
  11. WiFiServer server(80);
  12.  
  13. int count_kursi1 = 0;
  14. int count_kursi2 = 0;
  15. int count_kursi3 = 0;
  16.  
  17. void setup() {
  18.   Serial.begin(115200);
  19.   delay(10);
  20.  
  21.   pinMode(kursi1, OUTPUT);
  22.   pinMode(kursi2, OUTPUT);
  23.   pinMode(kursi3, OUTPUT);
  24.   
  25.   digitalWrite(kursi1, LOW);
  26.   digitalWrite(kursi2, LOW);
  27.   digitalWrite(kursi3, LOW);
  28.  
  29.   // Connect to WiFi network
  30.   Serial.println();
  31.   Serial.println();
  32.   Serial.print("Connecting to ");
  33.   Serial.println(ssid);
  34.  
  35.   WiFi.begin(ssid, password);
  36.  
  37.   while (WiFi.status() != WL_CONNECTED) {
  38.     delay(500);
  39.     Serial.print(".");
  40.   }
  41.   Serial.println("");
  42.   Serial.println("WiFi connected");
  43.  
  44.   // Start the server
  45.   server.begin();
  46.   Serial.println("Server started");
  47.  
  48.   // Print the IP address
  49.   Serial.print("Use this URL to connect: ");
  50.   Serial.print("http://");
  51.   Serial.print(WiFi.localIP());
  52.   Serial.println("/");
  53. }
  54.  
  55. void loop() {
  56.   // Check if a client has connected
  57.   WiFiClient client = server.available();
  58.   
  59.   if (!client) {
  60.     return;
  61.   }
  62.  
  63.   // Wait until the client sends some data
  64.   Serial.println("new client");
  65.   while (!client.available()) {
  66.     delay(1);
  67.   }
  68.  
  69.   // Read the first line of the request
  70.   String request = client.readStringUntil('\r');
  71.   // /LED=ON
  72.   Serial.println(request);
  73.   client.flush();
  74.  
  75.   // Match the request
  76.   // request = GET /LED=OFF HTTP/1.1
  77.   if (request.indexOf("/KURSI1=ON") != -1) {
  78.     digitalWrite(kursi1, HIGH);
  79.     count_kursi1++;
  80.     sendToServer(1, 1, client); // Kirim data ke server PHP
  81.     // Update jumlah_nyala setiap kali tombol ON ditekan
  82.     client.println("<p>Kursi 1 ON - Total Hidup: " + String(count_kursi1) + "</p>");
  83.   }
  84.   if (request.indexOf("/KURSI1=OFF") != -1) {
  85.     digitalWrite(kursi1, LOW);
  86.     sendToServer(1, 0, client); // Kirim data ke server PHP
  87.   }
  88.   if (request.indexOf("/KURSI2=ON") != -1) {
  89.     digitalWrite(kursi2, HIGH);
  90.     count_kursi2++;
  91.     sendToServer(2, 1, client); // Kirim data ke server PHP
  92.     // Update jumlah_nyala setiap kali tombol ON ditekan
  93.     client.println("<p>Kursi 2 ON - Total Hidup: " + String(count_kursi2) + "</p>");
  94.   }
  95.   if (request.indexOf("/KURSI2=OFF") != -1) {
  96.     digitalWrite(kursi2, LOW);
  97.     sendToServer(2, 0, client); // Kirim data ke server PHP
  98.   }
  99.   if (request.indexOf("/KURSI3=ON") != -1) {
  100.     digitalWrite(kursi3, HIGH);
  101.     count_kursi3++;
  102.     sendToServer(3, 1, client); // Kirim data ke server PHP
  103.     // Update jumlah_nyala setiap kali tombol ON ditekan
  104.     client.println("<p>Kursi 3 ON - Total Hidup: " + String(count_kursi3) + "</p>");
  105.   }
  106.   if (request.indexOf("/KURSI3=OFF") != -1) {
  107.     digitalWrite(kursi3, LOW);
  108.     sendToServer(3, 0, client); // Kirim data ke server PHP
  109.   }
  110.  
  111.   // Set ledPin according to the request
  112.   //digitalWrite(ledPin, value);
  113.  
  114.   // Return the response
  115.   client.println("HTTP/1.1 200 OK");
  116.   client.println("Content-Type: text/html");
  117.   client.println(""); // do not forget this one
  118.   client.println("<!DOCTYPE HTML>");
  119.   client.println("<html>");
  120.  
  121.   // Add CSS style for buttons
  122.   client.println("<style>");
  123.   client.println("button {");
  124.   client.println("  display: inline-block;");
  125.   client.println("  padding: 10px 20px;");
  126.   client.println("  font-size: 16px;");
  127.   client.println("  cursor: pointer;");
  128.   client.println("  text-align: center;");
  129.   client.println("  text-decoration: none;");
  130.   client.println("  outline: none;");
  131.   client.println("  color: #fff;");
  132.   client.println("  background-color: #4CAF50;");
  133.   client.println("  border: none;");
  134.   client.println("  border-radius: 15px;");
  135.   client.println("}");
  136.  
  137.   client.println("</style>");
  138.   
  139.   client.println("<h1>Control Kursi LED</h1>");
  140.   // Add buttons with style
  141.   client.print("<p>Kursi 1 ON - Total Hidup: ");
  142.   client.print(count_kursi1);
  143.   client.println("</p>");
  144.   client.println("<a href=\"/KURSI1=ON\"><button style=\"background-color: #4CAF50;\">Kursi 1 ON</button></a>");
  145.   client.println("<a href=\"/KURSI1=OFF\"><button style=\"background-color: #f44336;\">Kursi 1 OFF</button></a><br />");
  146.   client.print("<p>Kursi 2 ON - Total Hidup: ");
  147.   client.print(count_kursi2);
  148.   client.println("</p>");
  149.   client.println("<a href=\"/KURSI2=ON\"><button style=\"background-color: #4CAF50;\">Kursi 2 ON</button></a>");
  150.   client.println("<a href=\"/KURSI2=OFF\"><button style=\"background-color: #f44336;\">Kursi 2 OFF</button></a><br />");
  151.   client.print("<p>Kursi 3 ON - Total Hidup: ");
  152.   client.print(count_kursi3);
  153.   client.println("</p>");
  154.   client.println("<a href=\"/KURSI3=ON\"><button style=\"background-color: #4CAF50;\">Kursi 3 ON</button></a>");
  155.   client.println("<a href=\"/KURSI3=OFF\"><button style=\"background-color: #f44336;\">Kursi 3 OFF</button></a><br />");
  156.   client.println("</html>");
  157.   delay(1);
  158.   Serial.println("Client disconnected");
  159.   Serial.println("");
  160. }
  161.  
  162. void sendToServer(int kursi, int status, WiFiClient client) {
  163.   if (!client.connect(host, 80)) {
  164.     Serial.println("Koneksi ke server gagal");
  165.     return;
  166.   }
  167.  
  168.   Serial.println("Koneksi ke server berhasil");
  169.   
  170.   // Buat URL untuk dikirim ke server PHP
  171.   String url = "/iot/uts.php?kursi=" + String(kursi) + "&status=" + String(status);
  172.   
  173.   // Kirim HTTP request ke server PHP
  174.   client.print(String("GET ") + url + " HTTP/1.1\r\n" +
  175.                "Host: " + host + "\r\n" +
  176.                "Connection: close\r\n\r\n");
  177.   delay(10);
  178.  
  179.   // Baca respons dari server
  180.   while (client.available()) {
  181.     String line = client.readStringUntil('\r');
  182.     Serial.print(line);
  183.   }
  184.  
  185.   client.stop();
  186. }
  187.  

Editor

You can edit this paste and save as new:


File Description
  • uts_iot
  • Paste Code
  • 28 Apr-2024
  • 5.77 Kb
You can Share it: