main/iotbalkon.c

Mon, 27 Mar 2023 22:13:21 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 27 Mar 2023 22:13:21 +0200
changeset 1
1c9894662795
parent 0
f8b0268c8d0a
child 3
e5d91caa6ab4
permissions
-rw-r--r--

Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.

1
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
1 /**
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
2 * @file iotbalkon.c
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
3 * @brief iotbalkon project.
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
4 */
0
f8b0268c8d0a Initial project setup
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5
1
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
6 #include "config.h"
0
f8b0268c8d0a Initial project setup
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7
f8b0268c8d0a Initial project setup
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 static const char *TAG = "iotbalkon";
f8b0268c8d0a Initial project setup
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9
1
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
10
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
11 static TaskHandle_t xTaskBMP280 = NULL;
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
12
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
13 extern BMP280_State *bmp280_state; ///< I2C state
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
14 extern SemaphoreHandle_t xSemaphoreBMP280; ///< I2C lock semaphore
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
15 extern bmp280_params_t bmp280_params;
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
16 extern bmp280_t bmp280_dev;
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
17
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
18
0
f8b0268c8d0a Initial project setup
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 void app_main(void)
f8b0268c8d0a Initial project setup
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 {
1
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
21 #ifdef CONFIG_CODE_PRODUCTION
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
22 ESP_LOGI(TAG, "Starting production");
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
23 #endif
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
24 #ifdef CONFIG_CODE_TESTING
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
25 ESP_LOGI(TAG, "Starting testing");
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
26 #endif
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
27
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
28 ESP_ERROR_CHECK(i2cdev_init());
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
29
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
30 bmp280_init_default_params(&bmp280_params);
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
31 memset(&bmp280_dev, 0, sizeof(bmp280_t));
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
32
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
33 i2c_dev_t dev = { 0 };
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
34 dev.cfg.sda_io_num = CONFIG_I2C_MASTER_SDA;
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
35 dev.cfg.scl_io_num = CONFIG_I2C_MASTER_SCL;
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
36 dev.cfg.master.clk_speed = 1000000;
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
37
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
38 dev.addr = 0x39;
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
39 if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) {
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
40 ESP_LOGI(TAG, "Found ADPS-9930");
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
41 }
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
42 dev.addr = 0x40;
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
43 if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) {
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
44 ESP_LOGI(TAG, "Found INA219 Battery");
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
45 }
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
46 dev.addr = 0x41;
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
47 if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) {
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
48 ESP_LOGI(TAG, "Found INA219 Solar");
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
49 }
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
50 dev.addr = 0x76;
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
51 if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) {
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
52 ESP_ERROR_CHECK(bmp280_init_desc(&bmp280_dev, BMP280_I2C_ADDRESS_0, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL));
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
53 ESP_ERROR_CHECK(bmp280_init(&bmp280_dev, &bmp280_params));
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
54 ESP_LOGI(TAG, "Found BMP280 @ 0x76 id: 0x%02x", bmp280_dev.id);
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
55 }
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
56 dev.addr = 0x77;
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
57 if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) {
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
58 ESP_LOGI(TAG, "Found BMP280 @ 0x77");
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
59 }
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
60
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
61 /*
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
62 * Create FreeRTOS tasks
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
63 */
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
64 xSemaphoreBMP280 = xSemaphoreCreateMutex();
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
65
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
66 xTaskCreate(&task_bmp280, "task_bmp280", 2560, NULL, 8, &xTaskBMP280);
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
67
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
68 /*
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
69 * Main application loop.
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
70 */
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
71 while (1) {
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
72 request_bmp280();
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
73 vTaskDelay(2000 / portTICK_PERIOD_MS);
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
74 }
1c9894662795 Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents: 0
diff changeset
75 // Not reached.
0
f8b0268c8d0a Initial project setup
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76 }

mercurial