#include <Wire.h>
#include <WiFi.h>
#include <HTTPClient.h>
//#include <Adafruit_PN532.h>
// Configuração do Wi-Fi
const char* ssid = "Seu wifi";
const char* password = "Senha da sua rede";
// Configuração do sensor PN532 via I2C
//#define SDA_PIN 21
//#define SCL_PIN 22
//Adafruit_PN532 nfc(SDA_PIN, SCL_PIN);
//Botão para simular a tag
#define botao 21
#define ledVerm 13
#define ledVerde 12
// Pinos do sensor HC-SR04
#define TRIGGER_PIN 14
#define ECHO_PIN 15
// Função para medir a distância com o HC-SR04
long medirDistancia() {
digitalWrite(TRIGGER_PIN, LOW); // Garantir que o Trigger esteja desligado
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH); // Enviar pulso para o Trigger
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW); // Desligar o Trigger
long duracao = pulseIn(ECHO_PIN, HIGH); // Medir a duração do pulso do Echo
// Calcular a distância em centímetros (velocidade do som = 343m/s)
long distancia = duracao * 0.0344 / 2; // Dividir por 2 porque o som vai e volta
return distancia; // Retorna a distância medida
}
// URL do servidor
const char* serverUrl = "http://172.22.68.121:8501/cadastrar"; // Ajuste conforme necessário
void setup() {
pinMode(botao, INPUT);
pinMode(ledVerm, OUTPUT);
pinMode(ledVerde, OUTPUT);
// Configuração do HC-SR04
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
Serial.begin(115200);
WiFi.begin(ssid, password);
if (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Conectando ao WiFi...");
}else{
Serial.println("WiFi Conectado");
}
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
// Inicializa PN532
/*
nfc.begin();
if (!nfc.getFirmwareVersion()) {
Serial.println("PN532 não detectado");
while (1);
}
nfc.SAMConfig();
*/
}
void loop() {
digitalWrite(ledVerm, HIGH);
if (digitalRead(botao) == HIGH) { // Simulação de leitura da tag
String tag = "83593810"; // Simula uma tag específica
Serial.println("Tag detectada: " + tag);
digitalWrite(ledVerm, LOW);
digitalWrite(ledVerde, HIGH);
delay(2000);
digitalWrite(ledVerm, HIGH);
digitalWrite(ledVerde, LOW);
// Enviar para o servidor
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(serverUrl);
http.addHeader("Content-Type", "application/json");
String postData;
if (tag == "83593810") {
postData = "{\"tag\":\"" + tag + "\", \"descricao\":\"Maquina de pressao arterial\", \"localizacao\":\"Leito 1\"}";
} else {
postData = "{\"tag\":\"" + tag + "\", \"descricao\":\"Ativo desconhecido\", \"localizacao\":\"Setor nao informado\"}";
}
Serial.println(postData);
int httpResponseCode = http.POST(postData);
Serial.print("Resposta do servidor: ");
Serial.println(httpResponseCode);
http.end();
}
delay(5000); // Aguarde antes de nova leitura
// Medir a distância com o HC-SR04
long distancia = medirDistancia();
Serial.print("Distância: ");
Serial.print(distancia);
Serial.println(" cm");
// Enviar a distância para o servidor MQTT
String distanciaPayload = "{\"distancia\":\"" + String(distancia) + "\"}";
//client.publish("hospital/distancia", distanciaPayload.c_str());
//delay(1000); // Atraso entre as medições do HC-SR04
}
/*
uint8_t uid[7];
uint8_t uidLength;
if (nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength)) {
String tag = "";
for (uint8_t i = 0; i < uidLength; i++) {
tag += String(uid[i], HEX);
}
Serial.println("Tag detectada: " + tag);
digitalWrite(ledVerm, OFF);
digitalWrite(ledVerde, ON);
delay(2000);
digitalWrite(ledVerm, ON);
digitalWrite(ledVerde, OFF);
// Enviar para o servidor
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(serverUrl);
http.addHeader("Content-Type", "application/json");
String postData;
if (tag == "83593810") {
postData = "{\"tag\":\"" + tag + "\", \"descricao\":\"Maquina de pressao arterial\", \"localizacao\":\"Leito 1\"}";
} else if (tag == "e3f1c5d") {
postData = "{\"tag\":\"" + tag + "\", \"descricao\":\"Maquina de Anestesia\", \"localizacao\":\"Leito 2\"}";
} else {
postData = "{\"tag\":\"" + tag + "\", \"descricao\":\"Ativo desconhecido\", \"localizacao\":\"Setor nao informado\"}";
}
Serial.println(postData);
int httpResponseCode = http.POST(postData);
Serial.print("Resposta do servidor: ");
Serial.println(httpResponseCode);
http.end();
}
delay(5000); // Aguarde antes de nova leitura
}
*/
}