Заход и восход солнца средствами rtc gprs shield v3, оптимизация кода в arduino

Тема в разделе "Флудилка", создана пользователем Андрей Новичок, 26 янв 2020.

Метки:
  1. SergeiL

    SergeiL Оракул Модератор

    Помнится года два назад, жена утром, в субботу, пришла на кухню, и офигела от открытой на мое ноуте страницы.
    "Сферическая система координат", расчет расстояния между точками на сфере.
    Это я скрипт писал для OpenHAB, для расчета расстояния между двумя координатами.
    Написал - работает, причем точно. Проверял по Google Maps.
    Прикольно было, пока не узнал, что в OpenHAB можно вычесть из одной координаты вторую и узнать расстояние между ними в метрах... :(
    Учите мат. часть, или ищите решения в интернете, дабы не изобретать велосипед.
     
  2. b707

    b707 Гуру

    Сергей, помню такие темы тут... наверно ваши.
    а не Вам я показывал на примере, что при расстояниях до 50-100км для расчета азимута с одной координаты на другую достаточно геометрии пятого класса? и для расстояния тоже
     
  3. SergeiL

    SergeiL Оракул Модератор

    Нет, но вы можете долго жаловаться администрации, и меня тоже выпилят с форума, как несогласного с вами.
    Флаг вам в руки.
     
  4. Поздно уже...
    "23:59" есть время. Десятки часов меняется в пределах {0,2}={00,11}, единицы часа в пределах {0,9}={0000,1001], единицы десятков минут в пределах {0,5}={000,110}, минуты меняются в пределах {0,9}={0000,1001}.
    Время в формате ЧАС:МИН занимает 13 бит.
    Заход и Восход в совокупности занимают 26 бит. Для хранения данных в PROGMEM следует использовать типы данных, либо два по byte, int8_t, uint8_t, либо один по unsigned long, int32_t, int32_t. И в первом и во втором случае в никуда уходят 3 и 6 бит соответственно.
    Полагаю, что вопрос даты-времени уже давным давно решён и есть оптимальное решение, которое, мне, увы, не известно.
    Это первое.

    Второе. Архитектуру решения представляю следующим образом:
    Один раз в сутки запускается процедура, которая на основе данных по восходу и заходу солнца формирует данные для включения и выключения потребителя. Параметров этой функции более одного. На основе двух или более , параметров формируется актуальная на текущий день таблица включений и отключений потребителя.