ESP8266 Httpclient get метод работает, но не с mfrc522 - PullRequest
0 голосов
/ 25 июня 2018

У меня проблема с ESP8266, которую я действительно могу понять. В настоящее время я работаю над системой безопасности, в которой мне нужно использовать несколько карт RFID для управления доступом к двери.

Итак, я создал C # web api + базу данных SQL для управления человеком и каждой RFID-картой.

Веб-интерфейс API является базовым, вам просто нужно отправить по адресу «http: /// api / values ​​/», и вы получите «GO» или «Запретить», если вы находитесь в базе данных или нет.

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

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

void setup () {

  Serial.begin(115200);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {

    delay(1000);
    Serial.print("Connecting..");

  }

}

void loop() {

  if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status

    HTTPClient http;  //Declare an object of class HTTPClient

    http.begin("http://jsonplaceholder.typicode.com/users/1");  //Specify request destination
    int httpCode = http.GET();                                                                  //Send the request

    if (httpCode > 0) { //Check the returning code

      String payload = http.getString();   //Get the request response payload
      Serial.println(payload);                     //Print the response payload

    }

    http.end();   //Close connection

  }

  delay(30000);    //Send a request every 30 seconds

}

... Но как только я добавил код RFID ... запрос больше не будет работать ...

код выглядит так

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN 5
#define RST_PIN 4

MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.

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

void setup () {

  Serial.begin(9600);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {

    delay(1000);
    Serial.print("Connecting..");

  }
  SPI.begin();      // Initiate  SPI bus
  mfrc522.PCD_Init();   // Initiate MFRC522

}

void loop() {
// Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }

  if (WiFi.status() == WL_CONNECTED) {
    //Check WiFi connection status

    HTTPClient http;  //Declare an object of class HTTPClient
    //http://<myip>/api/values/<cardCode>
    http.begin("http://<192.168.1.5>/api/values/1231");  //THIS IS A TEST, IT SHOULD WORK WITHOUT ANY PROBLEM!
    int httpCode = http.GET();                                                                  //Send the request

    if (httpCode > 0) { //Check the returning code

      String payload = http.getString();   //Get the request response payload
      Serial.println(payload);                     //Print the response payload

    }

    http.end();   //Close connection

  }

  delay(30000);    //Send a request every 30 seconds

}

Проблема в том, что мой httpCode возвращает -1 ... а теперь ответ ...

Что я не могу понять, это почему ... ESP работает ... но без библиотеки MFRC522?

Заранее спасибо!

...