Нека този път да се съсредоточим върху генерирането на смислени стойности. Винаги можем да свържем различен сензор или да прочетем информация от платката. Именно тези данни са важни за нас. В този пример ще направим кратка апликация, която просто чете данни и ги показва в серийната конзола. Това не е нищо впечатляващо, но те могат да се използват за други по-готини примери и да ни служат за реални данни при тестване на безжичната комуникация или сценарии, в който ни трябват прост някакви числа. Целта е да получим реални рандом стойности, които са в определен диапазон и можем да ги интерпретираме и валидираме дали са смислено верни. Затова нека да се опитаме да прочетем вътрешният сензор за температура на процесора 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, което го прави идеален за четене на стойности от сензори, без да имаме кабелна връзка към платката. Оптимизираният разход на енергия и възможността му за дълбоко заспиване го прави и идеален за задачи, при които е нужен малък разход на енергия.
Весело програмиране!