mirror of
https://gitlab.com/fabinfra/fabhardware/fabreader.git
synced 2025-03-13 07:01:44 +01:00
Start
This commit is contained in:
parent
ff8f51c173
commit
750ae399e0
File diff suppressed because it is too large
Load Diff
34
src/FabReader_v2/Config.cpp
Normal file
34
src/FabReader_v2/Config.cpp
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#include "Config.h"
|
||||||
|
#include <EEPROM.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
Config::Config()
|
||||||
|
{
|
||||||
|
EEPROM.begin(512);
|
||||||
|
}
|
||||||
|
|
||||||
|
Config::Config(int ID, char broker[], char username[], char password[])
|
||||||
|
{
|
||||||
|
this->Data.ID = ID;
|
||||||
|
strcpy(this->Data.MQTT_Broker, broker);
|
||||||
|
strcpy(this->Data.MQTT_Username, username);
|
||||||
|
strcpy(this->Data.MQTT_Password, password);
|
||||||
|
|
||||||
|
EEPROM.begin(512);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Config::Load()
|
||||||
|
{
|
||||||
|
EEPROM.get(0, this->Data);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Config::Save()
|
||||||
|
{
|
||||||
|
EEPROM.put(0, this->Data);
|
||||||
|
EEPROM.commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Config::IsEmpty()
|
||||||
|
{
|
||||||
|
return this->Data.ID == 0;
|
||||||
|
}
|
28
src/FabReader_v2/Config.h
Normal file
28
src/FabReader_v2/Config.h
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#ifndef CONFIG_H
|
||||||
|
#define CONFIG_H
|
||||||
|
|
||||||
|
struct Config_Data
|
||||||
|
{
|
||||||
|
int ID = 0;
|
||||||
|
|
||||||
|
char MQTT_Broker[256];
|
||||||
|
char MQTT_Username[64];
|
||||||
|
char MQTT_Password[64];
|
||||||
|
};
|
||||||
|
|
||||||
|
class Config {
|
||||||
|
public:
|
||||||
|
const char WLAN_SSID[32] = "FabReader";
|
||||||
|
const char WLAN_Password[64] = "FabReader";
|
||||||
|
|
||||||
|
Config_Data Data;
|
||||||
|
|
||||||
|
Config();
|
||||||
|
Config(int ID, char broker[], char username[], char password[]);
|
||||||
|
|
||||||
|
void Load();
|
||||||
|
void Save();
|
||||||
|
|
||||||
|
bool IsEmpty();
|
||||||
|
};
|
||||||
|
#endif
|
0
src/FabReader_v2/Display.cpp
Normal file
0
src/FabReader_v2/Display.cpp
Normal file
21
src/FabReader_v2/Display.h
Normal file
21
src/FabReader_v2/Display.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#ifndef DISPLAY_H
|
||||||
|
#define DISPLAY_H
|
||||||
|
enum State
|
||||||
|
{
|
||||||
|
CONNECT_WIFI,
|
||||||
|
CONNECT_MQTT,
|
||||||
|
FREE,
|
||||||
|
INUSE,
|
||||||
|
AUTHORIZE
|
||||||
|
};
|
||||||
|
|
||||||
|
String Messages [] =
|
||||||
|
{
|
||||||
|
"Connecting to WIFI ...",
|
||||||
|
"Connecting to MQTT ...",
|
||||||
|
"Free",
|
||||||
|
"In Use",
|
||||||
|
"Authorize ..."
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
37
src/FabReader_v2/FabReader_v2.ino
Normal file
37
src/FabReader_v2/FabReader_v2.ino
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#include "Config.h"
|
||||||
|
#include "Pins.h"
|
||||||
|
|
||||||
|
#include <ESP8266WiFi.h>
|
||||||
|
#include <ESP8266WebServer.h>
|
||||||
|
|
||||||
|
#include <WiFiClient.h>
|
||||||
|
#include <PubSubClient.h>
|
||||||
|
#include <SPI.h>
|
||||||
|
#include <MFRC522.h>
|
||||||
|
#include <SSD1306Wire.h>
|
||||||
|
#include <DES.h>
|
||||||
|
|
||||||
|
Config config;
|
||||||
|
WiFiClient wifiClient;
|
||||||
|
PubSubClient MQTTclient;
|
||||||
|
MFRC522 rfid(PIN_RFID_SPI_SS, PIN_RFID_RST);
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
Serial.begin(115200);
|
||||||
|
|
||||||
|
pinMode(PIN_BUZZER, OUTPUT);
|
||||||
|
pinMode(PIN_BUTTON, INPUT);
|
||||||
|
pinMode(PIN_ETH_SPI_SS, OUTPUT);
|
||||||
|
digitalWrite(PIN_ETH_SPI_SS, HIGH);
|
||||||
|
|
||||||
|
rfid.PCD_Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial())
|
||||||
|
{
|
||||||
|
Serial.println(rfid.uid.sak);
|
||||||
|
}
|
||||||
|
}
|
36
src/FabReader_v2/NFC.cpp
Normal file
36
src/FabReader_v2/NFC.cpp
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#include "NFC.h"
|
||||||
|
#include <SPI.h>
|
||||||
|
|
||||||
|
NFC::NFC(int pin_ss, int pin_rst, PubSubClient mqtt)
|
||||||
|
{
|
||||||
|
SPI.begin();
|
||||||
|
|
||||||
|
this->rfid = rfid(pin_ss, pin_rst);
|
||||||
|
this->rfid.PCD_Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool NFC::hasNewCard()
|
||||||
|
{
|
||||||
|
return this->rfid.PICC_IsNewCardPresent() && this->rfid.PICC_ReadCardSerial()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void NFC::hasActiveOTA()
|
||||||
|
{
|
||||||
|
return this->activOTA;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NFC::startOTA()
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void NFC::continueOTA()
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
void NFC::cancelOTA()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
24
src/FabReader_v2/NFC.h
Normal file
24
src/FabReader_v2/NFC.h
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#ifndef NFC_H
|
||||||
|
#define NFC_H
|
||||||
|
|
||||||
|
#include <PubSubClient.h>
|
||||||
|
#include <MFRC522.h>
|
||||||
|
|
||||||
|
class NFC_H
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
MFRC522 rfid;
|
||||||
|
PubSubClient* mqtt;
|
||||||
|
bool activOTA = false;
|
||||||
|
|
||||||
|
public:
|
||||||
|
NFC(int pin_ss, int pin_rst, PubSubClient* mqtt);
|
||||||
|
bool hasNewCard();
|
||||||
|
void hasActiveOTA();
|
||||||
|
|
||||||
|
void startOTA();
|
||||||
|
void continueOTA();
|
||||||
|
void cancelOTA();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
18
src/FabReader_v2/Pins.h
Normal file
18
src/FabReader_v2/Pins.h
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#ifndef PINS_H
|
||||||
|
#define PINS_H
|
||||||
|
|
||||||
|
// Pins for ESP8266
|
||||||
|
#define PIN_SDA 5
|
||||||
|
#define PIN_SCL 4
|
||||||
|
|
||||||
|
#define PIN_SPI_MOSI 13
|
||||||
|
#define PIN_SPI_MISO 12
|
||||||
|
#define PIN_SPI_SCK 14
|
||||||
|
|
||||||
|
#define PIN_RFID_RST 0
|
||||||
|
#define PIN_RFID_SPI_SS 2
|
||||||
|
#define PIN_ETH_SPI_SS 15
|
||||||
|
|
||||||
|
#define PIN_BUZZER 16
|
||||||
|
#define PIN_BUTTON A0
|
||||||
|
#endif
|
60
src/FabReader_v2/Website.h
Normal file
60
src/FabReader_v2/Website.h
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
#ifndef WEBSITE_H
|
||||||
|
#define WEBSITE_H
|
||||||
|
const struct Website
|
||||||
|
{
|
||||||
|
const char INDEX[] =
|
||||||
|
"<!DOCTYPE HTML>"
|
||||||
|
"<html>"
|
||||||
|
"<head>"
|
||||||
|
"<meta content=\"text/html; charset=ISO-8859-1\""
|
||||||
|
" http-equiv=\"content-type\">"
|
||||||
|
"<meta name = \"viewport\" content = \"width = device-width, initial-scale = 1.0, maximum-scale = 1.0, user-scalable=0\">"
|
||||||
|
"<title>Verbindungsdaten RFID-Reader</title>"
|
||||||
|
"<style>"
|
||||||
|
"\"body { background-color: #808080; font-family: Arial, Helvetica, Sans-Serif; Color: #000000; }\""
|
||||||
|
"</style>"
|
||||||
|
"</head>"
|
||||||
|
"<body>"
|
||||||
|
"<h1>Verbindungsdaten RFID-Reader</h1>"
|
||||||
|
"<FORM action=\"/\" method=\"post\">"
|
||||||
|
"<P>"
|
||||||
|
"<label>ssid: </label><input maxlength=\"30\" name=\"ssid\"><br>"
|
||||||
|
"<label>Passwort: </label><input maxlength=\"30\" name=\"Passwort\"><br>"
|
||||||
|
"<label>BrokerIP: </label><input maxlength=\"15\" name=\"BrokerIP\"><br>"
|
||||||
|
"<label>ReaderID: </label><input maxlength=\"3\" name=\"ReaderID\"><br>"
|
||||||
|
"Connection<BR>"
|
||||||
|
"<INPUT type=\"radio\" name=\"ConType\" value=\"1\">Ehternet<BR>"
|
||||||
|
"<INPUT type=\"radio\" name=\"ConType\" value=\"0\">WiFi<BR>"
|
||||||
|
"RFID-Type<BR>"
|
||||||
|
"<INPUT type=\"radio\" name=\"RFIDType\" value=\"0\">Mifare Classic<BR>"
|
||||||
|
"<INPUT type=\"radio\" name=\"RFIDType\" value=\"1\">Mifare Classic + Timestamp<BR>"
|
||||||
|
"<INPUT type=\"radio\" name=\"RFIDType\" value=\"2\">Mifare DESFire<BR>"
|
||||||
|
"<INPUT type=\"radio\" name=\"RFIDType\" value=\"3\">Mifar Ultralight C<BR>"
|
||||||
|
"Data Package Format<BR>"
|
||||||
|
"<INPUT type=\"radio\" name=\"DatFormat\" value=\"0\">JSON<BR>"
|
||||||
|
"<INPUT type=\"radio\" name=\"DatFormat\" value=\"1\">Text <BR>"
|
||||||
|
"<INPUT type=\"submit\" value=\"Send\"> <INPUT type=\"reset\">"
|
||||||
|
"</P>"
|
||||||
|
"</FORM>"
|
||||||
|
"</body>"
|
||||||
|
"</html>";
|
||||||
|
|
||||||
|
const char SAVED[] =
|
||||||
|
"<!DOCTYPE HTML>"
|
||||||
|
"<html>"
|
||||||
|
"<head>"
|
||||||
|
"<meta content=\"text/html; charset=ISO-8859-1\""
|
||||||
|
" http-equiv=\"content-type\">"
|
||||||
|
"<meta name = \"viewport\" content = \"width = device-width, initial-scale = 1.0, maximum-scale = 1.0, user-scalable=0\">"
|
||||||
|
"<title>Verbindungsdaten RFID-Reader</title>"
|
||||||
|
"<style>"
|
||||||
|
"\"body { background-color: #808080; font-family: Arial, Helvetica, Sans-Serif; Color: #000000; }\""
|
||||||
|
"</style>"
|
||||||
|
"</head>"
|
||||||
|
"<body>"
|
||||||
|
"<h1>Saved</h1>"
|
||||||
|
"<h2><a href=\"/\">go back</a></h2>"
|
||||||
|
"</body>"
|
||||||
|
"</html>";
|
||||||
|
};
|
||||||
|
#endif
|
Loading…
x
Reference in New Issue
Block a user