РУКОДЕЛКИ Помогите oled перевернуть информацию .

deniss777

✩✩✩✩✩✩✩
26 Янв 2022
18
0
Оформи код соответствующим тэгом, см. Правила
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET -1
#define SCREEN_WIDTH 64 // OLED display width, in pixels
#define SCREEN_HEIGHT 128 // OLED display height, in pixels
Adafruit_SSD1306 display(SCREEN_HEIGHT ,SCREEN_WIDTH , &Wire, OLED_RESET);





#define ONE_WIRE_BUS 0 //GPIO0 - DS18B20
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

MDNSResponder mdns;

// Wi-Fi
const char* ssid = "demio";
const char* password = "12345678";

//byte arduino_mac[] = { 0x24, 0xD7, 0xEB, 0xC9, 0x15, 0xE4 };
//IPAddress ip(192,168,1,35);
//IPAddress gateway(192,168,1,1);
//IPAddress subnet(255,255,255,0);
ESP8266WebServer server(80);

const int relay = 2; //вывод реле GPIO2
int temp_setup = 70; //установка температуры
int temp_DS18B20; //значение с термометра DS18B20


void setup() {
pinMode(relay, OUTPUT); //реле на выход
digitalWrite(relay,HIGH ); //реле выключено LOW
Wire.begin(4, 5); //(SDA = GPIO1, SCL = GPIO3)

//ESP01 TX = GPIO1, RX = GPIO3
//GPIO2 - реле
//GPIO0 - DS18B20

display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 0.96" 128X64 OLED LCD Display)I2C АДРЕС.

display.clearDisplay(); // Очистить буфер.
display.setTextColor (WHITE); // Цвет текста.
display.setTextSize(2); // Размер текста (1).
display.setCursor(0, 0); // Устанавливаем курсор
display.println(" wifi"); // Печатаем 1 строку.
display.setTextSize(2);
display.setCursor(0, 30); // Устанавливаем курсор
display.println(" demio"); // Печатаем 2 строку.
display.setTextSize(2); // Меняем размер текста (5).
display.setCursor(5, 50); // Устанавливаем курсор
display.println(" 12345678"); // Печатаем 3 строку.
display.display(); // Чтобы сделать символы видимыми на дисплее!
sensors.begin();



Serial.begin(115200);

// WiFi.config(ip, gateway, subnet);
Serial.println('\n');
WiFi.begin(ssid, password);
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}

Serial.println('\n');
Serial.println("Connection established");
Serial.print("IP address:\t");
Serial.println(WiFi.localIP());

if (mdns.begin("esp8266", WiFi.localIP())) {
Serial.println("MDNS responder started");
if (mdns.begin("esp8266", WiFi.localIP())) {//Serial.println("MDNS responder started");}
}

}

server.on("/", []() {
server.send(200, "text/html", webPage());
});

//+++++++++++++++++++++++ START RELAY ++++++++++++++++++++
server.on("/socket2On", []() {
digitalWrite(relay, HIGH);
server.send(200, "text/html", webPage());
delay(100);
});
server.on("/socket2Off", []() {
digitalWrite(relay, LOW);
server.send(200, "text/html", webPage());
delay(100);
});
// +++++++++++++++++++++++ END RELAY ++++++++++++++++++++

//+++++++++++++++++++++++ START temp_setup ++++++++++++++++++++
server.on("/socket4On", []() {
temp_setup++;
if (temp_setup >= 97) temp_setup = 97;
server.send(200, "text/html", webPage());
delay(100);
});
server.on("/socket4Off", []() {
temp_setup--;
if (temp_setup <= 20) temp_setup = 20;
server.send(200, "text/html", webPage());
delay(100);
});
// +++++++++++++++++++++++ END temp_setup ++++++++++++++++++++

server.begin();
Serial.println("HTTP server started");
}

