Upload files to "/"
This commit is contained in:
parent
adb6af75b0
commit
97a5d1ecff
|
@ -0,0 +1,182 @@
|
|||
#include <ESP8266WebServer.h>
|
||||
#include <ESP8266HTTPClient.h>
|
||||
#include <SPI.h>
|
||||
#include <MFRC522.h>
|
||||
#include <Wire.h>
|
||||
#include <LiquidCrystal_I2C.h>
|
||||
|
||||
#define SS_PIN D2 // SDA / SS is connected to pinout D2
|
||||
#define RST_PIN D1 // RST is connected to pinout D1
|
||||
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
|
||||
|
||||
#define ON_Board_LED 2
|
||||
#define BUZZER_PIN D8 // Define the pin for the buzzer
|
||||
|
||||
const char* ssid = ":)";
|
||||
const char* password = "hanadulset";
|
||||
|
||||
ESP8266WebServer server(80); // Server on port 80
|
||||
|
||||
int readsuccess;
|
||||
byte readcard[4];
|
||||
char str[32] = "";
|
||||
String StrUID;
|
||||
String receivedData = "";
|
||||
String newBalance = "";
|
||||
|
||||
// Set the LCD address to 0x27 for a 16 chars and 2 line display
|
||||
LiquidCrystal_I2C lcd(0x27, 16, 2);
|
||||
|
||||
void setup() {
|
||||
Wire.begin(D3, D4);
|
||||
Serial.begin(115200); // Initialize serial communications with the PC
|
||||
SPI.begin(); // Init SPI bus
|
||||
mfrc522.PCD_Init(); // Init MFRC522 card
|
||||
|
||||
delay(500);
|
||||
|
||||
// Initialize the LCD
|
||||
lcd.begin(16, 2);
|
||||
lcd.clear();
|
||||
lcd.backlight();
|
||||
|
||||
WiFi.begin(ssid, password); // Connect to your WiFi router
|
||||
Serial.println("");
|
||||
|
||||
pinMode(ON_Board_LED, OUTPUT);
|
||||
pinMode(BUZZER_PIN, OUTPUT); // Set buzzer pin as output
|
||||
digitalWrite(ON_Board_LED, HIGH); // Turn off Led On Board
|
||||
digitalWrite(BUZZER_PIN, LOW); // Ensure the buzzer is off initially
|
||||
|
||||
Serial.print("Connecting");
|
||||
while (WiFi.status() != WL_CONNECTED) {
|
||||
Serial.print(".");
|
||||
digitalWrite(ON_Board_LED, LOW);
|
||||
delay(250);
|
||||
digitalWrite(ON_Board_LED, HIGH);
|
||||
delay(250);
|
||||
}
|
||||
digitalWrite(ON_Board_LED, HIGH); // Turn off the On Board LED when it is connected to the wifi router.
|
||||
Serial.println("");
|
||||
Serial.print("Successfully connected to : ");
|
||||
Serial.println(ssid);
|
||||
Serial.print("IP address: ");
|
||||
Serial.println(WiFi.localIP());
|
||||
|
||||
// Setup server routes
|
||||
server.on("/", HTTP_GET, handleRoot);
|
||||
server.begin();
|
||||
|
||||
Serial.println("Please tag a card or keychain to see the UID !");
|
||||
Serial.println("");
|
||||
}
|
||||
|
||||
|
||||
void loop() {
|
||||
// Handle client requests
|
||||
server.handleClient();
|
||||
|
||||
// Read RFID card
|
||||
readsuccess = getid();
|
||||
|
||||
if (readsuccess) {
|
||||
digitalWrite(ON_Board_LED, LOW);
|
||||
digitalWrite(BUZZER_PIN, HIGH) ; //DO note 523 Hz
|
||||
delay (250); // Turn on the buzzer
|
||||
digitalWrite(BUZZER_PIN, LOW) ;
|
||||
|
||||
HTTPClient http; // Declare object of class HTTPClient
|
||||
WiFiClient client;
|
||||
|
||||
String UIDresultSend = StrUID;
|
||||
String postData = "UIDresult=" + UIDresultSend;
|
||||
|
||||
http.begin(client, "http://bersyukur.cloud/IOTKK/getUID.php");
|
||||
http.addHeader("Content-Type", "application/x-www-form-urlencoded"); // Specify content-type header
|
||||
|
||||
int httpCode = http.POST(postData); // Send the request
|
||||
String payload = http.getString(); // Get the response payload
|
||||
|
||||
Serial.println(UIDresultSend);
|
||||
Serial.println(httpCode); // Print HTTP return code
|
||||
Serial.println(payload); // Print request response payload
|
||||
|
||||
receivedData = payload; // Store received data
|
||||
|
||||
http.end(); // Close connection
|
||||
|
||||
// Make a GET request to receive new balance data
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
http.begin(client, "http://bersyukur.cloud/IOTKK/sendNewBalance.php");
|
||||
int httpCode = http.GET();
|
||||
Serial.println("HTTP GET code: " + String(httpCode)); // Print HTTP return code
|
||||
if (httpCode > 0) {
|
||||
if (httpCode == HTTP_CODE_OK) {
|
||||
newBalance = http.getString();
|
||||
String balance = newBalance;
|
||||
Serial.println("New balance received: " + newBalance);
|
||||
|
||||
// Display the new balance on the LCD with scrolling
|
||||
scrollText(balance);
|
||||
} else {
|
||||
Serial.println("Failed to get new balance, response code: " + String(httpCode));
|
||||
}
|
||||
} else {
|
||||
Serial.printf("[HTTP] GET request failed, error: %s\n", http.errorToString(httpCode).c_str());
|
||||
}
|
||||
http.end();
|
||||
} else {
|
||||
Serial.println("WiFi not connected");
|
||||
}
|
||||
|
||||
delay(250);
|
||||
digitalWrite(BUZZER_PIN, LOW); // Turn off the buzzer
|
||||
digitalWrite(ON_Board_LED, HIGH);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
int getid() {
|
||||
if (!mfrc522.PICC_IsNewCardPresent()) {
|
||||
return 0;
|
||||
}
|
||||
if (!mfrc522.PICC_ReadCardSerial()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
Serial.print("THE UID OF THE SCANNED CARD IS : ");
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
readcard[i] = mfrc522.uid.uidByte[i]; // Storing the UID of the tag in readcard
|
||||
array_to_string(readcard, 4, str);
|
||||
StrUID = str;
|
||||
}
|
||||
mfrc522.PICC_HaltA();
|
||||
return 1;
|
||||
}
|
||||
|
||||
void array_to_string(byte array[], unsigned int len, char buffer[]) {
|
||||
for (unsigned int i = 0; i < len; i++) {
|
||||
byte nib1 = (array[i] >> 4) & 0x0F;
|
||||
byte nib2 = (array[i] >> 0) & 0x0F;
|
||||
buffer[i * 2 + 0] = nib1 < 0xA ? '0' + nib1 : 'A' + nib1 - 0xA;
|
||||
buffer[i * 2 + 1] = nib2 < 0xA ? '0' + nib2 : 'A' + nib2 - 0xA;
|
||||
}
|
||||
buffer[len * 2] = '\0';
|
||||
}
|
||||
|
||||
void handleRoot() {
|
||||
server.send(200, "text/plain", receivedData);
|
||||
}
|
||||
|
||||
// Function to scroll text on the LCD from right to left
|
||||
void scrollText(String message) {
|
||||
message = " " + message + " "; // Add spaces to the start and end for scrolling effect
|
||||
for (int i = 0; i < message.length() - 16; i++) {
|
||||
lcd.clear();
|
||||
lcd.setCursor(0, 0);
|
||||
lcd.print(message.substring(i, i + 16)); // Print a substring of the message
|
||||
delay(200); // Delay to control the scroll speed
|
||||
lcd.clear();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue