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