Оглавление:

Простая система уведомлений ISS: 6 шагов (с изображениями)
Простая система уведомлений ISS: 6 шагов (с изображениями)

Видео: Простая система уведомлений ISS: 6 шагов (с изображениями)

Видео: Простая система уведомлений ISS: 6 шагов (с изображениями)
Видео: Home Assistant. Урок 11.1 Уведомления Telegram - создание бота, отправка сообщений, прием команд 2024, Ноябрь
Anonim
Простая система уведомлений ISS
Простая система уведомлений ISS
Простая система уведомлений ISS
Простая система уведомлений ISS

Что такое Международная космическая станция и почему вы хотите предсказать, где она находится?

Чтобы ответить на первый вопрос, мы можем найти ответ на веб-сайте НАСА. Вкратце:

Международная космическая станция - это большой космический корабль. Он вращается вокруг Земли. Это дом, в котором живут космонавты, а также космическая станция - это научная лаборатория. Многие страны работали вместе, чтобы построить его. Они также работают вместе, чтобы использовать его. Космическая станция состоит из множества частей. Кусочки были собраны в космосе космонавтами. Орбита космической станции находится на высоте около 220 миль над Землей. НАСА использует станцию, чтобы узнать о жизни и работе в космосе. Эти уроки помогут НАСА исследовать космос.

www.nasa.gov/audience/forstudents/k-4/stor…

На второй вопрос ответить немного сложнее - но я попробую.

Я радиолюбитель (или радиолюбитель) - мне всегда нравилось пользоваться маломощным портативным (5 Вт или меньше) радио и общаться с орбитальными спутниками. На борту МКС имеется радиооборудование.

В начале своей карьеры я довольно часто общался со спутниками, даже установил некоторые контакты с помощью только резиновой антенны-утки - что-то очень сложное. Я установил несколько контактов с ISS, используя APRS (автоматическая система отчетов о пакетах). Это было в 2013 году - давным-давно я был очень неактивен с тех пор. Это то, что я хотел вернуть тебе.

В 2013 году я написал пару сценариев PHP для командной строки, которые сообщали мне местонахождение МКС и помогали предсказать, когда это произойдет. В то время я использовал мигающий стик, и он менял цвет по мере приближения к МКС. Благодаря работе на https://open-notify.org и его API это было довольно легко сделать.

2018 - 5 лет спустя я наконец преобразовал эти PHP в Arduino C (на самом деле это было очень легко сделать).

В моем проекте используется D-Duino (который на самом деле является NodeMCU с OLED-экраном на борту), вот и все.

Я все еще использую тот же API из

Я также написал код для использования D1 Mini и WS2812 Shield (подробнее см. Мой проект руководителя Эрика).

Шаг 1. Простое оборудование

Простое оборудование
Простое оборудование

D-Duino (NodeMCU)

www.aliexpress.com/item/NodeMCU-CP2102-ESP…

Вот и все, что требуется. Конечно, вы можете использовать другое оборудование - это должно работать на любом устройстве ESP8266, которое может использовать I2C OLED. D-Duino по большей части является NodeMCU с добавлением OLED.

Код можно найти

Вам потребуется установить платы ESP8266 в Arduino IDE. Инструкции можно найти здесь:

(проще всего с помощью менеджера досок)

Вам также понадобятся некоторые библиотеки - я думаю, все они теперь можно найти в диспетчере библиотек (но я не уверен в этом на 100%).

Необходимые библиотеки: ArduinoJson.h

Adafruit_NeoPixel

WifiManager.h

TimeLib.h

esp8266-oled-ssd1306

(Я не уверен, откуда у меня TImeLib, и, возможно, он включен в Arduino IDE ??)

Самый простой способ установить их - использовать диспетчер библиотек. Если нет, следуйте инструкциям для каждой библиотеки.

Шаг 2: наброски

Эскизы
Эскизы

В настоящее время в репозиторий github включены два скетча и три скрипта PHP.

DDuino_ISS_notification, который следует использовать с оборудованием D-Duino, указанным выше.

И EricISSnotification, который использует моего предыдущего «Супервайзера Эрика» из проекта «Люди Земли». (Подробнее об этом позже)

На обоих скетчах рядом с линией 30 (или где-то очень близко к ней) вы увидите пару переменных типа float, называемых mylat и mylon. Вам нужно будет изменить эти две строки на свои широту и долготу - если вы не знаете свои широту и долготу, вы можете использовать этот веб-сайт https://www.latlong.net. Центр вашего города должен быть в порядке. Он не обязательно должен соответствовать вашей точной широте или долготе. Эскизы округляют и вычисляют приблизительное расстояние до МКС в милях США.

Я считаю, что это единственное, что нужно изменить в эскизах.

