Я пытаюсь отправить показания датчика в базу данных firebase в реальном времени. он работает нормально, но проблема в том, что внезапно данные не сохраняются в порядке. Например, как показано ниже ... данные за час 10 сохраняются под часом 1 вместо полного сохранения ниже часа 9. (для пояснения ограничены знаком ***)

    "2021-2-9 0:30:0" : "Open",
    ***"2021-2-9 10:0:0" : "Closed",***
    ***"2021-2-9 10:30:0" : "Closed",***
    "2021-2-9 1:0:0" : "Open",
    "2021-2-9 1:30:0" : "Open",
    "2021-2-9 2:0:0" : "Open",
    "2021-2-9 2:30:0" : "Open",
    "2021-2-9 3:0:0" : "Open",
    "2021-2-9 3:30:0" : "Open",
    "2021-2-9 4:0:0" : "Open",
    "2021-2-9 4:30:0" : "Open",
    "2021-2-9 5:0:0" : "Open",
    "2021-2-9 5:30:0" : "Open",
    "2021-2-9 6:0:0" : "Open",
    "2021-2-9 6:30:0" : "Open",
    "2021-2-9 7:0:0" : "Open",
    "2021-2-9 7:30:0" : "Open",
    "2021-2-9 8:0:0" : "Open",
    "2021-2-9 8:30:0" : "Open",
    "2021-2-9 9:0:0" : "Open",
    ***"2021-2-9 9:30:0" : "Open"***

Я использовал DS1302 и ESP8266 и следующие библиотеки:

#include "FirebaseESP8266.h"

#include

#include

#include

#include

#include

#include

Это нормально? Пожалуйста помоги! Спасибо

-1
HAN 9 Фев 2021 в 11:14

1 ответ

Лучший ответ

Эта проблема связана с тем, что он отсортирован как строка.

Если ваши данные - 1, 2, 3, 10, они будут упорядочены 1, 10, 2, 3, потому что строка 10 стоит перед строкой 2

Так что измените способ хранения данных; либо как метку времени, преобразовать в double, либо это должна быть строка, используйте ггггммддччммсс

Таким образом, это "2021-2-9 10: 0: 0" было бы

20210209100000

И будет отсортировать после этого "2021-2-9 1: 30: 0"

20210209013000

Также используйте 24-часовой формат времени.

0
Jay 11 Фев 2021 в 17:37