Hallo zusammen!
ich benutze
W11, Arduino IDE 2.3.3 mit einem heltec HTIT-W8266 oder auch
WiFi Kit 8 OLED genannt und komme mit dem Sketch nicht weiter.
'Test 2' wird nie angezeigt. Was mach ich falsch?
VG Thomas
Hier mein Sketch:
/*
WiFi Kit 8 OLED
heltec HTIT-W8266
NodeMCU 1.0 (ESP-12E Module)
*/
#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
// The pins for I2C are defined by the Wire-library.
// On an arduino UNO: A4(SDA), A5(SCL)
// On an arduino MEGA 2560: 20(SDA), 21(SCL)
// On an arduino LEONARDO: 2(SDA), 3(SCL), ...
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
#include <ESP8266WiFi.h> // WLAN Bibliothek einbinden
Adafruit_SSD1306 oled( SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET );
uint8_t iWLANs; // Speichert die Anzahl der entdeckten WLANs
const uint16_t WLANmax = 20; // Maximale WLAN Anzahl
struct WLAN_str
{
char ssid[22]; // die SSID den WLANs
char pw[63]; // das Password des WLANs
uint8_t channel; // Kanalnummer
sint16_t rssi; // die Feldstärke des WLANs
bool sichtbar; // 'true', wenn das WLAN sichtbar ist
uint8_t verschluesselt; // Schlüssel: 2-WPA/PSK, 4-WPA2/PSK, 5-WEP, 7-offen, 8-WPA/WPA2/PSK
} WLAN[ WLANmax ]; // Platz für bis zu 'iWLANmax' WLANs
uint16_t I; // Zähler
char cSatz[100];
char cZahl[10];
void setup()
{
Serial.begin( 9600 );
if( !oled.begin( SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS ) )
{
Serial.println( F( "SSD1306 allocation failed" ) );
for(;;); // Don't proceed, loop forever
}
oled.setTextSize(2); // Draw 2X-scale text
oled.setTextColor( SSD1306_WHITE );
oled.clearDisplay();
oled.setCursor( 0, 0 );
oled.println( F( "Test 1" ) );
oled.display();
delay( 1000 );
WLANs_ermitteln(); // hiernach funktioniert des oled nicht mehr!
//oled.clearDisplay();
oled.setCursor( 0, 16 );
oled.println( F( "Test 2" ) );
oled.display();
delay( 1000 );
}
void loop()
{
}
void WLANs_ermitteln()
{
uint16_t N; // Zähler
iWLANs = WiFi.scanNetworks(); // Netzwerk nach WLANs durchsuchen
if ( iWLANs > WLANmax ) iWLANs = WLANmax; // Anzahl der WLANs begrenzen
for ( N=0; N<iWLANs; N++ )
{
WiFi.SSID( N ).toCharArray( WLAN[N].ssid, 22 );
WLAN[N].rssi = WiFi.RSSI( N );
WLAN[N].channel = WiFi.channel( N );
WLAN[N].sichtbar = ! WiFi.isHidden( N );
WLAN[N].verschluesselt = WiFi.encryptionType( N );
}
}
Es werden periodisch die Grundparameter der verfügbaren WLANs ermittelt und gespeichert. Sinn des ganzen Sketches ist es, zu ermitteln
(wo und wie weit) ein bestimmtes WLAN zu empfangen ist.
void WLANs_ermitteln()
{
uint16_t N; // Zähler
iWLANs = WiFi.scanNetworks(); // Netzwerk nach WLANs durchsuchen
if ( iWLANs > WLANmax ) iWLANs = WLANmax; // Anzahl der WLANs begrenzen
for ( N=0; N<iWLANs; N++ )
{
WiFi.SSID( N ).toCharArray( WLAN[N].ssid, 22 );
WLAN[N].rssi = WiFi.RSSI( N );
WLAN[N].channel = WiFi.channel( N );
WLAN[N].sichtbar = ! WiFi.isHidden( N );
WLAN[N].verschluesselt = WiFi.encryptionType( N );
Serial.println();
Serial.println();
Serial.print( F( "WLAN : " ) ); Serial.println( N );
Serial.print( F( "SSID : " ) ); Serial.println( WLAN[N].ssid );
Serial.print( F( "RSSI : " ) ); Serial.println( WiFi.RSSI( N ) );
Serial.print( F( "Kanal : " ) ); Serial.println( WiFi.channel( N ) );
}
}
Das steht in der Ausgabe:
19:40:53.219 ->
19:40:53.219 -> WLAN : 0
19:40:53.219 -> SSID : GeThoWi
19:40:53.219 -> RSSI : -23
19:40:53.219 -> Kanal : 1
19:40:53.219 ->
19:40:53.219 ->
19:40:53.219 -> WLAN : 1
19:40:53.307 -> SSID : GeThoWi Gastzugang
19:40:53.307 -> RSSI : -45
19:40:53.307 -> Kanal : 1
In mir drängt sich der Verdacht auf, dass die Bibliotheken von Adafruit
und ESP8266WiFi nicht harmonisch zusammen laufen.
Ich habe verschiedene OLED Bibliotheken ausprobiert, keine
funktioniert!
Grundsätzlich laufen die schon zusammen. Ich tippe mal, es sind kompatibltätsprobleme mit der IDE und oder der core Version.
Ich verwende bisher noch die IDE 1.8.19 als portale und die core-Version 2.0.17 2.7.4 und habe da bisher kaum bis keine Probleme.
Ich habe die IDE 1.8.19 gefunden, geladen und installiert aber
auch damit funktioniert der Sketch nicht.
Morgen werde ich weiter suchen.
Nochmals danke - bis morgen