Initial commit for dht11-lcd example.
This commit is contained in:
parent
555e2096b9
commit
7d87b35b1c
18
esp/cpp/08_dht11-lcd/CMakeLists.txt
Normal file
18
esp/cpp/08_dht11-lcd/CMakeLists.txt
Normal file
@ -0,0 +1,18 @@
|
||||
# For more information about build system see
|
||||
# https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/build-system.html
|
||||
# The following five lines of boilerplate have to be in your project's
|
||||
# CMakeLists in this exact order for cmake to work correctly
|
||||
cmake_minimum_required(VERSION 3.26)
|
||||
|
||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||
|
||||
project(
|
||||
#[[NAME]] aht20
|
||||
VERSION 0.1
|
||||
DESCRIPTION "Using the AHT20 sensor with ESP-IDF over I2C"
|
||||
LANGUAGES CXX
|
||||
)
|
||||
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
|
||||
# For writing pure cmake components, see the documentation
|
||||
# https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/build-system.html#writing-pure-cmake-components
|
||||
idf_build_set_property(COMPILE_OPTIONS "-Wno-error" APPEND)
|
||||
27
esp/cpp/08_dht11-lcd/README.md
Normal file
27
esp/cpp/08_dht11-lcd/README.md
Normal file
@ -0,0 +1,27 @@
|
||||
# 08_dht11-lcd
|
||||
|
||||
Using the ESP IDF for reading data from a DHT11 sensor and displaying it on an LCD.
|
||||
|
||||
[ESP IDF - I2C](https://docs.espressif.com/projects/esp-idf/en/v5.3.2/esp32/api-reference/peripherals/i2c.html)
|
||||
|
||||
[ESP IDF - LCD](https://docs.espressif.com/projects/esp-idf/en/v5.3.2/esp32/api-reference/peripherals/lcd/index.html)
|
||||
|
||||
[ESP IDF - FreeRTOS](https://docs.espressif.com/projects/esp-idf/en/v5.3.2/esp32/api-reference/system/freertos.html)
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
For instructions on setting up the ESP-IDF see [04_-esp-idf-arduino](./../04_esp-idf-arduino)
|
||||
|
||||
To build this example run the following commands.
|
||||
|
||||
```bash
|
||||
source ~/path/to/esp-idf/export.sh
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make -j $(nproc)
|
||||
make flash
|
||||
```
|
||||
BIN
esp/cpp/08_dht11-lcd/example.gif
Normal file
BIN
esp/cpp/08_dht11-lcd/example.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 887 KiB |
7
esp/cpp/08_dht11-lcd/main/CMakeLists.txt
Normal file
7
esp/cpp/08_dht11-lcd/main/CMakeLists.txt
Normal file
@ -0,0 +1,7 @@
|
||||
idf_component_register(
|
||||
SRCS
|
||||
main.cpp
|
||||
main.h i2c.h
|
||||
INCLUDE_DIRS .
|
||||
REQUIRES driver
|
||||
)
|
||||
3
esp/cpp/08_dht11-lcd/main/idf_component.yml
Normal file
3
esp/cpp/08_dht11-lcd/main/idf_component.yml
Normal file
@ -0,0 +1,3 @@
|
||||
## IDF Component Manager Manifest File
|
||||
dependencies:
|
||||
idf: '>=5.3.0'
|
||||
22
esp/cpp/08_dht11-lcd/main/main.cpp
Normal file
22
esp/cpp/08_dht11-lcd/main/main.cpp
Normal file
@ -0,0 +1,22 @@
|
||||
/*#############################################################################
|
||||
## Author: Shaun Reed ##
|
||||
## Legal: All Content (c) 2025 Shaun Reed, all rights reserved ##
|
||||
## ##
|
||||
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com ##
|
||||
##############################################################################
|
||||
*/
|
||||
|
||||
#include "i2c.h"
|
||||
|
||||
// Pin may vary based on your schematic.
|
||||
#define PIN_SDA GPIO_NUM_21
|
||||
#define PIN_SCL GPIO_NUM_22
|
||||
#define PIN_RST (-1)
|
||||
|
||||
I2C i2c(PIN_SDA, PIN_SCL, PIN_RST);
|
||||
|
||||
extern "C" void app_main(void)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
39
esp/cpp/08_dht11-lcd/main/main.h
Normal file
39
esp/cpp/08_dht11-lcd/main/main.h
Normal file
@ -0,0 +1,39 @@
|
||||
/*#############################################################################
|
||||
## Author: Shaun Reed ##
|
||||
## Legal: All Content (c) 2025 Shaun Reed, all rights reserved ##
|
||||
## ##
|
||||
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com ##
|
||||
##############################################################################
|
||||
*/
|
||||
#include "display.h"
|
||||
#include "ssd1306.h"
|
||||
|
||||
// Pin may vary based on your schematic.
|
||||
#define PIN_SDA GPIO_NUM_21
|
||||
#define PIN_SCL GPIO_NUM_22
|
||||
#define PIN_RST (-1)
|
||||
|
||||
I2C i2c(PIN_SDA, PIN_SCL, PIN_RST);
|
||||
|
||||
extern "C" void app_main(void)
|
||||
{
|
||||
SSD1306 ssd1306(i2c);
|
||||
Display d(ssd1306);
|
||||
|
||||
d.set_text("Test test 12345678910",
|
||||
"test-text1",
|
||||
LV_LABEL_LONG_SCROLL,
|
||||
LV_ALIGN_CENTER);
|
||||
|
||||
d.set_text("Test test changing text",
|
||||
"test-text1",
|
||||
LV_LABEL_LONG_SCROLL,
|
||||
LV_ALIGN_CENTER);
|
||||
|
||||
d.set_text("Hello hello hello hello hello hello hello hello!", "test-text2");
|
||||
|
||||
d.set_text("A random sentence with no meaning at all.",
|
||||
"test-text3",
|
||||
LV_LABEL_LONG_CLIP,
|
||||
LV_ALIGN_BOTTOM_MID);
|
||||
}
|
||||
BIN
esp/cpp/08_dht11-lcd/schematic.png
Normal file
BIN
esp/cpp/08_dht11-lcd/schematic.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 227 KiB |
2240
esp/cpp/08_dht11-lcd/sdkconfig
Normal file
2240
esp/cpp/08_dht11-lcd/sdkconfig
Normal file
File diff suppressed because it is too large
Load Diff
92
esp/cpp/components/i2c.h
Normal file
92
esp/cpp/components/i2c.h
Normal file
@ -0,0 +1,92 @@
|
||||
/*#############################################################################
|
||||
## Author: Shaun Reed ##
|
||||
## Legal: All Content (c) 2025 Shaun Reed, all rights reserved ##
|
||||
## ##
|
||||
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com ##
|
||||
##############################################################################
|
||||
*/
|
||||
#ifndef I2C_H
|
||||
#define I2C_H
|
||||
|
||||
#define I2C_BUS_PORT 0
|
||||
|
||||
#include <esp_log.h>
|
||||
#include <driver/i2c_master.h>
|
||||
|
||||
/**
|
||||
* Encapsulates ESP I2C creation and usage.
|
||||
*/
|
||||
struct I2C {
|
||||
/**
|
||||
* Construct and initialize an ESP I2C master bus.
|
||||
* An I2C constructor may only be called one time in any application.
|
||||
*
|
||||
* @param sda GPIO pin number for SDA
|
||||
* @param scl GPIO pin number for SCL
|
||||
* @param rst GPIO pin number for RST
|
||||
*/
|
||||
I2C(gpio_num_t sda, gpio_num_t scl, int rst = -1) :
|
||||
I2C((i2c_master_bus_config_t) {
|
||||
.i2c_port = I2C_BUS_PORT,
|
||||
.sda_io_num = sda,
|
||||
.scl_io_num = scl,
|
||||
.clk_source = I2C_CLK_SRC_DEFAULT,
|
||||
.glitch_ignore_cnt = 7,
|
||||
.flags {
|
||||
.enable_internal_pullup = true,
|
||||
},
|
||||
},
|
||||
rst
|
||||
) { }
|
||||
|
||||
/**
|
||||
* Construct an ESP I2C master bus given a specific ESP I2C configuration.
|
||||
* An I2C constructor may only be called one time in any application.
|
||||
*
|
||||
* @param config ESP I2C master bus configuration.
|
||||
* @param rst GPIO pin number for RST
|
||||
*/
|
||||
explicit I2C(i2c_master_bus_config_t config, int rst = -1) :
|
||||
esp_bus_config_(config),
|
||||
rst_num_(rst)
|
||||
{
|
||||
i2c_master_bus_handle_t i2c;
|
||||
ESP_LOGI(TAG, "Initializing new master I2C bus");
|
||||
ESP_ERROR_CHECK(i2c_new_master_bus(&esp_bus_config_, &i2c));
|
||||
}
|
||||
|
||||
~I2C() = default;
|
||||
|
||||
//
|
||||
// GETTERS
|
||||
|
||||
/**
|
||||
* ESP I2C master bus handle getter.
|
||||
* This will fail if an I2C instance was never constructed.
|
||||
*/
|
||||
static i2c_master_bus_handle_t get()
|
||||
{
|
||||
i2c_master_bus_handle_t i2c = nullptr;
|
||||
ESP_ERROR_CHECK(i2c_master_get_bus_handle(0, &i2c));
|
||||
return i2c;
|
||||
}
|
||||
|
||||
//
|
||||
// PUBLIC MEMBERS
|
||||
|
||||
/// ESP I2C master bus configuration used during initialization.
|
||||
i2c_master_bus_config_t esp_bus_config_;
|
||||
|
||||
/// RST GPIO pin number.
|
||||
int rst_num_;
|
||||
|
||||
private:
|
||||
|
||||
//
|
||||
// PRIVATE MEMBERS
|
||||
|
||||
/// Tag used for ESP logging.
|
||||
constexpr static const char *TAG = "I2C";
|
||||
};
|
||||
|
||||
#endif //I2C_H
|
||||
Loading…
x
Reference in New Issue
Block a user