Forum: Mikrocontroller und Digitale Elektronik ESP32 E-Papier-Thermometer


von Olaf H. (olaf008)


Lesenswert?

Hallo Mein name ist Olaf und ich spiele zur zeit mit den ESP32 rum
mein erstes Projekt war ein 
https://github.com/G6EJD/ESP32-e-Paper-Weather-Display das läuft seit 
zwei wochen problemlos
nun wolte ich noch ein ESP32 E-Papier-Thermometer realisieren
https://www-instructables-com.translate.goog/ESP32-E-Paper-Thermometer/?_x_tr_sl=en&_x_tr_tl=de&_x_tr_hl=de&_x_tr_pto=ajax,sc,elem
bekomme aber immer eine fehler meldung meim hochladen und komme nicht 
weiter
und hoffe jemand kann mir helfen
das ist der Sketch und unten der fehler

FG Olaf
1
    /////////////////////////////////////////////////////////////////
2
   //       ESP32 E-PAPER THERMOMETER       10/22/2020  v1.01     //
3
  //       Get the latest version of the code here:              //
4
 //        http://educ8s.tv/esp32-e-paper-thermometer           //
5
/////////////////////////////////////////////////////////////////
6
7
#include <GxEPD.h>
8
#include <GxGDEP015OC1/GxGDEP015OC1.h>
9
#include <GxIO/GxIO_SPI/GxIO_SPI.h>
10
#include <GxIO/GxIO.h>
11
12
#include <OneWire.h>
13
#include <DallasTemperature.h>
14
#include "BitmapGraphics.h"
15
16
#include <Fonts/FreeSansBold24pt7b.h>
17
18
#define ONE_WIRE_BUS 15
19
20
boolean METRIC = true;    //Set true for metric system; false for imperial
21
float previousTemperature = -100.0;
22
float temperature = 0;
23
24
OneWire oneWire(ONE_WIRE_BUS);
25
DallasTemperature sensors(&oneWire);
26
27
GxIO_Class io(SPI, SS, 22, 21);
28
GxEPD_Class display(io, 16, 4);
29
30
void setup() {
31
  
32
  Serial.begin(9600);
33
  display.init();
34
  sensors.begin();
35
  
36
  display.drawExampleBitmap(gImage_splash, 0, 0, 200, 200, GxEPD_BLACK);
37
  display.update();
38
  delay(3000);
39
40
  if(METRIC)
41
  {
42
    display.drawExampleBitmap(gImage_gui, 0, 0, 200, 200, GxEPD_BLACK);
43
  }else
44
  {
45
    display.drawExampleBitmap(gImage_gui_f, 0, 0, 200, 200, GxEPD_BLACK);
46
  }
47
  
48
  display.update();
49
50
  if(METRIC)
51
  {
52
    display.drawExampleBitmap(gImage_gui, sizeof(gImage_gui), GxEPD::bm_default | GxEPD::bm_partial_update);
53
  }else
54
  {
55
    display.drawExampleBitmap(gImage_gui_f, sizeof(gImage_gui_f), GxEPD::bm_default | GxEPD::bm_partial_update);
56
  }
57
}
58
59
void loop() 
60
{
61
  previousTemperature = temperature;
62
  temperature = getTemperatureFromSensor();
63
  
64
  if(previousTemperature!=temperature)
65
  {
66
    showPartialUpdate(temperature);
67
  }
68
  
69
  printTemperatureToSerial();
70
  delay(5000);
71
}
72
73
float getTemperatureFromSensor()
74
{
75
  float temperature = 0;
76
  sensors.requestTemperatures();
77
  if(METRIC)
78
  {
79
    temperature = sensors.getTempCByIndex(0);
80
  }else
81
  {
82
    temperature = sensors.getTempFByIndex(0);
83
  }
84
  temperature = round(temperature * 10) / 10;
85
  return temperature;
86
}
87
88
void showPartialUpdate(float temperature)
89
{
90
  Serial.println("Updating display ...");
91
  String temperatureString = String(temperature,1);
92
  const char* name = "FreeSansBold24pt7b";
93
  const GFXfont* f = &FreeSansBold24pt7b;
94
  
95
  uint16_t box_x = 60;
96
  uint16_t box_y = 60;
97
  uint16_t box_w = 90;
98
  uint16_t box_h = 100;
99
  uint16_t cursor_y = box_y + 16;
100
101
  display.setRotation(45);
102
  display.setFont(f);
103
  display.setTextColor(GxEPD_BLACK);
104
105
  display.fillRect(box_x, box_y, box_w, box_h, GxEPD_WHITE);
106
  display.setCursor(box_x, cursor_y+38);
107
  display.print(temperatureString); 
108
  display.updateWindow(box_x, box_y, box_w, box_h, true);
109
}
110
111
void printTemperatureToSerial()
112
{
113
  Serial.print(temperature);
114
  Serial.print(" C");
115
  Serial.print("\n");
116
}

