ESP8266 -01 zapojení 1.3 palcový oled

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Odpovědět
vojta_1
Příspěvky: 37
Registrován: 14 úno 2020, 23:20
Reputation: 0

ESP8266 -01 zapojení 1.3 palcový oled

Příspěvek od vojta_1 » 06 čer 2020, 22:56

Zdravím, mám tu kód pro počasí,použil jsem WiFi modul ESP8266 -01, kód jede , když to přepnu na seriový monitor tak mi všechno ukazuje bez problému.
Mám 128x64 1.3 palcový oled SPI přepnutý na I2C,potřebují vyřešit zapojení reset tohoto displeje, je nějaká možnost, na TX-RX jsem to skoušel, displej blikal, vím že to není zběrnice. #define OLED_RESET X

Kód: Vybrat vše

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>  
#include <ArduinoJson.h>        // JSON decoding library
// Libraries for SSD1306 OLED display
#include <Wire.h>              
#include <Adafruit_GFX.h>      
#include <Adafruit_SSD1306.h>  
 
#define OLED_RESET   X     // GPIO       
Adafruit_SSD1306 display(OLED_RESET);

 // set Wi-Fi SSID and password
const char *ssid     = "XXXXXX";
const char *password = "XXXXXXXXXX";
 
// set location and API key
String Location = "Havirov,cz";
String API_Key  = "XXXXXXXXXXXXXXXXXX";
 
void setup(void)
{
  Serial.begin(9600);
  delay(1000);
 
  Wire.begin(2, 0);  // set I2C pins
 
  // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
  display.begin(SSD1306_SWITCHCAPVCC, 0x3D);  // initialize with the I2C addr 0x3D (for the 128x64)
  // init done
 
  Wire.setClock(400000L);   // set I2C clock to 400kHz
 
  display.clearDisplay();  // clear the display buffer
  display.setTextColor(WHITE, BLACK);
  display.setTextSize(1);
  display.setCursor(0, 0);
  display.println("  Internet Pocasi");
  display.print("  Mesto-Havirov");
  display.display();
 
  WiFi.begin(ssid, password);
 
  Serial.print("Connected");
  display.setCursor(0, 24);
  display.println("Connected...");
  display.display();
  while ( WiFi.status() != WL_CONNECTED )
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println("connected");
  display.print("connected");
  display.display();
  delay(1000);
 
}
 
void loop()
{
  if (WiFi.status() == WL_CONNECTED)  //Check WiFi connection status
  {
    HTTPClient http;  //Declare an object of class HTTPClient
 
    // specify request destination
    http.begin("http://api.openweathermap.org/data/2.5/weather?q=" + Location + "&APPID=" + API_Key);  // !!
 
    int httpCode = http.GET();  // send the request
 
    if (httpCode > 0)  // check the returning code
    {
      String payload = http.getString();   //Get the request response payload
 
      DynamicJsonBuffer jsonBuffer(512);
 
      // Parse JSON object
      JsonObject& root = jsonBuffer.parseObject(payload);
      if (!root.success()) {
        Serial.println(F("Parsing failed!"));
        return;
      }
 
      float temp = (float)(root["main"]["temp"]) - 273.15;        // get temperature in °C
      int   humidity = root["main"]["humidity"];                  // get humidity in %
      float pressure = (float)(root["main"]["pressure"]) / 1000;  // get pressure in bar
      float wind_speed = root["wind"]["speed"];                   // get wind speed in m/s
      int  wind_degree = root["wind"]["deg"];                     // get wind degree in °
 
      // print data
      Serial.printf("Teplota     = %.2f°C\r\n", temp);
      Serial.printf("Vlhkost     = %d %%\r\n", humidity);
      Serial.printf("Tlak        = %.3f bar\r\n", pressure);
      Serial.printf("Rych.vetru  = %.1f m/s\r\n", wind_speed);
      Serial.printf("Stup.vetru  = %d°\r\n\r\n", wind_degree);
 
      display.setCursor(0, 24);
      display.printf("Teplota    : %5.2f C\r\n", temp);
      display.printf("Vlhkost    : %d %%\r\n", humidity);
      display.printf("Tlak       : %.3fbar\r\n", pressure);
      display.printf("Rych.vetru : %.1f m/s\r\n", wind_speed);
      display.printf("Stup.vetru : %d", wind_degree);
      display.drawRect(109, 24, 3, 3, WHITE);     // put degree symbol ( ° )
      display.drawRect(97, 56, 3, 3, WHITE);
      display.display();
 
    }
 
    http.end();   //Close connection
 
  }
 
  delay(60000);   // wait 1 minute
 
}

RomanB
Příspěvky: 90
Registrován: 04 zář 2017, 14:28
Reputation: 0
Bydliště: Havířov

Re: ESP8266 -01 zapojení 1.3 palcový oled

Příspěvek od RomanB » 07 čer 2020, 08:25

Dej na výstupní piny pullup rezistory 4k7.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 13 hostů