Weather Display with ST Nucleo [160157]

Graphic LCD shows weather forecast
NOTE: THIS PROJECT IS A NEWER VERSION OF THE ATMEL BASED PROJECT at https://www.elektormagazine.com/labs/weather-display.
This display shows weather data of the location that is entered in software. An ESP8266 connects to your WiFi network and gets the online weather data from openweathermaps.org, these data are updated four times an hour. Time and date is read from an NTP server and synchronized every hour. An ST Nucleo F411RE (an STM32-based board) reads the data from the ESP module, calculates the moon phase and current zodiac sign and displays all data on a 176x220 pixel 2.2” graphic LC display.
The top section of the display shows time, date, weekday, week number, moon phase and the current zodiac sign. On the far right is an icon that indicates an update of data.
The icons in the right column of the LCD (from top to bottom) indicate:
Cloudiness
Sunrise and sunset
Air pressure
Relative humidity
Wind direction and speed
Precipitation
The bottom left window on the LCD shows the weather forecast for today and the following five days. The text colour changes with temperature.
The left center section of the display shows the current weather type, current temperature and daily minimum and maximum values.
Schematic (Figure 1)
Nucleo board is the heart of the weather display. It connects to the board we designed in the Elektor lab to the TFT and ESP8266 via two 38-way sockets with the same names as the pin headers on the Nucleo: CN7 and CN10. The complete weather display is powered via micro USB connector K2. To prevent interference of the ESP on the power supply lines, we decide to use two identical 3.3V voltage regulators (IC1 and IC2). Maybe a bit overkill, but better safe than sorry.
K1 (5-way pin header) provides an optional connection to the ST-Link programming interface. This interface is part of the Nucleo board when you buy it, but it can easily be separated from the microcontroller part, we’ll discuss that later on.
The blue pushbutton on the Nucleo board and S1 on the display board are connected in parallel and perform the same function. These buttons are used to change the configuration of the WeatherDisplay, a short press will scroll through the menus, a longer keypress selects the current menu item.
Bt1 is a standard CR2032 button cell that serves as a power backup for the Nucleo’s real time clock, i.e. the clock will be kept up to date when the main power supply is switched off.
MOD1 is the ESP8266 module, an ESP-12E to be more precise. Its UART is connected to the STM32 to exchange data (RX and TX) and control lines make it also possible to use the STM32 as programming interface for the ESP, the module can be programmed directly from the Arduino IDE. More about this subject later.
The first step to build this project is to configure the hardware and software of the Nucleo board. So let’s start with…
Nucleo configuration
Note: The manual of the Nucleo board can be downloaded from http://www.st.com/content/ccc/resource/technical/document/user_manual/98/2e/fa/4b/e0/82/43
/b7/DM00105823.pdf/files/DM00105823.pdf/jcr:content/translations/en.DM00105823.pdf.
Step 1
Note: you can skip this step and step 3 when you are programming the Nucleo board for the first time!
Separate the ST-Link part from the processor board, e.g. using a Dremel tool. Check if all traces are clean cut, i.e. check for short circuits at the edges of both boards.
Step 2
Perform the following changes to the hardware of the Nucleo board (at your own risk of course!):
X3 add 16 MHz crystal
C33, C34 add 22pF 0603 caps
SB54 Open (X3)
SB55 Open (X3)
R35 Connected (X3)
R37 Connected (X3)
SB16 Open (MCO)
SB 50 Open (MCO)
SB45 Open (VBAT)
SB62 Connected (UART)
SB63 Connected (UART)
JP5 E5V
Note: you can use the 0 Ohm 0603 resistors that are removed from the board to close other jumpers
Step 3
Make the following connections between the ST-Link and Nucleo board:
PIN Name
ST-Link Pin
Nucleo Pin
Display board
SW CLK
2
CN7 – 15
K1-1
GND
3
CN7 – 8
K1-2
SW DIO
4
CN7 – 13
K1-3
SW Reset
5
CN7 – 14
K1-5
Step 4
Connect a 5VDC power supply to CN7-6 (+5V) and CN7-8 (GND). If you haven’t separated the ST-Link from the Nucleo board yet (see Step 1) , you can leave JP5 in default position U5V. In this case the Nucleo board is powered by USB via the ST-Link board.
Step 4
Download and install the evaluation version of Atollic TrueSTUDIO from https://atollic.com/resources/download/. Download the software associated with the WeatherDisplay.
Step 5
Run Atollic TrueSTUDIO and import the WeatherDisplay project:
File > Import > General > Existing Projects into Workspace
Step 6
Add the debug configuration:
Run > Debug Configurations, double-click on “Embedded C/C++ Application” and copy the following configuration in the Main tab:
See Figure 2
…..the Debugger tab:
See Figure 3
And in the Startup Scripts tab, comment out the line “tbreak main”:
See Figure 4
Step 7
If you haven’t done so already, connect the ST-Link to your computer via USB and power up the Nucleo board if you are using an external power supply, i.e. not powered via USB (see Step 4).
Program the Nucleo board by running the Debug Configuration in the ‘Run’ menu.
ESP8266 programming
The ESP8266 is used for WLAN and internet connectivity and must be programmed to perform these tasks. The Arduino IDE is used to write the source code for this module and to program the ESP8266. You’ll need a USB to UART interface like the well-known FTDI cable between your computer and the Nucleo board. Although the datasheet claims that the STM32 ports (3.3V powered on the Nucleo board) are 5V tolerant, it is better to stay on the safe side and use a 3.3V USB to UART interface!
Connect the assembled display board (carrying the ESP8266) to the Nucleo board, the position of the CN7 and CN10 connectors of both boards match exactly. Use a standard 5V power supply with micro-USB connector to power the board via K2 on the display board. Remember to set JP5 on the Nucleo board in position E5V!
Make the following connections:
USB-UART-Converter
Nucleo Board
GND
CN7 Pin 20
TxD
CN10 Pin 31 (PB3)
RxD
CN10 Pin 17 (PB6)
But first we must edit the Arduino sketch to match APPID and the geographical location for the weather forecast. You can get the APPID by registering (FREE!) at https://openweathermap.org/appid and find the location list at http://openweathermap.org/help/city_list.txt
Edit the following lines in the Arduino sketch WeatherTimeget_el.ino:
const String APIID = "your_APPID";
const String LOCATION = "your_location"; //Example: "london"
These are the first declarations at the beginning of this sketch.
At this stage it may be a good idea to enter the name (SSID) and password of your WiFi router in the Arduino sketch. These parameters can be changed later in the Nucleo’s menu, but entering this data in the source can be more convenient. In the sketch in function Setup, replace the line:
WiFi.begin()
By:
char cssid[] = “YOUR SSID”;
char cpasswd[] = “YOUR PASSWORD”;
WiFi.Begin(cssid, cpasswd);
Needless to say that YOUR SSID means the name of your WLAN network and YOUR PASSWORD its password….
If you haven’t used the Arduino IDE for programming ESP8266s before, you must change the preferences of the IDE in File > Preferences
See Figure 5
Next add the ESP module to the Board Manager (via Tools > Board…):
See Figure 6
More information on the ESP8266 library can be found on: http://esp8266.github.io/Arduino/versions/2.3.0/
Now select “Generic ESP Module” in Tools > Board. The Nucleo will serve as programming interface for the ESP module, set the baudrate to 9600 in Tools > Upload Speed. Using higher speeds may result in errors.
See Figure 7
Last but not least: select the correct COM port for programming in Tools > Ports.
The Arduino IDE is ready for action now, time to put the Nucleo into programming mode for the ESP8266. Push S1 on the display board (or the blue button on the Nucleo) to open the Nucleo’s main menu. Repeat short key presses to reach the ‘ESP menu’ item, keep the button pressed longer to select it. Now select ‘Program loop serial’.
See Figure 8
Finally, all is ready for uploading the sketch from the Arduino IDE to the ESP module: Select Sketch > Upload to perform this task.
You’ll have to be a bit patient for this operation to complete, in the screendump below you see that 100% indicates that the programming is done. At this stage you can exit the programming mode of the Nucleo by pressing S1 twice on Exit, or just reset the Nucleo with the black pushbutton or by switching the power off and on again.
This completes the configuration and programming of the WeatherDisplay, after a short time the LCD will display the weather forecast for the location you have entered in the Arduino sketch.
WiFi configuration
If you haven’t entered your WiFi credentials in the Arduino sketch, or if you want to change them at a later stage, you can use the menu of the Nucleo board to alter the WiFi configuration. In order to do this, enter the Nucleo’s main menu and select ‘Config WiFi’, confirm with YES in the following screen.
See Figure 9
Now you can use a smartphone or tablet to connect to the ESP8266’s access point. Please note that this access point is only active in the ‘Config WifI’ mode, or when the weather display is unable to connect to the wireless network. Its SSID is “WeatherNet” and the password is “WeatherPass” (both can be changed in the Arduino sketch). Log on to this network and open the ESP8266’s home page at IP address 10.0.0.1. There you will find a list of available wireless networks, select the SSID you want to use and enter the correct password for this network. Click on ‘Save’ to confirm. After a few seconds the Weathernet access point is switched off and the Nucleo will return automatically to its Menu. Selecting Exit will complete the change of the WLAN configuration and return to the weather forecast display.
To check if the WLAN setting is correct, select “Status” in the menu. At the top of the screen you’ll see the Nucleo’s and ESP’s firmware version numbers, followed by the ESP’s IP address and the name of the wireless network and an indication of its signal strength. Status reflects –of course- the status of the WiFi connection, 0x0F will be the value that you want to see there, meaning that the wireless network is connected and all data are loaded.
Bit „0“ „1“
0 WiFi not connected WiFi connected
1 Update of weather data failed Update of weather data successful
2 Update of forecast data failed Update of weather data successfull
3 Time/date data not found Time/date data found
4* No UV data UV Data loaded
*the routines for retrieving UV data are not included in the firmware of the WeatherDisplay because these are not free for distribution. The service that provides this information does not allow the use of these data. If anyone knowns of a free source of UV data: please inform the author!
BOM 160157-1 Weather display
Resistor
R1,R2,R3,R4 = 1.5 kΩ, thick film, 5%, 0.1W, 150V, 0805
Capacitor
C1,C2,C5,C6 = 10 µF, 16 V, 1206
C3 = 100 µF, 16 V, 2312
C4 = 100 nF, 50 V, X7R, 0805
Semiconductor
IC1,IC2 = LD1117DT33, LDO, 3.3 V, 0.8 A
Other
LCD1 = 2.2" TFT 176 x 220 pixels (ILI9225)
LCD1 = Pin socket, breakable, 1 row, 11-way (for LCD)
MOD1 = ESP-12E WiFi module
CN7,CN10 = Pin socket, breakable, 2 rows, 38-way, vertical
K1 = Pin header, breakable, 1 row, 5-way, angled
K2 = Micro USB type B receptacle, bottom mount
S1 = Switch, tactile, 24 V, 50 mA, 6x6 mm
3V Lithium battery CR2032
Battery holder 20mm coin cell
Misc.
ST Nucleo-F411RE board
PCB 160157-1 V1.3
Additional parts for Nucleo board
X3 = Crystal 16 MHz, 18 pF
C33,C34 = 22pF,50V, 0603
This display shows weather data of the location that is entered in software. An ESP8266 connects to your WiFi network and gets the online weather data from openweathermaps.org, these data are updated four times an hour. Time and date is read from an NTP server and synchronized every hour. An ST Nucleo F411RE (an STM32-based board) reads the data from the ESP module, calculates the moon phase and current zodiac sign and displays all data on a 176x220 pixel 2.2” graphic LC display.
The top section of the display shows time, date, weekday, week number, moon phase and the current zodiac sign. On the far right is an icon that indicates an update of data.
The icons in the right column of the LCD (from top to bottom) indicate:
Cloudiness
Sunrise and sunset
Air pressure
Relative humidity
Wind direction and speed
Precipitation
The bottom left window on the LCD shows the weather forecast for today and the following five days. The text colour changes with temperature.
The left center section of the display shows the current weather type, current temperature and daily minimum and maximum values.
Schematic (Figure 1)
Nucleo board is the heart of the weather display. It connects to the board we designed in the Elektor lab to the TFT and ESP8266 via two 38-way sockets with the same names as the pin headers on the Nucleo: CN7 and CN10. The complete weather display is powered via micro USB connector K2. To prevent interference of the ESP on the power supply lines, we decide to use two identical 3.3V voltage regulators (IC1 and IC2). Maybe a bit overkill, but better safe than sorry.
K1 (5-way pin header) provides an optional connection to the ST-Link programming interface. This interface is part of the Nucleo board when you buy it, but it can easily be separated from the microcontroller part, we’ll discuss that later on.
The blue pushbutton on the Nucleo board and S1 on the display board are connected in parallel and perform the same function. These buttons are used to change the configuration of the WeatherDisplay, a short press will scroll through the menus, a longer keypress selects the current menu item.
Bt1 is a standard CR2032 button cell that serves as a power backup for the Nucleo’s real time clock, i.e. the clock will be kept up to date when the main power supply is switched off.
MOD1 is the ESP8266 module, an ESP-12E to be more precise. Its UART is connected to the STM32 to exchange data (RX and TX) and control lines make it also possible to use the STM32 as programming interface for the ESP, the module can be programmed directly from the Arduino IDE. More about this subject later.
The first step to build this project is to configure the hardware and software of the Nucleo board. So let’s start with…
Nucleo configuration
Note: The manual of the Nucleo board can be downloaded from http://www.st.com/content/ccc/resource/technical/document/user_manual/98/2e/fa/4b/e0/82/43
/b7/DM00105823.pdf/files/DM00105823.pdf/jcr:content/translations/en.DM00105823.pdf.
Step 1
Note: you can skip this step and step 3 when you are programming the Nucleo board for the first time!
Separate the ST-Link part from the processor board, e.g. using a Dremel tool. Check if all traces are clean cut, i.e. check for short circuits at the edges of both boards.
Step 2
Perform the following changes to the hardware of the Nucleo board (at your own risk of course!):
X3 add 16 MHz crystal
C33, C34 add 22pF 0603 caps
SB54 Open (X3)
SB55 Open (X3)
R35 Connected (X3)
R37 Connected (X3)
SB16 Open (MCO)
SB 50 Open (MCO)
SB45 Open (VBAT)
SB62 Connected (UART)
SB63 Connected (UART)
JP5 E5V
Note: you can use the 0 Ohm 0603 resistors that are removed from the board to close other jumpers
Step 3
Make the following connections between the ST-Link and Nucleo board:
PIN Name
ST-Link Pin
Nucleo Pin
Display board
SW CLK
2
CN7 – 15
K1-1
GND
3
CN7 – 8
K1-2
SW DIO
4
CN7 – 13
K1-3
SW Reset
5
CN7 – 14
K1-5
Step 4
Connect a 5VDC power supply to CN7-6 (+5V) and CN7-8 (GND). If you haven’t separated the ST-Link from the Nucleo board yet (see Step 1) , you can leave JP5 in default position U5V. In this case the Nucleo board is powered by USB via the ST-Link board.
Step 4
Download and install the evaluation version of Atollic TrueSTUDIO from https://atollic.com/resources/download/. Download the software associated with the WeatherDisplay.
Step 5
Run Atollic TrueSTUDIO and import the WeatherDisplay project:
File > Import > General > Existing Projects into Workspace
Step 6
Add the debug configuration:
Run > Debug Configurations, double-click on “Embedded C/C++ Application” and copy the following configuration in the Main tab:
See Figure 2
…..the Debugger tab:
See Figure 3
And in the Startup Scripts tab, comment out the line “tbreak main”:
See Figure 4
Step 7
If you haven’t done so already, connect the ST-Link to your computer via USB and power up the Nucleo board if you are using an external power supply, i.e. not powered via USB (see Step 4).
Program the Nucleo board by running the Debug Configuration in the ‘Run’ menu.
ESP8266 programming
The ESP8266 is used for WLAN and internet connectivity and must be programmed to perform these tasks. The Arduino IDE is used to write the source code for this module and to program the ESP8266. You’ll need a USB to UART interface like the well-known FTDI cable between your computer and the Nucleo board. Although the datasheet claims that the STM32 ports (3.3V powered on the Nucleo board) are 5V tolerant, it is better to stay on the safe side and use a 3.3V USB to UART interface!
Connect the assembled display board (carrying the ESP8266) to the Nucleo board, the position of the CN7 and CN10 connectors of both boards match exactly. Use a standard 5V power supply with micro-USB connector to power the board via K2 on the display board. Remember to set JP5 on the Nucleo board in position E5V!
Make the following connections:
USB-UART-Converter
Nucleo Board
GND
CN7 Pin 20
TxD
CN10 Pin 31 (PB3)
RxD
CN10 Pin 17 (PB6)
But first we must edit the Arduino sketch to match APPID and the geographical location for the weather forecast. You can get the APPID by registering (FREE!) at https://openweathermap.org/appid and find the location list at http://openweathermap.org/help/city_list.txt
Edit the following lines in the Arduino sketch WeatherTimeget_el.ino:
const String APIID = "your_APPID";
const String LOCATION = "your_location"; //Example: "london"
These are the first declarations at the beginning of this sketch.
At this stage it may be a good idea to enter the name (SSID) and password of your WiFi router in the Arduino sketch. These parameters can be changed later in the Nucleo’s menu, but entering this data in the source can be more convenient. In the sketch in function Setup, replace the line:
WiFi.begin()
By:
char cssid[] = “YOUR SSID”;
char cpasswd[] = “YOUR PASSWORD”;
WiFi.Begin(cssid, cpasswd);
Needless to say that YOUR SSID means the name of your WLAN network and YOUR PASSWORD its password….
If you haven’t used the Arduino IDE for programming ESP8266s before, you must change the preferences of the IDE in File > Preferences
See Figure 5
Next add the ESP module to the Board Manager (via Tools > Board…):
See Figure 6
More information on the ESP8266 library can be found on: http://esp8266.github.io/Arduino/versions/2.3.0/
Now select “Generic ESP Module” in Tools > Board. The Nucleo will serve as programming interface for the ESP module, set the baudrate to 9600 in Tools > Upload Speed. Using higher speeds may result in errors.
See Figure 7
Last but not least: select the correct COM port for programming in Tools > Ports.
The Arduino IDE is ready for action now, time to put the Nucleo into programming mode for the ESP8266. Push S1 on the display board (or the blue button on the Nucleo) to open the Nucleo’s main menu. Repeat short key presses to reach the ‘ESP menu’ item, keep the button pressed longer to select it. Now select ‘Program loop serial’.
See Figure 8
Finally, all is ready for uploading the sketch from the Arduino IDE to the ESP module: Select Sketch > Upload to perform this task.
You’ll have to be a bit patient for this operation to complete, in the screendump below you see that 100% indicates that the programming is done. At this stage you can exit the programming mode of the Nucleo by pressing S1 twice on Exit, or just reset the Nucleo with the black pushbutton or by switching the power off and on again.
This completes the configuration and programming of the WeatherDisplay, after a short time the LCD will display the weather forecast for the location you have entered in the Arduino sketch.
WiFi configuration
If you haven’t entered your WiFi credentials in the Arduino sketch, or if you want to change them at a later stage, you can use the menu of the Nucleo board to alter the WiFi configuration. In order to do this, enter the Nucleo’s main menu and select ‘Config WiFi’, confirm with YES in the following screen.
See Figure 9
Now you can use a smartphone or tablet to connect to the ESP8266’s access point. Please note that this access point is only active in the ‘Config WifI’ mode, or when the weather display is unable to connect to the wireless network. Its SSID is “WeatherNet” and the password is “WeatherPass” (both can be changed in the Arduino sketch). Log on to this network and open the ESP8266’s home page at IP address 10.0.0.1. There you will find a list of available wireless networks, select the SSID you want to use and enter the correct password for this network. Click on ‘Save’ to confirm. After a few seconds the Weathernet access point is switched off and the Nucleo will return automatically to its Menu. Selecting Exit will complete the change of the WLAN configuration and return to the weather forecast display.
To check if the WLAN setting is correct, select “Status” in the menu. At the top of the screen you’ll see the Nucleo’s and ESP’s firmware version numbers, followed by the ESP’s IP address and the name of the wireless network and an indication of its signal strength. Status reflects –of course- the status of the WiFi connection, 0x0F will be the value that you want to see there, meaning that the wireless network is connected and all data are loaded.
Bit „0“ „1“
0 WiFi not connected WiFi connected
1 Update of weather data failed Update of weather data successful
2 Update of forecast data failed Update of weather data successfull
3 Time/date data not found Time/date data found
4* No UV data UV Data loaded
*the routines for retrieving UV data are not included in the firmware of the WeatherDisplay because these are not free for distribution. The service that provides this information does not allow the use of these data. If anyone knowns of a free source of UV data: please inform the author!
BOM 160157-1 Weather display
Resistor
R1,R2,R3,R4 = 1.5 kΩ, thick film, 5%, 0.1W, 150V, 0805
Capacitor
C1,C2,C5,C6 = 10 µF, 16 V, 1206
C3 = 100 µF, 16 V, 2312
C4 = 100 nF, 50 V, X7R, 0805
Semiconductor
IC1,IC2 = LD1117DT33, LDO, 3.3 V, 0.8 A
Other
LCD1 = 2.2" TFT 176 x 220 pixels (ILI9225)
LCD1 = Pin socket, breakable, 1 row, 11-way (for LCD)
MOD1 = ESP-12E WiFi module
CN7,CN10 = Pin socket, breakable, 2 rows, 38-way, vertical
K1 = Pin header, breakable, 1 row, 5-way, angled
K2 = Micro USB type B receptacle, bottom mount
S1 = Switch, tactile, 24 V, 50 mA, 6x6 mm
3V Lithium battery CR2032
Battery holder 20mm coin cell
Misc.
ST Nucleo-F411RE board
PCB 160157-1 V1.3
Additional parts for Nucleo board
X3 = Crystal 16 MHz, 18 pF
C33,C34 = 22pF,50V, 0603
Discussie (6 opmerking(en))
Linberry 4 jaar geleden
Software\160157-11\160157 ESP8266 sketch\weathertimeget_el\weathertimeget_el.ino: In function 'void docommand(char)':
C:\Users\Berry\Desktop\Weather-Display\Software\160157-11\160157 ESP8266 sketch\weathertimeget_el\weathertimeget_el.ino:225:7: warning: unused variable 'pre' [-Wunused-variable]
int pre;
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiGeneric.cpp:155:127: warning: unused parameter 'e' [-Wunused-parameter]
WiFiEventHandler handler = std::make_shared<WiFiEventHandlerOpaque>(WIFI_EVENT_STAMODE_DHCP_TIMEOUT, [f](System_Event_t* e){
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiGeneric.cpp:454:6: warning: unused parameter 'name' [-Wunused-parameter]
void wifi_dns_found_callback(const char *name, ip_addr_t *ipaddr, void *callback_arg) {
^
In file included from C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClient.cpp:41:0:
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:250:15: warning: unused parameter 'pcb' [-Wunused-parameter]
err_t _sent(tcp_pcb* pcb, uint16_t len) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:278:20: warning: unused parameter 'pcb' [-Wunused-parameter]
recv_ret_t _recv(tcp_pcb* pcb, pbuf* pb, err_t err) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:278:20: warning: unused parameter 'err' [-Wunused-parameter]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:303:14: warning: unused parameter 'err' [-Wunused-parameter]
void _error(err_t err) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:315:15: warning: unused parameter 'pcb' [-Wunused-parameter]
err_t _poll(tcp_pcb* pcb) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClient.cpp:136:8: warning: unused parameter 'err' [-Wunused-parameter]
int8_t WiFiClient::_connected(void* pcb, int8_t err)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClient.cpp:145:6: warning: unused parameter 'err' [-Wunused-parameter]
void WiFiClient::_err(int8_t err)
^
In file included from C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:40:0:
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:250:15: warning: unused parameter 'pcb' [-Wunused-parameter]
err_t _sent(tcp_pcb* pcb, uint16_t len) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:278:20: warning: unused parameter 'pcb' [-Wunused-parameter]
recv_ret_t _recv(tcp_pcb* pcb, pbuf* pb, err_t err) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:278:20: warning: unused parameter 'err' [-Wunused-parameter]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:303:14: warning: unused parameter 'err' [-Wunused-parameter]
void _error(err_t err) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:315:15: warning: unused parameter 'pcb' [-Wunused-parameter]
err_t _poll(tcp_pcb* pcb) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:182:27: warning: unused parameter 'fd' [-Wunused-parameter]
static ClientContext* getIOContext(int fd) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp: In function 'int ax_port_read(int, uint8_t*, size_t)':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:539:53: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
if (!_client || _client->state() != ESTABLISHED && !_client->getSize()) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp: At global scope:
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:567:16: warning: unused parameter 'filename' [-Wunused-parameter]
extern "C" int ax_get_file(const char *filename, uint8_t **buf) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:579:18: warning: unused parameter 'file' [-Wunused-parameter]
extern "C" void* ax_port_malloc(size_t size, const char* file, int line) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:579:18: warning: unused parameter 'line' [-Wunused-parameter]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:596:18: warning: unused parameter 'file' [-Wunused-parameter]
extern "C" void* ax_port_realloc(void* ptr, size_t size, const char* file, int line) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:596:18: warning: unused parameter 'line' [-Wunused-parameter]
In file included from C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiServer.cpp:38:0:
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:250:15: warning: unused parameter 'pcb' [-Wunused-parameter]
err_t _sent(tcp_pcb* pcb, uint16_t len) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:278:20: warning: unused parameter 'pcb' [-Wunused-parameter]
recv_ret_t _recv(tcp_pcb* pcb, pbuf* pb, err_t err) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:278:20: warning: unused parameter 'err' [-Wunused-parameter]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:303:14: warning: unused parameter 'err' [-Wunused-parameter]
void _error(err_t err) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/ClientContext.h:315:15: warning: unused parameter 'pcb' [-Wunused-parameter]
err_t _poll(tcp_pcb* pcb) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiServer.cpp:99:12: warning: unused parameter 'status' [-Wunused-parameter]
WiFiClient WiFiServer::available(byte* status) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiServer.cpp:134:8: warning: unused parameter 'buffer' [-Wunused-parameter]
size_t WiFiServer::write(const uint8_t *buffer, size_t size) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiServer.cpp:134:8: warning: unused parameter 'size' [-Wunused-parameter]
In file included from C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0/tools/sdk/lwip/include/lwip/opt.h:46:0,
from C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiServer.cpp:35:
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiServer.cpp: In member function 'int8_t WiFiServer::_accept(tcp_pcb*, int8_t)':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0/tools/sdk/lwip/include/lwip/debug.h:66:32: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
LWIP_PLATFORM_ASSERT(message); } while(0)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0/tools/sdk/lwip/include/lwip/tcp.h:335:36: note: in expansion of macro 'LWIP_ASSERT'
#define tcp_accepted(pcb) LWIP_ASSERT("pcb->state == LISTEN (called for wrong pcb?)", \
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiServer.cpp:155:5: note: in expansion of macro 'tcp_accepted'
tcp_accepted(_pcb);
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiServer.cpp: At global scope:
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiServer.cpp:151:8: warning: unused parameter 'err' [-Wunused-parameter]
int8_t WiFiServer::_accept(tcp_pcb* apcb, int8_t err) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiServer.cpp:159:6: warning: unused parameter 'client' [-Wunused-parameter]
void WiFiServer::_discard(ClientContext* client) {
^
In file included from C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\WiFiUdp.cpp:41:0:
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/UdpContext.h:329:10: warning: unused parameter 'upcb' [-Wunused-parameter]
void _recv(udp_pcb *upcb, pbuf *pb,
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/UdpContext.h:329:10: warning: unused parameter 'addr' [-Wunused-parameter]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\include/UdpContext.h:329:10: warning: unused parameter 'port' [-Wunused-parameter]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\cont_util.c: In function 'cont_init':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\cont_util.c:35:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int pos = 0; pos < sizeof(cont->stack) / 4; pos++)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_postmortem.c: In function '__custom_crash_callback':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_postmortem.c:48:56: warning: unused parameter 'rst_info' [-Wunused-parameter]
extern void __custom_crash_callback( struct rst_info * rst_info, uint32_t stack, uint32_t stack_end ) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_postmortem.c:48:75: warning: unused parameter 'stack' [-Wunused-parameter]
extern void __custom_crash_callback( struct rst_info * rst_info, uint32_t stack, uint32_t stack_end ) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_postmortem.c:48:91: warning: unused parameter 'stack_end' [-Wunused-parameter]
extern void __custom_crash_callback( struct rst_info * rst_info, uint32_t stack, uint32_t stack_end ) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_postmortem.c: In function '__assert_func':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_postmortem.c:185:78: warning: unused parameter 'what' [-Wunused-parameter]
void __assert_func(const char *file, int line, const char *func, const char *what) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_timer.c: In function 'timer1_isr_handler':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_timer.c:32:47: warning: unused parameter 'para' [-Wunused-parameter]
void ICACHE_RAM_ATTR timer1_isr_handler(void *para){
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_timer.c: In function 'timer0_isr_handler':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_timer.c:79:47: warning: unused parameter 'para' [-Wunused-parameter]
void ICACHE_RAM_ATTR timer0_isr_handler(void* para){
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_wiring.c: In function 'delay_end':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_wiring.c:38:22: warning: unused parameter 'arg' [-Wunused-parameter]
void delay_end(void* arg) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_wiring.c: In function 'micros_overflow_tick':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_wiring.c:55:33: warning: unused parameter 'arg' [-Wunused-parameter]
void micros_overflow_tick(void* arg) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_wiring_digital.c: In function 'interrupt_handler':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_wiring_digital.c:112:46: warning: unused parameter 'arg' [-Wunused-parameter]
void ICACHE_RAM_ATTR interrupt_handler(void *arg) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\heap.c: In function 'pvPortMalloc':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\heap.c:10:61: warning: unused parameter 'file' [-Wunused-parameter]
void* ICACHE_RAM_ATTR pvPortMalloc(size_t size, const char* file, int line)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\heap.c:10:71: warning: unused parameter 'line' [-Wunused-parameter]
void* ICACHE_RAM_ATTR pvPortMalloc(size_t size, const char* file, int line)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\heap.c: In function 'vPortFree':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\heap.c:15:55: warning: unused parameter 'file' [-Wunused-parameter]
void ICACHE_RAM_ATTR vPortFree(void *ptr, const char* file, int line)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\heap.c:15:65: warning: unused parameter 'line' [-Wunused-parameter]
void ICACHE_RAM_ATTR vPortFree(void *ptr, const char* file, int line)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\heap.c: In function 'pvPortCalloc':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\heap.c:20:75: warning: unused parameter 'file' [-Wunused-parameter]
void* ICACHE_RAM_ATTR pvPortCalloc(size_t count, size_t size, const char* file, int line)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\heap.c:20:85: warning: unused parameter 'line' [-Wunused-parameter]
void* ICACHE_RAM_ATTR pvPortCalloc(size_t count, size_t size, const char* file, int line)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\heap.c: In function 'pvPortRealloc':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\heap.c:25:73: warning: unused parameter 'file' [-Wunused-parameter]
void* ICACHE_RAM_ATTR pvPortRealloc(void *ptr, size_t size, const char* file, int line)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\heap.c:25:83: warning: unused parameter 'line' [-Wunused-parameter]
void* ICACHE_RAM_ATTR pvPortRealloc(void *ptr, size_t size, const char* file, int line)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\heap.c: In function 'pvPortZalloc':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\heap.c:30:61: warning: unused parameter 'file' [-Wunused-parameter]
void* ICACHE_RAM_ATTR pvPortZalloc(size_t size, const char* file, int line)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\heap.c:30:71: warning: unused parameter 'line' [-Wunused-parameter]
void* ICACHE_RAM_ATTR pvPortZalloc(size_t size, const char* file, int line)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\time.c: In function 'clock_gettime':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\time.c:77:29: warning: unused parameter 'unused' [-Wunused-parameter]
int clock_gettime(clockid_t unused, struct timespec *tp)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\time.c: In function 'gettimeofday':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\time.c:119:44: warning: unused parameter 'tzp' [-Wunused-parameter]
int gettimeofday(struct timeval *tp, void *tzp)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\uart.c: In function 'uart_ignore_char':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\uart.c:356:35: warning: unused parameter 'c' [-Wunused-parameter]
static void uart_ignore_char(char c)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\libb64\cdecode.c: In function 'base64_decode_value':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\libb64\cdecode.c:14:3: warning: comparison is always false due to limited range of data type [-Wtype-limits]
if (value_in < 0 || value_in > decoding_size) return -1;
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\libb64\cdecode.c: In function 'base64_decode_block':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\libb64\cdecode.c:40:9: warning: comparison is always false due to limited range of data type [-Wtype-limits]
} while (fragment < 0);
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\libb64\cdecode.c:50:9: warning: comparison is always false due to limited range of data type [-Wtype-limits]
} while (fragment < 0);
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\libb64\cdecode.c:61:9: warning: comparison is always false due to limited range of data type [-Wtype-limits]
} while (fragment < 0);
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\libb64\cdecode.c:72:9: warning: comparison is always false due to limited range of data type [-Wtype-limits]
} while (fragment < 0);
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs\spiffs_hydrogen.c: In function 'SPIFFS_buffer_bytes_for_filedescs':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs\spiffs_hydrogen.c:24:49: warning: unused parameter 'fs' [-Wunused-parameter]
u32_t SPIFFS_buffer_bytes_for_filedescs(spiffs *fs, u32_t num_descs) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\Esp.cpp:84:6: warning: unused parameter 'timeout_ms' [-Wunused-parameter]
void EspClass::wdtEnable(uint32_t timeout_ms)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\Esp.cpp: In member function 'uint32_t EspClass::getSketchSize()':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\Esp.cpp:437:45: warning: missing initializer for member 'section_header_t::size' [-Wmissing-field-initializers]
section_header_t section_header = {0};
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\Schedule.cpp:17:13: warning: 'void init_lists()' defined but not used [-Wunused-function]
static void init_lists()
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\abi.cpp:105:6: warning: unused parameter 'str' [-Wunused-parameter]
void __throw_logic_error(const char* str)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\abi.cpp:110:6: warning: unused parameter 'str' [-Wunused-parameter]
void __throw_out_of_range(const char* str)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_main.cpp:54:5: warning: unused parameter 'func' [-Wunused-parameter]
int atexit(void (*func)()) {
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\core_esp8266_main.cpp:127:13: warning: unused parameter 'events' [-Wunused-parameter]
static void loop_task(os_event_t *events) {
^
In file included from C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.cpp:24:0:
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h: In constructor 'SPIFFSImpl::SPIFFSImpl(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_config::hal_write_f' [-Wmissing-field-initializers]
, _maxOpenFds(maxOpenFds)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_config::hal_erase_f' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_config::phys_size' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_config::phys_addr' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_config::phys_erase_block' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_config::log_block_size' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_config::log_page_size' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::block_count' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::free_cursor_block_ix' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::free_cursor_obj_lu_entry' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::cursor_block_ix' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::cursor_obj_lu_entry' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::lu_work' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::work' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::fd_space' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::fd_count' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::err_code' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::free_blocks' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::stats_p_allocated' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::stats_p_deleted' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::cleaning' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::max_erase_count' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::cache' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::cache_size' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::check_cb_f' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::file_cb_f' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::mounted' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::user_data' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:57:29: warning: missing initializer for member 'spiffs_t::config_magic' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h: In member function 'bool SPIFFSImpl::_tryMount()':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:179:34: warning: missing initializer for member 'spiffs_config::hal_write_f' [-Wmissing-field-initializers]
spiffs_config config = {0};
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:179:34: warning: missing initializer for member 'spiffs_config::hal_erase_f' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:179:34: warning: missing initializer for member 'spiffs_config::phys_size' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:179:34: warning: missing initializer for member 'spiffs_config::phys_addr' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:179:34: warning: missing initializer for member 'spiffs_config::phys_erase_block' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:179:34: warning: missing initializer for member 'spiffs_config::log_block_size' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:179:34: warning: missing initializer for member 'spiffs_config::log_page_size' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h: At global scope:
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:242:17: warning: unused parameter 'type' [-Wunused-parameter]
static void _check_cb(spiffs_check_type type, spiffs_check_report report,
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:242:17: warning: unused parameter 'report' [-Wunused-parameter]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:242:17: warning: unused parameter 'arg1' [-Wunused-parameter]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:242:17: warning: unused parameter 'arg2' [-Wunused-parameter]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h: In constructor 'SPIFFSFileImpl::SPIFFSFileImpl(SPIFFSImpl*, spiffs_file)':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:272:21: warning: missing initializer for member 'spiffs_stat::size' [-Wmissing-field-initializers]
, _written(false)
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:272:21: warning: missing initializer for member 'spiffs_stat::type' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:272:21: warning: missing initializer for member 'spiffs_stat::pix' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:272:21: warning: missing initializer for member 'spiffs_stat::name' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h: In member function 'void SPIFFSFileImpl::_getStat() const':
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:379:19: warning: missing initializer for member 'spiffs_stat::size' [-Wmissing-field-initializers]
_stat = {0};
^
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:379:19: warning: missing initializer for member 'spiffs_stat::type' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:379:19: warning: missing initializer for member 'spiffs_stat::pix' [-Wmissing-field-initializers]
C:\Users\Berry\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\spiffs_api.h:379:19: warning: missing initializer for member 'spiffs_stat::name' [-Wmissing-field-initializers]
Der Sketch verwendet 246.321 Bytes (56%) des Programmspeicherplatzes. Das Maximum sind 434.160 Bytes.
Globale Variablen verwenden 34.756 Bytes (42%) des dynamischen Speichers, 47.164 Bytes für lokale Variablen verbleiben. Das Maximum sind 81.920 Bytes.
Linberry 5 jaar geleden
why does the upload to the ESP module stop abruptly.
I connected my F411RE with the Computer and started the upload for the ESP8266 module with 9600 baud.
After 32%, in the next line, the upload stops and the flashing blue led on the WiFi module turns off. I have repeated the procedure, the standstill always comes at the same place.
Here are the compiler messages:
warning: espcomm_send_command: wrong direction/command: 0x01 0x03, expected 0x01 0x08
C:\Users\Berry\Desktop\Weather-Display\Software\160157-11\160157 ESP8266 sketch\weathertimeget_el\weathertimeget_el.ino: In function 'void docommand(char)':
C:\Users\Berry\Desktop\Weather-Display\Software\160157-11\160157 ESP8266 sketch\weathertimeget_el\weathertimeget_el.ino:226:7: warning: unused variable 'pre' [-Wunused-variable]
int pre;
^
Der Sketch verwendet 246.313 Bytes (56%) des Programmspeicherplatzes. Das Maximum sind 434.160 Bytes.
Globale Variablen verwenden 34.740 Bytes (42%) des dynamischen Speichers, 47.180 Bytes für lokale Variablen verbleiben. Das Maximum sind 81.920 Bytes.
warning: espcomm_send_command: wrong direction/command: 0x01 0x03, expected 0x01 0x08
Uploading 250464 bytes from C:\Users\Berry\AppData\Local\Temp\build1b216593841d332d131b0177e3e1db9d.tmp/weathertimeget_el.ino.bin to flash at 0x00000000
................................................................................ [ 32% ]
.......................
What can i do to correct this error?
I am using Arduino 1.6.9.
mny tnx
scrsh.JPG (37kb)
Daniel Dancopy Fernandes 5 jaar geleden
I repeat, an excellent project,
Thank you
Daniel Dancopy Fernandes 5 jaar geleden
Daniel Dancopy Fernandes 5 jaar geleden
I found the design of your project beautiful; if you make it available or only with ESP and SPI display, if you can share it with me, my address is: meuviolino@hotmail.com
PS. Or even other projects with ESP and SPI display.
Thanks++
Daniel
Nickelgrass 5 jaar geleden
yes of course the ESP's are by far powerfull enough to do this on thier own.
But this project is not only for the sake of displaying weather. It was also intended as a educational project (for me and others). It was a nice and well defined task to start with a F4. That is why I used this. And it leaves enough resources for a ton of other features. Just as my opinion the Nucleo board are quite cheap in comparison as what you get for them. But also here they do not compare to the ESP's, I see that too, they are super cheap.
Kind regards
Nickelgrass 6 jaar geleden
Here is a preview of the case. It is without any warranty.
Nickelgrass 6 jaar geleden
There is no guarantee on these files. Print at your own responsibility.
If anyone makes one please post some pics :-)
HaSch 6 jaar geleden
macintosh 7 jaar geleden
Can you upload the file for the 3D Printer ?
Does the forecast runs immediately ?
My display show only 0,0
with best regards
macintosh
macintosh 7 jaar geleden
this options I try already..nothing will work
best regards
macintosh
Lucky 7 jaar geleden
Best regards,
Luc
Nickelgrass 7 jaar geleden
Unfortunately the sun did not work out the first time ...
The case also has a 3D printed button in the front.