Просто четене и визуализиране на данни с ESP32

Нека този път да се съсредоточим върху генерирането на смислени стойности. Винаги можем да свържем различен сензор или да прочетем информация от платката. Именно тези данни са важни за нас. В този пример ще направим кратка апликация, която просто чете данни и ги показва в серийната конзола. Това не е нищо впечатляващо, но те могат да се използват за други по-готини примери и да ни служат за реални данни при тестване на безжичната комуникация или сценарии, в който ни трябват прост някакви числа. Целта е да получим реални рандом стойности, които са в определен диапазон и можем да ги интерпретираме и валидираме дали са смислено верни. Затова нека да се опитаме да прочетем вътрешният сензор за температура на процесора ESP32 (T-Display-S3 ESP32). Повече информация за него може да намерите тук и тук.

Но нека започнем, отворете Arduino IDE и започнете нов документ от менюто File -> New. Това ще отвори нов лист в средата за програмиране.

Копирайте и вмъкнете във файла следният код:

#include "driver/temp_sensor.h"
void initTempSensor(){
    temp_sensor_config_t temp_sensor = TSENS_CONFIG_DEFAULT();
    temp_sensor.dac_offset = TSENS_DAC_L2; 
    temp_sensor_set_config(temp_sensor);
    temp_sensor_start();
}
void setup() {
  Serial.begin(9600);
  initTempSensor();
}
void loop() {
  float result = 0;
  temp_sensor_read_celsius(&result);
  Serial.print("Temperature:");
  Serial.println(result);
  delay(5000);
}

С функцията initTempSensor се инициализира кода и се правят някой базови настройки. За повече информация относно отделните параметри и функции, може да прочетете в API Reference страницата. В главната loop функция може да зададем забавяне (delay) в милисекунди. Тук то е избрано, така че между вземането на температурната стойност от борда да има 5 сек забавяне. Това е сравнително малка стойност, която генерира множество резултати. Ако имаме величина, която много по-плавно се променя, може да изберем доста по-висока стойност и така да изразходваме по-малко памет за запазване, ако пазим стойностите локално или по-малко енергия и по-малко трафик, ако предаваме резултатите безжично.  

Качете кода на борда като натиснете бутона “Upload” (втория бутон на Arduino IDE, горе в ляво, зелена стрелка в кръг). Изчакайте индикатора за качване в долния десен ъгъл да свърши и отворете серийният монитор (Tools -> Serial monitor). Така можем да видим измерените стойности в целзий.   

Стойностите са:

Има и възможност да представим стойностите графично. Това можем да направим, като изберем от менюто плотера (Tool -> Serial ploter). Начертаната графика изглежда така:

В тази статия видяхме, как може да се направи съвсем проста програма и да се покажат няколко стойности в конзолата. Разбира се има много по-удобни начини, за да се съхраняват и показват стойности, но те са и по-сложни. Борда предлага няколко безжични начина като Bluethoot и WiFi, което го прави идеален за четене на стойности от сензори, без да имаме кабелна връзка към платката. Оптимизираният разход на енергия и възможността му за дълбоко заспиване го прави и идеален за задачи, при които е нужен малък разход на енергия.

Весело програмиране!

Comments

No comments yet. Why don’t you start the discussion?

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *