Skip to content

Commit a8be5b1

Browse files
authored
Merge pull request #23 from ElectronicCats/wifiserver
Add Wifi Web Server example
2 parents f28695c + 38896d3 commit a8be5b1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+6650
-0
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,7 @@ hardware/BomberCat-backups/
2929
.DS_Store
3030

3131
hardware/#auto_saved_files#
32+
33+
.vscode/
34+
firmware/WiFiWebServer/Magspoof/main
35+
firmware/WiFiWebServer/build/

firmware/WiFiWebServer/CloneNFCID.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
unsigned char STATUSOK[] = {0x90, 0x00}, Cmd[256], CmdSize;
2+
3+
uint8_t uidcf[20] = {
4+
0x20, 0x02, 0x05, 0x01, /* CORE_SET_CONFIG_CMD */
5+
0x00, 0x02, 0x00, 0x01 /* TOTAL_DURATION */
6+
};
7+
8+
uint8_t uidlen = 0;
9+
10+
uint8_t data[] = {0x90, 0x00};
11+
uint8_t requestCmd[] = {0x00, 0xB0, 0x00, 0x00, 0x0F};
12+
bool emulateNFCFlag = false;
13+
int attempts = 0;
14+
15+
const int EMULATE_NFCID_DELAY_MS = 1000;
16+
unsigned long emulateNFCIDTimer = 0;

firmware/WiFiWebServer/CloneNFCID.ino

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
void printData(uint8_t* buff, uint8_t lenbuffer, uint8_t cmd) {
2+
char tmp[1];
3+
if (cmd == 1)
4+
Serial.print("\nCommand: ");
5+
else if (cmd == 2)
6+
Serial.print("\nReader command: ");
7+
else if (cmd == 3)
8+
Serial.print("\nBomberCat answer: ");
9+
else
10+
Serial.print("\nCard answer: ");
11+
12+
for (uint8_t u = 0; u < lenbuffer; u++) {
13+
sprintf(tmp, "0x%.2X", buff[u]);
14+
Serial.print(tmp);
15+
Serial.print(" ");
16+
}
17+
}
18+
19+
void emulateNFCID() {
20+
if (nfc.CardModeReceive(Cmd, &CmdSize) == 0) { // Receive command from reader
21+
printData(Cmd, CmdSize, 1);
22+
printData(data, sizeof(data), 3);
23+
Serial.println("\nAttempts = " + String(attempts));
24+
attempts++;
25+
26+
nfc.CardModeSend(data, sizeof(data)); // Emulate the dummy data and the NFCID
27+
28+
// If Cmd is equal to requestCmd, then the reader is asking for the NFCID
29+
if (memcmp(Cmd, requestCmd, sizeof(requestCmd)) == 0) {
30+
Serial.println("Reader is asking for the NFCID");
31+
Serial.println("NFCID: " + getHexRepresentation(uidcf, sizeof(uidcf)));
32+
}
33+
}
34+
}

