Fórum


Classifique este tópicoPéssimoRuimMedianoBomÓtimo
Autor
Mensagem
3
thiagocampos156

Level 0
0 xp

Registrado em:
14/11/2022





Mensagens:
1
3
thiagocampos156

Responder com citações
Mensagem Seg Nov 14, 2022 11:52 pm
NodeMCU + Google Sheets
Pessoal, estou desenvolvendo um projeto de relógio de ponto para a faculdade e tive alguns problemas no código.

Para este projeto estou utilizando um ESP8266 com WiFi, um LCD e um sensor RFID RC522, a ideia principal é, passar o cartão RFID no leitor e o mesmo enviar um registro para uma planilha do google. O projeto funciona em partes. Quando um usuário passa a primeira vez o registro é enviado para a planilha, porém, ao tentar passar novamente o registro não é feito, ou seja, está funcionando apenas uma vez o registro. A leitura do cartão funciona mais de uma vez, o leitor reconhece, aparece a mensagem no LCD, porém, não faz o registro depois da primeira vez. Eu sou bem iniciante na programação ainda então pode ser um erro grotesco kkkkkk. 


Abaixo estarei deixando o código, vou apenas censurar alguns tokens específicos para manter o projeto seguro.

*Obs: deixei apenas dois usuários no código, porém, terão mais pessoas registradas.

/////

#include <SPI.h>
#include <Wire.h>
#include <MFRC522.h>
#include <LiquidCrystal_I2C.h>
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>

///////////////

const char* ssid = "***************";
const char* password = "************";

const char* host = "script.google.com";
const int httpsPort = 443;

WiFiClientSecure client;

String GAS_ID = "****************************************"; 

///////////////

#define RST_PIN D3
#define SS_PIN D4

MFRC522 rfid(SS_PIN, RST_PIN);
MFRC522::MIFARE_Key key;
byte readCard[4];
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);
String Thiago ="2271AB59";
String Wesli ="32AAA21";
String tagID ="";

void setup() {
  Serial.begin(115200);
  SPI.begin(); 
  rfid.PCD_Init();
  lcd.begin(16,2);
  pinMode(D8,OUTPUT);

  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("TESLA ENGENHARIA");
  lcd.setCursor(0,1);
  lcd.print("BEM-VINDO(A)!");

  WiFi.begin(ssid, password);
  Serial.println("");

  Serial.print("Connecting");
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
  }

  client.setInsecure();

  Serial.print("connecting to ");
  Serial.println(host);
  if (!client.connect(host, httpsPort)) {
  Serial.println("connection failed");
  return;}
}

void loop() {
  
  while (getID())
  {
  lcd.clear();

  if (tagID == Thiago)
  { 

    digitalWrite(D8,HIGH);
    delay(800);
    digitalWrite(D8,LOW);
    delay(400);

    lcd.setCursor(0,0);
    lcd.print(" BEM-VINDO: ");
    lcd.setCursor(0,1);
    lcd.print(" THIAGO C!");
    delay(1500);

    String url = "/macros/s/" + GAS_ID + "/exec?nome=Thiago%20Campos";
    client.print(String("GET ") + url + " HTTP/1.1\r\n" +
         "Host: " + host + "\r\n" +
         "User-Agent: BuildFailureDetectorESP8266\r\n" +
         "Connection: close\r\n\r\n");

    String line = client.readStringUntil('\n');
    while (client.connected()) {
      String line = client.readStringUntil('\n');
      if (line == "\r") {
      Serial.println("headers received");}
      break;}

  }

 if (tagID == Wesli)
  { 

    digitalWrite(D8,HIGH);
    delay(800);
    digitalWrite(D8,LOW);
    delay(400);

    lcd.setCursor(0,0);
    lcd.print(" BEM-VINDO: ");
    lcd.setCursor(0,1);
    lcd.print(" THIAGO C!");
    delay(1500);

    String url = "/macros/s/" + GAS_ID + "/exec?nome=Wesli%20Rodrigues";
    client.print(String("GET ") + url + " HTTP/1.1\r\n" +
         "Host: " + host + "\r\n" +
         "User-Agent: BuildFailureDetectorESP8266\r\n" +
         "Connection: close\r\n\r\n");

    String line = client.readStringUntil('\n');
    while (client.connected()) {
      String line = client.readStringUntil('\n');
      if (line == "\r") {
      Serial.println("headers received");}
      break;}

  }
  
  else
  {
    delay(500);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("TAG INVALIDA");
    lcd.setCursor(0,1);
    lcd.print("TENTE NOVAMENTE");
    delay(1500);

  }

    lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("TESLA ENGENHARIA");
  lcd.setCursor(0,1);
  lcd.print("BEM-VINDO(A)!");
      }

    }

  boolean getID(){
    if ( !rfid.PICC_IsNewCardPresent()){
    return false;
    }
    if( !rfid.PICC_ReadCardSerial()){
    return false;
    }
    tagID ="";
    for ( uint8_t i = 0; i < 4; i++)
    {
      tagID.concat(String(rfid.uid.uidByte[i], HEX));
  }
    tagID.toUpperCase();
    rfid.PICC_HaltA();
    return true;
  }
Mostrar mensagens desde a última:




Ir para:  
Todos os horários são GMT - 3 HorasVocê não tem permissão para escrever novas mensagens
v não tem permissão para responder às mensagens
Você não tem permissão para editar suas mensagens
Você não tem permissão para deletar suas mensagens
Você não tem permissão para classificar tópicos
Você não tem permissão para classificar mensagens
Você não tem permissão para votar em enquetes
Anexar downloads : Proibido
Fazer Download de Arquivos: Proibido
Powered by phpBB © 2001 phpBB Group