Математика для расчета расстояния основана на расстоянии по дуге большого круга между двумя точками, и формальное описание можно найти здесь -

Этот сайт предоставляет много информации о том, как рассчитать расстояние между двумя широтами и долготой, а также пеленг. Мы не используем для этого никаких расчетов подшипников.

Для того, чтобы формальное сработало, нам нужно получить тэту и преобразовать некоторую степень в лучистую и, наоборот, лучистую в градус. Поскольку Arduino не так хорошо справляется с математикой, мы должны немного помочь ей с преобразованиями.

void getDistance () {

float theta, dist, мили;

тета = милон - исслон;

dist = sin (deg2rad (mylat)) * sin (deg2rad (isslat)) + cos (deg2rad (mylat)) * cos (deg2rad (isslat)) * cos (deg2rad (theta));

dist = acos (расст); dist = rad2deg (расстояние);

мили = расстояние * 60 * 1,1515;

расстояние = мили;

}

float deg2rad (float n) {

число с плавающей точкой, радиан = (n * 71) / 4068;

возврат радиан;

}

float rad2deg (float n) {

степень с плавающей запятой = (n * 4068) / 71;

степень возврата;

}

Основная часть вычислений выполняется около строки 127 - ЕСЛИ вам нужно другое расстояние (скажем, км или морские мили)

вы можете изменить "miles = dist * 60 * 1.1515;" линия.

Для КМ это будет что-то вроде «miles = (dist * 60 * 1.1515) * 1.609344;»

Для морских миль что-то вроде «miles = (dist * 60 * 1.1515) * 0.8684;»

Вероятно, вы также захотите изменить строку последовательной печати и строку OLED-дисплея, отображающую мили, на ваше новое измерение.

Это строки 86 и 96 в скетче DDuino_ISS_notification.

Шаг 3: набросок Эрика

Эрик Скетч
Эрик Скетч
Эрик Скетч
Эрик Скетч
Эрик Скетч
Эрик Скетч

Супервайзер Эрик - искусственный интеллект или инопланетянин из TBS TV People of Earth, пожалуйста, посмотрите мои другие инструкции по моей сборке.

Самым основным, что вам нужно для этой системы уведомлений, является D1 Mini и щиток WS2812 - если он помещен в красивую коробку с красивым объективом, он выглядит - хорошо.

Еще раз, любой ESP8266 с пикселем WS2812 должен работать, здесь действительно нет никакого волшебства - щит WS2812 подключен к D2 на D1 mini (который, как я считаю, является контактом 4 на платах NodeMCU и, возможно, на других платах ESP8266).

К эскизу:

Как и выше, вам нужно изменить широту и долготу на эскизе рядом с линией 27. И, как и выше, этот эскиз также вычисляет расстояние между широтой и долготой. В отличие от приведенного выше эскиза, на этом дисплее используется только светодиод WS2812 Neopixel.

Математика находится рядом со строкой 96, но в остальном такая же, как и выше. Есть еще последовательный вывод, если вы хотите увидеть, что происходит. Этот набросок выполняет только расчеты местоположения и расстояния МКС - он не делает прогнозов прохождения или количества людей в космосе.

* Следует отметить, что расстояние здесь указано в милях, его можно изменить, если хотите, но вам нужно будет сделать еще несколько изменений для ваших юнитов. *

Рядом с линией 116:

void setColor () {

if (расстояние = 1201) {colorDisplay (strip. Color (255, 0, 0), p);}

if (distance = 1151) {colorDisplay (strip. Color (255, 153, 0), p);} // мне кажется более желтым

if (distance = 951) {colorDisplay (strip. Color (255, 255, 0), p);} // мне кажется зеленым / желтым

if (расстояние <= 950) {colorDisplay (strip. Color (0, 255, 0), p);}

if (расстояние> = 1351) {colorDisplay (strip. Color (0, 0, 0), p);}

}

Единицы измерения указаны в милях, и если вам нужно изменить на KM или NM, вы также захотите изменить эти строки.

Что здесь происходит? На 1350 милях МКС уже на горизонте, и вы можете просто начать слышать транспондеры по радио - это не очень хорошо, и связь в этот момент на самом деле невозможна. Светодиод становится КРАСНЫМ - это предупреждение - МКС приближается.

Через короткое время или если расстояние до МКС составляет от 1150 до 1200 миль, светодиод станет оранжевым - это действительно выглядит более желтым, но это поддержка оранжевого цвета. - На расстоянии 1150 миль вы должны начать слышать немного больше - двусторонняя связь, вероятно, все еще будет невозможна на 5-ваттном HT.