void loop() {
server.handleClient();
sensors.requestTemperatures(); // Send the command to get temperatures
temp_DS18B20 = sensors.getTempCByIndex(0);//чтение температуры в переменную
//отрисовка дисплея
display.clearDisplay();
display.setTextColor(SSD1306_WHITE ); // Draw white text
display.setTextSize(1);
display.setCursor(15, 3);
display.print(" -TEMPERATURA-");
display.drawRect (0, 0, 128, 64, 1); // рисуем прямоугольник 1
display.setTextSize(2);
display.setCursor(40, 15);
display.print(temp_DS18B20, 1); // температура с датчика
display.setCursor(70, 10);
display.write(9);//символ из таблицы ASCII
display.setCursor(80, 15);
display.print("C"); // градусов темп установленная
display.setCursor(40, 35);
display.print(temp_setup, 1); // температура установленная
display.setCursor(70, 30);
display.write(9);//символ из таблицы ASCII
display.setCursor(80, 35);
display.print("C"); // градусов

//терморегулятор
if (temp_DS18B20 < temp_setup)
{
digitalWrite(relay, LOW);
display.setTextSize(1);
display.setCursor(40, 55);
display.print("RELAY OFF");
}
else
{
digitalWrite(relay,HIGH);
display.setTextSize(1);
display.setCursor(40, 55);
display.print("RELAY ON");
}

display.display();
}

String webPage()
{
sensors.requestTemperatures();
int temp_ds18b20 = sensors.getTempCByIndex(0);//температура с DS18B20

String web;
web += "<head><meta http-equiv=\"Refresh\" content=\"8; \"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/> <meta charset=\"utf-8\"><title>WEMOS D1 ESP8266</title><style>button{color:red;padding: 10px 27px;}</style></head>";
web += "<h1 style=\"text-align: center;font-family: Open sans;font-weight: 100;font-size: 20px;\">ТЕМПЕРАТУРА</h1><div>";



//++++++++++ DS18B20 TEMP +++++++++++++
web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----TEMP DS18B20----</p>";
web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #5191e4;margin: 0 auto;\">" + String(temp_ds18b20 ) + "</div>";
// ++++++++ DS18B20 TEMP +++++++++++++

//++++++++++ TEMP SETUP +++++++++++++
web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----TEMP SETUP----</p>";
//условие терморегулятора
if (temp_ds18b20 >= temp_setup)
{
//digitalWrite(relay, LOW);
web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #5191e4;margin: 0 auto;\">" + String(temp_setup) + "</div>";
}
if (temp_ds18b20 < temp_setup)
{
//digitalWrite(relay, HIGH);
web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">" + String(temp_setup) + "</div>";
}
//кнопки temp setup
web += "<div style=\"text-align: center;margin: 5px 0px;\"> <a href=\"socket4Off\"><button>Temp-</button></a>&nbsp;<a href=\"socket4On\"><button>Temp+</button></a></div>";
// ++++++++ TEMP SETUP +++++++++++++

//++++++++++ RELAY +++++++++++++
web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----RELAY----</p>";
if (digitalRead(relay) == 1)
{
web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color:#ec1212;margin: 0 auto;\">ON</div>";
}
else
{
web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">OFF</div>";
}
//web += "<div style=\"text-align: center;margin: 5px 0px;\"> <a href=\"socket2Off\"><button>Off</button></a>&nbsp;<a href=\"socket2On\"><button>On</button></a></div>";
// ++++++++ RELAY +++++++++++++


// ========REFRESH=============
web += "<div style=\"text-align:center;margin-top: 20px;\"><a href=\"/\"><button style=\"width:158px;\">REFRESH</button></a></div>";
// ========REFRESH=============

web += "</div>";
return (web);
}
 

vortigont

★★★★★★✩
24 Апр 2020
1,020
543
Saint-Petersburg, Russia
Вы думаете кто-то будет сидеть и читать эту кашу что бы понять что вам нужно если вам самому влом даже аккуратно оформить свой вопрос?
Сначала оформите тему хотя бы как здесь
 
  • Лойс +1
Реакции: bort707