main/iotbalkon.c

changeset 24
74609f70411e
parent 23
2cc30d828d6e
child 26
29dc2064e2ce
equal deleted inserted replaced
23:2cc30d828d6e 24:74609f70411e
338 memset(&apds9930_dev, 0, sizeof(apds9930_t)); 338 memset(&apds9930_dev, 0, sizeof(apds9930_t));
339 339
340 i2c_dev_t dev = { 0 }; 340 i2c_dev_t dev = { 0 };
341 dev.cfg.sda_io_num = CONFIG_I2C_MASTER_SDA; 341 dev.cfg.sda_io_num = CONFIG_I2C_MASTER_SDA;
342 dev.cfg.scl_io_num = CONFIG_I2C_MASTER_SCL; 342 dev.cfg.scl_io_num = CONFIG_I2C_MASTER_SCL;
343 dev.cfg.master.clk_speed = 400000; 343 dev.cfg.master.clk_speed = 100000;
344 344
345 dev.addr = 0x39; 345 dev.addr = 0x39;
346 if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) { 346 if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) {
347 ESP_ERROR_CHECK(apds9930_init_desc(&apds9930_dev, 0x39, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL)); 347 ESP_ERROR_CHECK(apds9930_init_desc(&apds9930_dev, 0x39, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL));
348 ESP_ERROR_CHECK(apds9930_init(&apds9930_dev)); 348 ESP_ERROR_CHECK(apds9930_init(&apds9930_dev));
349 ESP_LOGI(TAG, "Found APDS-9930 id: 0x%02x", apds9930_dev.id); 349 ESP_LOGI(TAG, "Found APDS-9930 id: 0x%02x", apds9930_dev.id);
350 } else {
351 ESP_LOGW(TAG, "No APDS-9930 found");
350 } 352 }
351 dev.addr = 0x40; 353 dev.addr = 0x40;
352 if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) { 354 if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) {
353 ESP_ERROR_CHECK(ina219_init_desc(&ina219_b_dev, 0x40, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL)); 355 ESP_ERROR_CHECK(ina219_init_desc(&ina219_b_dev, 0x40, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL));
354 ESP_ERROR_CHECK(ina219_init(&ina219_b_dev)); 356 ESP_ERROR_CHECK(ina219_init(&ina219_b_dev));
355 ESP_LOGI(TAG, "Found INA219 @0x40 Battery"); 357 ESP_LOGI(TAG, "Found INA219 @0x40 Battery");
358 } else {
359 ESP_LOGW(TAG, "No INA219 @0x40 found");
356 } 360 }
357 dev.addr = 0x41; 361 dev.addr = 0x41;
358 if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) { 362 if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) {
359 ESP_ERROR_CHECK(ina219_init_desc(&ina219_s_dev, 0x41, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL)); 363 ESP_ERROR_CHECK(ina219_init_desc(&ina219_s_dev, 0x41, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL));
360 ESP_ERROR_CHECK(ina219_init(&ina219_s_dev)); 364 ESP_ERROR_CHECK(ina219_init(&ina219_s_dev));
361 ESP_LOGI(TAG, "Found INA219 @0x41 Solar"); 365 ESP_LOGI(TAG, "Found INA219 @0x41 Solar");
366 } else {
367 ESP_LOGW(TAG, "No INA219 @0x41 found");
362 } 368 }
363 dev.addr = 0x76; 369 dev.addr = 0x76;
364 if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) { 370 if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) {
365 ESP_ERROR_CHECK(bmp280_init_desc(&bmp280_dev, BMP280_I2C_ADDRESS_0, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL)); 371 ESP_ERROR_CHECK(bmp280_init_desc(&bmp280_dev, BMP280_I2C_ADDRESS_0, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL));
366 ESP_ERROR_CHECK(bmp280_init(&bmp280_dev, &bmp280_params)); 372 ESP_ERROR_CHECK(bmp280_init(&bmp280_dev, &bmp280_params));
369 dev.addr = 0x77; 375 dev.addr = 0x77;
370 if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) { 376 if (i2c_dev_probe(&dev, I2C_DEV_WRITE) == 0) {
371 ESP_ERROR_CHECK(bmp280_init_desc(&bmp280_dev, BMP280_I2C_ADDRESS_1, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL)); 377 ESP_ERROR_CHECK(bmp280_init_desc(&bmp280_dev, BMP280_I2C_ADDRESS_1, 0, CONFIG_I2C_MASTER_SDA, CONFIG_I2C_MASTER_SCL));
372 ESP_ERROR_CHECK(bmp280_init(&bmp280_dev, &bmp280_params)); 378 ESP_ERROR_CHECK(bmp280_init(&bmp280_dev, &bmp280_params));
373 ESP_LOGI(TAG, "Found BMP280 @ 0x77 id: 0x%02x", bmp280_dev.id); 379 ESP_LOGI(TAG, "Found BMP280 @ 0x77 id: 0x%02x", bmp280_dev.id);
374 } 380 } else {
381 ESP_LOGW(TAG, "No BMP280 found");
382 }
375 } 383 }
376 384
377 /* 385 /*
378 * Create FreeRTOS tasks 386 * Create FreeRTOS tasks
379 */ 387 */
406 vTaskDelay(5000 / portTICK_PERIOD_MS); 414 vTaskDelay(5000 / portTICK_PERIOD_MS);
407 } 415 }
408 416
409 while (1) { 417 while (1) {
410 if (OldState != State) { 418 if (OldState != State) {
411 ESP_LOGI(TAG, "Switch to state %d", State); 419 ESP_LOGD(TAG, "Switch to state %d", State);
412 OldState = State; 420 OldState = State;
413 } 421 }
414 422
415 gTimeInMillis = millis(); 423 gTimeInMillis = millis();
416 424
429 * Give the network stack a bit more time to setup 437 * Give the network stack a bit more time to setup
430 */ 438 */
431 vTaskDelay(250 / portTICK_PERIOD_MS); 439 vTaskDelay(250 / portTICK_PERIOD_MS);
432 request_mqtt(true); 440 request_mqtt(true);
433 Alarm &= ~AL_NOWIFI; 441 Alarm &= ~AL_NOWIFI;
434 ESP_LOGI(TAG, "Connected counter WiFi %d", DisCounter); 442 ESP_LOGD(TAG, "Connected counter WiFi %d", DisCounter);
435 DisCounter = 0; 443 DisCounter = 0;
436 } else { 444 } else {
437 /* 445 /*
438 * 15 seconds connection try. 446 * 15 seconds connection try.
439 */ 447 */
568 nvsio_write_u8((char *)"ds_active", 0); 576 nvsio_write_u8((char *)"ds_active", 0);
569 577
570 // Active mode, 60 seconds loop 578 // Active mode, 60 seconds loop
571 ST_LOOPS = 6; 579 ST_LOOPS = 6;
572 gTimeNext = millis() + ST_INTERVAL; 580 gTimeNext = millis() + ST_INTERVAL;
573 ESP_LOGI(TAG, "Start sleeploops"); 581 ESP_LOGD(TAG, "Start sleeploops");
574 State = State_Wait; 582 State = State_Wait;
575 } else { 583 } else {
576 ds_time = DS_TIME; 584 ds_time = DS_TIME;
577 if (solarVolts < 6) { 585 if (solarVolts < 6) {
578 // At night, increase the deep-sleep time. 586 // At night, increase the deep-sleep time.
593 break; 601 break;
594 602
595 case State_Measure: gTimeNext = millis() + ST_INTERVAL; 603 case State_Measure: gTimeNext = millis() + ST_INTERVAL;
596 getVoltsCurrent(); 604 getVoltsCurrent();
597 if (loopno >= ST_LOOPS) { 605 if (loopno >= ST_LOOPS) {
598 ESP_LOGI(TAG, "Enough loops, do connect"); 606 ESP_LOGD(TAG, "Enough loops, do connect");
599 getLightValues(); 607 getLightValues();
600 State = State_Connect_Wifi; 608 State = State_Connect_Wifi;
601 DisCounter = 0; 609 DisCounter = 0;
602 request_WiFi(true); 610 request_WiFi(true);
603 } else { 611 } else {

mercurial