Между 950 и 1150 милями - светодиод должен загореться желтым - у вас есть приличный шанс установить контакт - все еще не очень, но, по крайней мере, на данном этапе это возможно (желтый цвет для меня больше зеленый, чем желтый - так что что-то еще для работы на)

При пробеге менее 950 миль светодиод будет гореть зеленым - и можно будет установить двусторонние контакты.

По мере удаления ISS цвет светодиода изменится с зеленого на желтый, затем на оранжевый, затем на красный и, наконец, погаснет.

Здесь следует отметить, что все это происходит очень быстро - большинство проходов в моем районе длятся менее 10 минут, а нормальное время контакта составляет менее 5 минут.

Также следует отметить, что ISS может изменить свое местоположение и что API может обновляться или не обновляться, поэтому, даже если у вас горит зеленый свет, вы можете ничего не услышать.

** Запуск любительского оборудования также является необязательным и добровольным, и, пока они пытаются запустить оборудование, бывает время, когда им приходится отключать его для подачи питания или из-за того, что им нужно сделать. Всегда полезно проверять веб-сайты AMsat или ARISS **

Шаг 4: PHP-код

Код PHP
Код PHP

В репозиторий github я включил свой PHP-код 2013 года.

Код был разработан для запуска из CLI (или командной строки). Прошло некоторое время с тех пор, как я написал их, но я думаю, что единственным требованием было включить расширения JSON.

Скрипты по-прежнему работают, и если вы хотите их запустить, не стесняйтесь!

Для пользователей Windows здесь есть информация об установке PHP

Обязательно установите версию CLI. Думаю, при установке вы сможете выбрать, какие расширения включать.

Пользователи Linux зависят от вашего дистрибутива - я использую дистрибутив на основе Ubuntu - и synaptic в качестве менеджера пакетов.

Вам понадобится php7.0-common, php7.0-json, php7.0-cli, php7.0-curl

Я не думаю, что использовал с ними CURL, поэтому он может вам не понадобиться. Остальное можно найти в выбранном вами диспетчере пакетов или на веб-сайте

Два сценария нужно будет отредактировать с учетом вашей широты и долготы - они не очень длинные, и то, что нужно изменить, находится прямо в верхней части сценария. Это iss-location.php и iss-pass-api.php.

В iss-location.php остались мои старые вызовы мигающей ручки - я не уверен, что они больше работают - но вы можете видеть, что я менял светодиод почти так же, как и в своем «Уведомлении Эрика». Я не думаю, что они создают какие-либо проблемы, но вы можете их прокомментировать.

iss-pass-api.php использует время эпохи и дает местное время предсказанных проходов. Честно говоря, я предпочитаю PHP-версию этого скрипта по сравнению с версией DDuino (которая сейчас делает только прогнозы в формате UTC).

Версия PHP также имеет более удобный формат для отображения, но это мелочь.

Последний скрипт PHP - это iss-people.php, он покажет имена и на каком космическом корабле они находятся. Это все, что он делает. (И эта информация не часто меняется)

Основы запуска PHP-скрипта из командной строки:

$ php iss-people.php

Файлы PHP представляют собой текстовые файлы и могут быть открыты любым текстовым редактором. Пользователи Windows, я думаю, что я сохранил их, чтобы они имели как возврат строки, так и возврат каретки. ЕСЛИ не https://www.editpadlite.com/ может сработать для них.

Шаг 5. Видео и другая информация о ISS и Ham

Image
Image

Получение лицензии на ветчину в США:

Не в США? В каждой стране есть свой набор правил и руководства по лицензиям - узнайте, кто управляет вашей связью (здесь, в США, это Федеральная комиссия по связи FCC).

Вычислить расстояние, азимут и многое другое между точками широты и долготы.

Это было бы намного сложнее сделать без очень полезных API от Open Notify.

Как увидеть космическую станцию с земли.

Радиолюбительский спутник AMSAT

Информация AMSAT по радио на МКС

Радиолюбитель ARISS на Международной космической станции

Фан-клуб ISS - Частоты ISS

Запись в Википедии на APRS

APRS.org

Шаг 6: Заключительные мысли…

Это был забавный проект с очень простым оборудованием.

Я бы хотел изменить кое-что, но в целом я очень доволен результатами.

Что нужно изменить:

1) Найдите способ прогнозирования прохождения по местному времени, а не по всемирному координированному времени.

2) Найдите лучший цветовой код для оранжевого и желтого.

3) Обновление для работы с ESP32 X-board, с OLED и 4 Neopixels.

Если вы найдете этот или любой из моих проектов полезными или интересными, пожалуйста, поддержите меня.

Все, что я получаю, идет на покупку большего количества деталей и выполнение большего количества / лучших проектов.

www.patreon.com/kd8bxp

ko-fi.com/lfmiller

Рекомендуемые: