#include "esp_log.h" #include #include #include #include // Die Header-Datei mit DS18B20-Funktionen #include #include #include struct appldata; float getTemp(); int getUpTime(); void getmac(); struct appldata{ uint8_t mac; float temp; float battaryVoltage; int upTime; }; struct appldata app_main() { //tiem delay vTaskDelay(5000 / portTICK_PERIOD_MS); //creat var vor mac addres uint8_t baseMac[6] = {0}; getmac(baseMac,6); //fill struct struct appldata send; send.mac = baseMac ; send.upTime = getUpTime(); send.temp = getTemp(); send.battaryVoltage = 3.3; //print mac printf("Station MAC: "); for (int i = 0; i < 5; i++) { printf("%02X:", (baseMac[i])); } printf("%02X\n", baseMac[5]); //print uptime int uptime = getUpTime(); printf("%d", uptime); //print temp float temp = getTemp(); printf("Temperature = %.4f\n", temp); //end func return send; } void getmac(uint8_t *buf, int count){ for(int i = 0; i < count; ++i) buf[i] = i; // Get MAC address of the WiFi station interface esp_read_mac(buf, ESP_MAC_WIFI_STA); } int getUpTime(){ int uptime = (xTaskGetTickCount() * (1000/configTICK_RATE_HZ)); return uptime; } float getTemp() { float temp = 0; // Create variable for handler ds18b20_handler_t sensor; // Check for any initialization failures if (!ds18b20_init(&sensor, GPIO_NUM_2, TEMP_RES_12_BIT)) { ESP_LOGE("TAG", "Failed to initalize DS18B20!"); return 0; // Exit } //Print temperature with 4 decimal places // (12 bit resolution measurement accuracy is 0.0625 Celsius) //ESP_LOGI("TAG", "Temperature = %.4f", temp); // Initalize conversion ds18b20_convert_temp(&sensor); temp = ds18b20_read_temp(&sensor); return temp; }