1
In file included from C:\Users\ich\Documents\Arduino\libraries\OneWire-master\OneWire.cpp:144:
2
C:\Users\ich\Documents\Arduino\libraries\OneWire-master\util/OneWire_direct_gpio.h: In function 'void directModeInput(uint32_t)':
3
C:\Users\ich\Documents\Arduino\libraries\OneWire-master\util/OneWire_direct_gpio.h:161:26: error: 'rtc_gpio_desc' was not declared in this scope
4
         uint32_t rtc_reg(rtc_gpio_desc[pin].reg);
5
                          ^~~~~~~~~~~~~
6
C:\Users\ich\Documents\Arduino\libraries\OneWire-master\util/OneWire_direct_gpio.h:161:26: note: suggested alternative: 'rtc_io_desc'
7
         uint32_t rtc_reg(rtc_gpio_desc[pin].reg);
8
                          ^~~~~~~~~~~~~
9
                          rtc_io_desc
10
C:\Users\ich\Documents\Arduino\libraries\OneWire-master\util/OneWire_direct_gpio.h: In function 'void directModeOutput(uint32_t)':
11
C:\Users\ich\Documents\Arduino\libraries\OneWire-master\util/OneWire_direct_gpio.h:189:26: error: 'rtc_gpio_desc' was not declared in this scope
12
         uint32_t rtc_reg(rtc_gpio_desc[pin].reg);
13
                          ^~~~~~~~~~~~~
14
C:\Users\ich\Documents\Arduino\libraries\OneWire-master\util/OneWire_direct_gpio.h:189:26: note: suggested alternative: 'rtc_io_desc'
15
         uint32_t rtc_reg(rtc_gpio_desc[pin].reg);
16
                          ^~~~~~~~~~~~~
17
                          rtc_io_desc
18
exit status 1
19
Fehler beim Kompilieren für das Board WEMOS LOLIN32.

von Chr. M. (snowfly)


Lesenswert?


von Olaf H. (olaf008)


Lesenswert?

das bringt mich als Anfänger jetzt auch nicht weiter

: Bearbeitet durch User
von Jan H. (j_hansen)


Lesenswert?

Olaf H. schrieb:
> das bringt mich als Anfänger jetzt auch nicht weiter

Warum nicht?
- Ich kann Englisch nicht lesen
- Ich verstehe die vier kurzen Postings nicht
- Ich finde das Häkchen nicht
- Das Häkchen gibt's bei mir nicht
- Trotz Änderung besteht das Problem weiterhin
- ...

von Michael U. (amiga)


Lesenswert?

Hallo,

Jan H. schrieb:
> Warum nicht?

- er benutzt die ArduinoIDE und nicht das Esüressif-IDF...

@TO: welche Version der IDE und welche Version der ESP32 Erweiterung 
hast DU installiert?
Ich schau dann nachher mal nach, Espressif hat da bei der 2.0.0 so 
einiges geändert.
Gerade mal schnell probiert: mit ESP32 v1.0.4 läßt es sich hier noch 
kompilieren. Kannst Du ja mal testen:
Boardmanager ESP32 entfernen, Version 1.0.4 auswählen und installieren.

Gruß aus Berlin
Michael

von Olaf H. (olaf008)


Lesenswert?

und siehe da mit der Version 1.0.4 geht es
besten Dank

von Michael U. (amiga)


Lesenswert?

Hallo,

Olaf H. schrieb:
> und siehe da mit der Version 1.0.4 geht es
> besten Dank

Danke für die Rückmeldung, die 1.0.6 wird wohl auch noch gehen, die 
Änderungen sind erst mit der 2.0.0 gekommen.
Da Du E-Paper Wetter erwähnt hast: was hast Du für ein Display benutzt?
Ich bin auch gerade mal wieder auf dem "E-Paper Trip", im Moment läuft 
hier "Wetter" auf einem 2,13" und einem 2,9", die lagen gerade noch 
rum...

Gruß aus Berlin
Michael

von Olaf H. (olaf008)


Lesenswert?

ein Waveshare 7.5 ist schön groß

von Olaf H. (olaf008)


Lesenswert?

mmmmmm zu früh gefreut ich bekomme keine anzeige
Michael hat es bei dir angezeigt ?

von Michael U. (amiga)


Lesenswert?

Hallo,

Olaf H. schrieb:
> mmmmmm zu früh gefreut ich bekomme keine anzeige
> Michael hat es bei dir angezeigt ?
ich habe die Hardware nicht aufgebaut, nur den Sketch durch den Compiler 
geschickt.
Ich müßte schauen, ob ich das passende Display in meiner Sammlung habe, 
die werden ja in mehreren Varianten ausgeliefert...

Gruß aus Berlin
Michael

von Olaf H. (olaf008)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.