Оглавление:
- Шаг 1. Простое оборудование
- Шаг 2: наброски
- Шаг 3: набросок Эрика
- Шаг 4: PHP-код
- Шаг 5. Видео и другая информация о ISS и Ham
- Шаг 6: Заключительные мысли…
Видео: Простая система уведомлений ISS: 6 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Что такое Международная космическая станция и почему вы хотите предсказать, где она находится?
Чтобы ответить на первый вопрос, мы можем найти ответ на веб-сайте НАСА. Вкратце:
Международная космическая станция - это большой космический корабль. Он вращается вокруг Земли. Это дом, в котором живут космонавты, а также космическая станция - это научная лаборатория. Многие страны работали вместе, чтобы построить его. Они также работают вместе, чтобы использовать его. Космическая станция состоит из множества частей. Кусочки были собраны в космосе космонавтами. Орбита космической станции находится на высоте около 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-код
В репозиторий 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
Получение лицензии на ветчину в США:
Не в США? В каждой стране есть свой набор правил и руководства по лицензиям - узнайте, кто управляет вашей связью (здесь, в США, это Федеральная комиссия по связи 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
Рекомендуемые:
Простая система статуса и бронирования кикера с интеграцией Slack: 12 шагов (с изображениями)
Простая система статуса и бронирования кикера с интеграцией со Slack: в компании, где я работаю, есть кикер-стол. Компания занимает много этажей, и некоторым сотрудникам требуется до 3 минут, чтобы добраться до стола и … осознать, что стол уже занят. Поэтому возникла идея построить ки
Система уведомлений о прачечной на основе Интернета вещей: 18 шагов
Система уведомлений о прачечной на основе Интернета вещей: HiThis инструктаж дает пошаговое руководство по созданию системы уведомления о прачечной на основе Интернета вещей. Устройство прикреплено к вашим ящикам и сумке для белья. Для демонстрации здесь мы взяли два ящика и один мешок для белья. Он чувствует
Автоматическая система уведомлений о кофе: 7 шагов (с изображениями)
Автоматическая система уведомлений о кофе: в этом проекте я делаю офисную кофеварку умной, создав систему оповещения о кофе, которая отправляет уведомления Slack, когда кто-то заваривает свежий кофе. Код можно изменить, чтобы отправить электронное письмо или текстовое сообщение. Этот проект построен на R
Дешевая, простая, управляемая через Интернет система домашней автоматизации: 5 шагов (с изображениями)
Дешевая, простая, управляемая через Интернет система домашней автоматизации: если у вас есть домашние животные / дети, и вам нужно их кормить или шлепать через Интернет, эта система может быть вам полезна. Это очень простой и дешевый способ управлять двигателями, светодиодами и т. Д. Дома с любого компьютера, подключенного к Интернету. Все, что нужно, - это Webc
Простая в изготовлении, дешевая и простая схема с миганием светодиодами на CMOS 74C14: 5 шагов
Простая в изготовлении, дешевая и простая схема с миганием светодиодами с CMOS 74C14: Иногда вам нужно просто несколько мигающих светодиодов, для украшения рождественских украшений, моргающих картинок или просто для того, чтобы повеселиться с миганием миганием. Я покажу вам, как сделать дешевую и простую схему с 6 мигающими светодиодами. Примечание: это моя первая инстуктивная и