firmware/WiFiWebServer/Debug.cpp

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
#include "Debug.h"
2+
3+
void Debug::setEnabled(bool enabled) {
4+
this->enabled = enabled;
5+
}
6+
7+
bool Debug::isEnabled() {
8+
return this->enabled;
9+
}
10+
11+
void Debug::waitForSerialConnection() {
12+
if (!this->enabled) {
13+
return;
14+
}
15+
while (!Serial) { // Wait for the serial connection to be established
16+
delay(1);
17+
}
18+
}
19+
20+
void Debug::write(uint8_t message) {
21+
if (this->enabled) {
22+
Serial.write(message);
23+
}
24+
}
25+
26+
void Debug::write(const uint8_t *buffer, size_t size) {
27+
if (this->enabled) {
28+
Serial.write(buffer, size);
29+
}
30+
}
31+
32+
void Debug::print(String message) {
33+
if (this->enabled) {
34+
Serial.print(message);
35+
}
36+
}
37+
38+
void Debug::println(String message) {
39+
if (this->enabled) {
40+
Serial.println(message);
41+
}
42+
}
43+
44+
void Debug::print(int message) {
45+
if (this->enabled) {
46+
Serial.print(message);
47+
}
48+
}
49+
50+
void Debug::println(int message) {
51+
if (this->enabled) {
52+
Serial.println(message);
53+
}
54+
}
55+
56+
void Debug::print(long message) {
57+
if (this->enabled) {
58+
Serial.print(message);
59+
}
60+
}
61+
62+
void Debug::println(long message) {
63+
if (this->enabled) {
64+
Serial.println(message);
65+
}
66+
}
67+
68+
void Debug::print(double message) {
69+
if (this->enabled) {
70+
Serial.print(message);
71+
}
72+
}
73+
74+
void Debug::println(double message) {
75+
if (this->enabled) {
76+
Serial.println(message);
77+
}
78+
}
79+
80+
void Debug::print(float message) {
81+
if (this->enabled) {
82+
Serial.print(message);
83+
}
84+
}
85+
86+
void Debug::println(float message) {
87+
if (this->enabled) {
88+
Serial.println(message);
89+
}
90+
}
91+
92+
void Debug::print(char message) {
93+
if (this->enabled) {
94+
Serial.print(message);
95+
}
96+
}
97+
98+
void Debug::println(char message) {
99+
if (this->enabled) {
100+
Serial.println(message);
101+
}
102+
}
103+
104+
void Debug::print(bool message) {
105+
if (this->enabled) {
106+
Serial.print(message ? "true" : "false");
107+
}
108+
}
109+
110+
void Debug::println(bool message) {
111+
if (this->enabled) {
112+
Serial.println(message ? "true" : "false");
113+
}
114+
}
115+
116+
void Debug::print(const char message[]) {
117+
if (this->enabled) {
118+
Serial.print(message);
119+
}
120+
}
121+
122+
void Debug::println(const char message[]) {
123+
if (this->enabled) {
124+
Serial.println(message);
125+
}
126+
}
127+
128+
void Debug::print(arduino::IPAddress message) {
129+
if (this->enabled) {
130+
Serial.print(message);
131+
}
132+
}
133+
134+
void Debug::println(arduino::IPAddress message) {
135+
if (this->enabled) {
136+
Serial.println(message);
137+
}
138+
}
139+
140+
void Debug::print(String message, String message2) {
141+
if (this->enabled) {
142+
Serial.print(message);
143+
Serial.print(message2);
144+
}
145+
}
146+
147+
void Debug::println(String message, String message2) {
148+
if (this->enabled) {
149+
Serial.print(message);
150+
Serial.println(message2);
151+
}
152+
}
153+
154+
void Debug::print(String message, String message2, String message3) {
155+
if (this->enabled) {
156+
Serial.print(message);
157+
Serial.print(message2);
158+
Serial.print(message3);
159+
}
160+
}
161+
162+
void Debug::println(String message, String message2, String message3) {
163+
if (this->enabled) {
164+
Serial.print(message);
165+
Serial.print(message2);
166+
Serial.println(message3);
167+
}
168+
}
169+
170+
void Debug::print(String message, String message2, String message3, String message4) {
171+
if (this->enabled) {
172+
Serial.print(message);
173+
Serial.print(message2);
174+
Serial.print(message3);
175+
Serial.print(message4);
176+
}
177+
}
178+
179+
void Debug::println(String message, String message2, String message3, String message4) {
180+
if (this->enabled) {
181+
Serial.print(message);
182+
Serial.print(message2);
183+
Serial.print(message3);
184+
Serial.println(message4);
185+
}
186+
}

firmware/WiFiWebServer/Debug.h

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#include "Arduino.h"
2+
3+
class Debug {
4+
private:
5+
bool enabled;
6+
7+
public:
8+
void setEnabled(bool enabled);
9+
bool isEnabled();
10+
void waitForSerialConnection();
11+
void write(uint8_t message);
12+
void write(const uint8_t *buffer, size_t size);
13+
void print(String message);
14+
void println(String message);
15+
void print(int message);
16+
void println(int message);
17+
void print(long message);
18+
void println(long message);
19+
void print(double message);
20+
void println(double message);
21+
void print(float message);
22+
void println(float message);
23+
void print(char message);
24+
void println(char message);
25+
void print(bool message);
26+
void println(bool message);
27+
void print(const char message[]);
28+
void println(const char message[]);
29+
void print(arduino::IPAddress message);
30+
void println(arduino::IPAddress message);
31+
void print(String message, String message2);
32+
void println(String message, String message2);
33+
void print(String message, String message2, String message3);
34+
void println(String message, String message2, String message3);
35+
void print(String message, String message2, String message3, String message4);
36+
void println(String message, String message2, String message3, String message4);
37+
};

firmware/WiFiWebServer/DetectTags.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#include "Electroniccats_PN7150.h"
2+
#define PN7150_IRQ (11)
3+
#define PN7150_VEN (13)
4+
#define PN7150_ADDR (0x28)
5+
#define DETECT_TAGS_DELAY_MS (200)
6+
#define READ_ATTEMPTS (2)
7+
8+
Electroniccats_PN7150 nfc(PN7150_IRQ, PN7150_VEN, PN7150_ADDR); // creates a global NFC device interface object, attached to pins 7 (IRQ) and 8 (VEN) and using the default I2C address 0x28
9+
RfIntf_t RfInterface; // Intarface to save data for multiple tags
10+
11+
uint8_t mode = 1; // modes: 1 = Reader/ Writer, 2 = Emulation
12+
13+
String pollMode, nfcID, sensRes, selRes, bitRate, afi, dsfid;
14+
bool runDetectTags = false;
15+
bool clearNFCValuesFlag = false;
16+
uint8_t nfcExecutionCounter = 0;
17+
bool nfcDiscoverySuccess = false;

0 commit comments

Comments
 (0)