Please help me what happen and how to do.
I have try to clear display but it not working
/*
#include “Arduino.h”
#include “heltec.h”
#include “WiFi.h”
#include “images.h”
#define BAND 868E6 //you can set band here directly,e.g. 868E6,915E6
String rssi = “RSSI --”;
String packSize = “–”;
String packet;
unsigned int counter = 0;
bool receiveflag = false; // software flag for LoRa receiver, received data makes it true.
long lastSendTime = 0; // last send time
int interval = 1000; // interval between sends
void logo(){
Heltec.display -> clear();
Heltec.display -> drawXbm(0,5,logo_width,logo_height,(const unsigned char *)logo_bits);
Heltec.display -> display();
}
void WIFISetUp(void)
{
// Set WiFi to station mode and disconnect from an AP if it was previously connected
WiFi.disconnect(true);
delay(1000);
WiFi.mode(WIFI_STA);
WiFi.setAutoConnect(true);
WiFi.begin(“Your WiFi SSID”,“Your Password”);//fill in “Your WiFi SSID”,“Your Password”
delay(100);
byte count = 0;
while(WiFi.status() != WL_CONNECTED && count < 10)
{
count ++;
delay(500);
Heltec.display -> drawString(0, 0, "Connecting...");
Heltec.display -> display();
}
Heltec.display -> clear();
if(WiFi.status() == WL_CONNECTED)
{
Heltec.display -> drawString(0, 0, "Connecting...OK.");
Heltec.display -> display();
// delay(500);
}
else
{
Heltec.display -> clear();
Heltec.display -> drawString(0, 0, “Connecting…Failed”);
Heltec.display -> display();
//while(1);
}
Heltec.display -> drawString(0, 10, “WIFI Setup done”);
Heltec.display -> display();
delay(500);
}
void WIFIScan(unsigned int value)
{
unsigned int i;
if(WiFi.status() != WL_CONNECTED)
{
WiFi.mode(WIFI_MODE_NULL);
}
for(i=0;i<value;i++)
{
Heltec.display -> drawString(0, 20, “Scan start…”);
Heltec.display -> display();
int n = WiFi.scanNetworks();
Heltec.display -> drawString(0, 30, "Scan done");
Heltec.display -> display();
delay(500);
Heltec.display -> clear();
if (n == 0)
{
Heltec.display -> clear();
Heltec.display -> drawString(0, 0, "no network found");
Heltec.display -> display();
//while(1);
}
else
{
Heltec.display -> drawString(0, 0, (String)n);
Heltec.display -> drawString(14, 0, "networks found:");
Heltec.display -> display();
delay(500);
for (int i = 0; i < n; ++i) {
// Print SSID and RSSI for each network found
Heltec.display -> drawString(0, (i+1)*9,(String)(i + 1));
Heltec.display -> drawString(6, (i+1)*9, ":");
Heltec.display -> drawString(12,(i+1)*9, (String)(WiFi.SSID(i)));
Heltec.display -> drawString(90,(i+1)*9, " (");
Heltec.display -> drawString(98,(i+1)*9, (String)(WiFi.RSSI(i)));
Heltec.display -> drawString(114,(i+1)*9, ")");
// display.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN)?" ":"*");
delay(10);
}
}
Heltec.display -> display();
delay(800);
Heltec.display -> clear();
}
}
bool resendflag=false;
bool deepsleepflag=false;
void interrupt_GPIO0()
{
delay(10);
if(digitalRead(0)==0)
{
if(digitalRead(LED)==LOW)
{resendflag=true;}
else
{
deepsleepflag=true;
}
}
}
void setup()
{
Heltec.begin(true /DisplayEnable Enable/, true /LoRa Enable/, true /Serial Enable/, true /LoRa use PABOOST/, BAND /LoRa RF working band/);
logo();
delay(300);
Heltec.display -> clear();
WIFISetUp();
WIFIScan(1);
attachInterrupt(0,interrupt_GPIO0,FALLING);
LoRa.onReceive(onReceive);
send();
LoRa.receive();
displaySendReceive();
}
void loop()
{
if(deepsleepflag)
{
LoRa.end();
LoRa.sleep();
delay(100);
pinMode(4,INPUT);
pinMode(5,INPUT);
pinMode(14,INPUT);
pinMode(15,INPUT);
pinMode(16,INPUT);
pinMode(17,INPUT);
pinMode(18,INPUT);
pinMode(19,INPUT);
pinMode(26,INPUT);
pinMode(27,INPUT);
digitalWrite(Vext,HIGH);
delay(2);
esp_deep_sleep_start();
}
if(resendflag)
{
resendflag=false;
send();
LoRa.receive();
displaySendReceive();
}
if(receiveflag)
{
digitalWrite(25,HIGH);
displaySendReceive();
delay(1000);
receiveflag = false;
send();
LoRa.receive();
displaySendReceive();
}
}
void send()
{
LoRa.beginPacket();
LoRa.print("hello “);
LoRa.print(counter++);
LoRa.endPacket();
}
void displaySendReceive()
{
Heltec.display -> drawString(0, 50, “Packet " + (String)(counter-1) + " sent done”);
Heltec.display -> drawString(0, 0, “Received Size” + packSize + " packages:”);
Heltec.display -> drawString(0, 10, packet);
Heltec.display -> drawString(0, 20, "With " + rssi);
Heltec.display -> display();
delay(100);
Heltec.display -> clear();
}
void onReceive(int packetSize)//LoRa receiver interrupt service
{
//if (packetSize == 0) return;
packet = "";
packSize = String(packetSize,DEC);
while (LoRa.available())
{
packet += (char) LoRa.read();
}
Serial.println(packet);
rssi = "RSSI: " + String(LoRa.packetRssi(), DEC);
receiveflag = true;
}
hard to read when not in the right format
Same thing here, it is weird, my code was working, but now it doesn´t. Graphic examples work, my program compiles, and the loop works, and the OLED is able to keep writing, but clear mssge doesnt.
Maybe a library re assign pins? very weird problem.
hi,
How many boards do you have? Did you try them all? There is still only one such situation.