
Tipp
Natürlich kannst du auch eine Powerbank verwenden.
Benötigte Bibliothek

User_Setup.h
Die Bibliothek TFT_eSPI muss an den jeweiligen Bildschirmtreiber angepasst werden.
Info
Im Verzeichnis /Arduino/libraries/TFT_eSPI (zu finden im aktuellen Benutzerverzeichnis) muss die Datei User_Setup.h angepasst werden.
Achtung
Nach einem Update der Bibliothek gehen die Änderungen verloren.
Leider lässt sich aus der Art des USB-Anschlusses nicht immer auf den verwendeten Treiber schließen. Am Einfachsten probierst du beide Treiber aus.
Leider lässt sich aus der Art des USB-Anschlusses nicht immer auf den verwendeten Treiber schließen. Am Einfachsten probierst du beide Treiber aus.
Modul mit ST7789 Treiber
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
// Treiber TFT #define ST7789_DRIVER #define TFT_WIDTH 240 #define TFT_HEIGHT 320 #define TFT_BACKLIGHT_ON HIGH // SPI-Pins #define TFT_MOSI 13 #define TFT_SCLK 14 #define TFT_CS 15 #define TFT_DC 2 #define TFT_RST -1 #define TFT_BL 21 // Farbreihenfolge statt RGB BGR #define TFT_RGB_ORDER TFT_BGR // Farben sind invertiert: Schwarz = weiß #define TFT_INVERSION_ON // #define TFT_INVERSION_OFF #define SPI_FREQUENCY 55000000 #define SPI_READ_FREQUENCY 20000000 // Touch #define TOUCH_IRQ 36 #define TOUCH_MOSI 32 #define TOUCH_MISO 39 #define TOUCH_CLK 25 #define TOUCH_CS 33 #define SPI_TOUCH_FREQUENCY 2500000 // Schriftarten // Font 2-4: Buchstaben, Zahlen und Satzzeichen, keine Umlaute // Font 6-8: Zahlen -. #define LOAD_FONT2 #define LOAD_FONT4 #define LOAD_FONT6 #define LOAD_FONT7 #define LOAD_FONT8 #define SMOOTH_FONT #define LOAD_GFXFF |
Modul mit ILI9341 Treiber
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
// Treiber TFT #define ILI9341_2_DRIVER #define TFT_WIDTH 240 #define TFT_HEIGHT 320 #define TFT_BACKLIGHT_ON HIGH // Farbreihenfolge statt RGB BGR // #define TFT_RGB_ORDER TFT_BGR // Farben sind invertiert: Schwarz = weiß #define TFT_INVERSION_ON // #define TFT_INVERSION_OFF // SPI-Pins #define TFT_MOSI 13 #define TFT_SCLK 14 #define TFT_CS 15 #define TFT_DC 2 #define TFT_RST -1 #define TFT_BL 21 #define SPI_FREQUENCY 55000000 #define SPI_READ_FREQUENCY 20000000 // Touch #define TOUCH_IRQ 36 #define TOUCH_MOSI 32 #define TOUCH_MISO 39 #define TOUCH_CLK 25 #define TOUCH_CS 33 #define SPI_TOUCH_FREQUENCY 2500000 // Schriftarten // Font 2-4: Buchstaben, Zahlen und Satzzeichen, keine Umlaute // Font 6-8: Zahlen -. #define LOAD_FONT2 #define LOAD_FONT4 #define LOAD_FONT6 #define LOAD_FONT7 #define LOAD_FONT8 #define SMOOTH_FONT #define LOAD_GFXFF |
Das Programm
Alle Netzwerke scannen
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
#include "WiFi.h" #include "TFT_eSPI.h" #include "XPT2046_Touchscreen_TT.h" TFT_eSPI tft = TFT_eSPI(); #define SCHWARZ 0x0000 #define WEISS 0xFFFF #define BLAU 0x001F #define ROT 0xF800 #define GRUEN 0x07E0 int Anzahl; void setup() { // tft starten, Farben invertieren tft.init(); tft.invertDisplay(0); // Bildschirm drehen tft.setRotation(1); // Hintergrundbeleuchtung einschalten pinMode(TFT_BL, OUTPUT); digitalWrite(TFT_BL, HIGH); } void loop() { // interne Schrift tft.setTextFont(4); tft.fillScreen(SCHWARZ); tft.setTextColor(WEISS); tft.setCursor(10, 60); tft.print("WiFi scannen ..."); // WiFi-Netzwerke suchen int Anzahl = WiFi.scanNetworks(); // kein WiFi-Netz gefunden if (Anzahl == 0) { // Programm beenden while (1); } else { for (int i = 0; i < Anzahl; ++i) { tft.fillScreen(SCHWARZ); tft.setCursor(10, 10); tft.print(WiFi.SSID(i)); tft.setCursor(10, 80); tft.print(String(WiFi.RSSI(i))); // map -> Wert auf die Breite des TFT übertragen int BalkenGroesse = map(100 - WiFi.RSSI(i) * -1, 0, 100, 0, tft.width()); switch (WiFi.RSSI(i)) { case -60 ... -30: tft.fillRect(1, 140, BalkenGroesse, 40, GRUEN); break; case -70 ... -61: tft.fillRect(1, 140, BalkenGroesse, 40, BLAU); break; case -100 ... -71: tft.fillRect(1, 140, BalkenGroesse, 40, ROT); break; } delay(5000); } } } |
Ausgewählte WiFi-Netze scannen
Du musst in Zeile 14 den zu suchenden Router eintragen. Das Programm sucht auch nach einem Teilstring.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
#include "WiFi.h" #include "TFT_eSPI.h" #include "XPT2046_Touchscreen_TT.h" TFT_eSPI tft = TFT_eSPI(); #define SCHWARZ 0x0000 #define WEISS 0xFFFF #define BLAU 0x001F #define ROT 0xF800 #define GRUEN 0x07E0 // Name des zu suchenden Router String Router = "Repeater"; int Anzahl; void setup() { // tft starten, Farben invertieren tft.init(); tft.invertDisplay(0); // Bildschirm drehen tft.setRotation(1); // Hintergrundbeleuchtung einschalten pinMode(TFT_BL, OUTPUT); digitalWrite(TFT_BL, HIGH); } void loop() { // interne Schrift tft.setTextFont(4); tft.fillScreen(SCHWARZ); tft.setTextColor(WEISS); tft.setCursor(10, 60); tft.print("WiFi scannen ..."); // WiFi-Netzwerke suchen int Anzahl = WiFi.scanNetworks(); // kein WiFi-Netz gefunden if (Anzahl == 0) { // Programm beenden while (1); } else { for (int i = 0; i < Anzahl; ++i) { // Suche Router if(WiFi.SSID(i).indexOf(Router) == 0) { tft.fillScreen(SCHWARZ); tft.setCursor(10, 10); tft.print(WiFi.SSID(i)); tft.setCursor(10, 80); tft.print(String(WiFi.RSSI(i))); // map -> Wert auf die Breite des TFT übertragen int BalkenGroesse = map(100 - WiFi.RSSI(i) * -1, 0, 100, 0, tft.width()); switch (WiFi.RSSI(i)) { case -60 ... -30: tft.fillRect(1, 140, BalkenGroesse, 40, GRUEN); break; case -70 ... -61: tft.fillRect(1, 140, BalkenGroesse, 40, BLAU); break; case -100 ... -71: tft.fillRect(1, 140, BalkenGroesse, 40, ROT); break; } } delay(5000); } } } |
Die zu suchenden Router als Array eintragen:
Wenn du das Array vergrößern willst, musst du die Zeile 52 ergänzen.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
#include "WiFi.h" #include "TFT_eSPI.h" #include "XPT2046_Touchscreen_TT.h" TFT_eSPI tft = TFT_eSPI(); #define SCHWARZ 0x0000 #define WEISS 0xFFFF #define BLAU 0x001F #define ROT 0xF800 #define GRUEN 0x07E0 // Namen der zu suchenden Router String Router[] = {"Repeater", "Gast", "FRITZ!"}; void setup() { // tft starten, Farben invertieren tft.init(); tft.invertDisplay(0); // Bildschirm drehen tft.setRotation(1); // Hintergrundbeleuchtung einschalten pinMode(TFT_BL, OUTPUT); digitalWrite(TFT_BL, HIGH); } void loop() { // interne Schrift tft.setTextFont(4); tft.fillScreen(SCHWARZ); tft.setTextColor(WEISS); tft.setCursor(10, 60); tft.print("WiFi scannen ..."); // WiFi-Netzwerke suchen int Anzahl = WiFi.scanNetworks(); // kein WiFi-Netz gefunden if (Anzahl == 0) { // Programm beenden while (1); } else { for (int i = 0; i < Anzahl; ++i) { if(WiFi.SSID(i).indexOf(Router[0]) == 0 || WiFi.SSID(i).indexOf(Router[1]) == 0 || WiFi.SSID(i).indexOf(Router[2]) == 0) { tft.fillScreen(SCHWARZ); tft.setCursor(10, 10); tft.print(WiFi.SSID(i)); tft.setCursor(10, 80); tft.print(String(WiFi.RSSI(i))); // map -> Wert auf die Breite des TFT übertragen int BalkenGroesse = map(100 - WiFi.RSSI(i) * -1, 0, 100, 0, tft.width()); switch (WiFi.RSSI(i)) { case -60 ... -30: tft.fillRect(1, 140, BalkenGroesse, 40, GRUEN); break; case -70 ... -61: tft.fillRect(1, 140, BalkenGroesse, 40, BLAU); break; case -100 ... -71: tft.fillRect(1, 140, BalkenGroesse, 40, ROT); break; } delay(5000); } } } } |
Quellen
Letzte Aktualisierung: