У меня проблема с 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?
Заранее спасибо!