Repository navigation
Expand file tree
/
Copy pathExample.ino
More file actions
68 lines (56 loc) · 2.71 KB
/
Copy pathExample.ino
File metadata and controls
68 lines (56 loc) · 2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <Arduino.h>
#include "GS32SensorHub.h"
GS32SensorHub hub;
// Переменные для хранения назначенных ID
int8_t dht1_id;
int8_t dht2_id;
int8_t dht3_id;
int8_t dht4_id;
int8_t dht5_id;
int8_t dht6_id;
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("=== GS32SensorHub Demo Started ===");
// Регистрация датчиков (Тип, GPIO)
// Если датчик сломан или пин пустой — ничего страшного, ядро не зависнет!
dht1_id = hub.addDHT(DHT_11, 27); // DHT11 на GPIO 4
dht2_id = hub.addDHT(DHT_11, 19); // DHT22 на GPIO 16
dht3_id = hub.addDHT(DHT_11, 33); // DHT22 на GPIO 16
dht4_id = hub.addDHT(DHT_11, 21); // DHT22 на GPIO 16
dht5_id = hub.addDHT(DHT_11, 32); // DHT22 на GPIO 16
dht6_id = hub.addDHT(DHT_11, 17); // DHT22 на GPIO 16
// Инициализация
hub.begin();
// Можно задать частоту опроса (например, каждые 2500 мс)
hub.setUpdateInterval(2500);
}
void loop() {
// Регулярно обновляем данные (не блокирует процессор)
hub.tick();
// Демонстрация: выводим данные раз в 3 секунды
static uint32_t printTimer = 0;
if (millis() - printTimer >= 3000) {
printTimer = millis();
Serial.println("---------------------------------------------");
// 1. Получение данных КОНКРЕТНОГО датчика
GS32_SensorData singleSensor;
if (hub.getSensorData(dht1_id, singleSensor)) {
Serial.printf("[Single Read] ID: %d (DHT11) -> Temp: %.1f C, Hum: %.1f %%\n",
singleSensor.id, singleSensor.temperature, singleSensor.humidity);
} else {
Serial.printf("[Single Read] ID: %d (DHT11) -> Ошибка чтения / датчик не отвечает!\n", dht1_id);
}
// 2. Получение данных ВСЕХ зарегистрированных датчиков
const auto& allSensors = hub.getAllSensorsData();
Serial.printf("Всего датчиков в хабе: %d\n", allSensors.size());
for (const auto& sensor : allSensors) {
Serial.printf(" -> Датчик [ID %d | PIN %d]: ", sensor.id, sensor.pin);
if (sensor.isValid) {
Serial.printf("T = %.1f °C, H = %.1f %%\n", sensor.temperature, sensor.humidity);
} else {
Serial.println("НЕДОСТУПЕН (Wait / Offline)");
}
}
}
}