#include <Adafruit_SSD1306.h>
#include <Wire.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
#include "images.h"
#include "secrets.h" // WiFi Configuration (WiFi name and Password)
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#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
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
const char* ssid = "Wokwi-GUEST";
const char* password = "";
int frame = 0;
int LastMeasureTime = 0;
int counter = 2;
float total;
float last_val;
void setup() {
Serial.begin(115200);
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("SSD1306 allocation failed"));
for (;;); // Don't proceed, loop forever
}
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
//delay(500);
//Serial.print(".");
wifi_anime();
if (millis() > 15000) ESP.restart();
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(53, 2);
display.print(String(round(total))+" Wt");
display.setCursor(48, 16);
display.print(String(round(last_val))+" Wt");
display.setTextSize(2);
display.setCursor(0, 30);
display.print("Wt:");
display.setCursor(32, 30);
display.print("1.54");
display.setCursor(80, 30);
display.print("k");
display.setCursor(12, 48);
display.print("A:");
display.setCursor(34, 48);
display.print("--");
display.drawBitmap(1, 16, last, 44, 9, WHITE);
display.drawBitmap(1, 0, amount, 49, 9, WHITE);
display.drawBitmap(109, 0, wifi_bits, 19, 16, WHITE);
display.display();
delay(3000);
display.drawRect(53, 2, 55, 22, WHITE);
display.display();
// display.drawRect(32, 30, 70, 33, WHITE);
// display.setCursor(32, 30);
// display.print("157.48");
// display.display();
delay(4000);
display.drawRect(32, 30, 95, 33, WHITE); // clear WT and A fields and work_anime
}
void loop() {
// if(millis() - LastMeasureTime > 5000){
// LastMeasureTime = millis();
// Serial.print(LastMeasureTime);
// }
work_anime();
delay(1000);
last_val = 159.65;
total += last_val;
display.fillRect(53, 2, 55, 33, BLACK);
display.setTextSize(1);
display.setCursor(53, 2);
display.print(String(round(total)/1000,1)+" Wt");
display.setCursor(53, 16);
display.print(String(last_val,1)+" Wt");
display.display();
}
void work_anime(){
display.fillRect(105, 33, 24, 24, BLACK);
if(counter % 2 == 0){
display.drawBitmap(105, 33, lamp, 24, 24, WHITE);
}else{
display.drawBitmap(105, 33, lamp_off, 24, 24, WHITE);
}
counter++;
display.display();
}
void wifi_anime(){
display.clearDisplay();
display.setTextColor(WHITE);
display.drawBitmap(0, 0, connectingWIFI, 128, 16, WHITE);
display.drawBitmap(48, 26, frames[frame], 32, 32, 1);
display.display();
frame = (frame + 1) % 28;
delay(20);
}
Loading
esp32-c3-devkitm-1
esp32-c3-devkitm-1