Оглавление:
- Запасы
- Шаг 1. Аппаратный блок
- Шаг 2: Схема
- Шаг 3. О Firebase
- Шаг 4: База данных в реальном времени
- Шаг 5. Настройка функций Firebase
- Шаг 6: Код
- Шаг 7. Необязательный шаг (сборка корпуса)
- Шаг 8: В действии…
- Шаг 9: Двигаемся дальше…
Видео: Mappifier - Mapping + Notification System: 9 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
Ночная езда - это очень весело. Но часто это оказывается кошмаром в виде животных, переходящих дорогу (особенно тех бездомных кошек и собак, которые ждут, когда вы подъедете к ним, чтобы они могли перейти дорогу !!). Поэтому я подумал о том, чтобы сделать что-то, что предупреждает вас, когда вы приближаетесь к этим уязвимым местам, чтобы вы могли управлять автомобилем более осторожно.
Система состоит из двух частей: сбора данных и извлечения данных. Первая часть берет данные о местоположении, то есть о местах, в которых существует большая вероятность пересечения животных. Эти данные необходимо добавлять вручную и обновлять на карте. Последняя часть берет наше текущее местоположение, а затем сравнивает его с собранными данными, и предоставляются соответствующие уведомления или предупреждения.
Запасы
Используемое оборудование
Совет по развитию ESP8266 WiFi
GPS-модуль Ublox NEO-6M
Светодиоды
Мгновенная кнопка
Используемое программное обеспечение
IDE Arduino
Любой редактор JavaScript
Firebase (для хранения и извлечения данных)
Шаг 1. Аппаратный блок
Аппаратное обеспечение должно работать двумя способами (режимами): 1) Сохранение местоположения в базе данных: это основная часть процесса сбора данных; местоположение, полученное модулем GPS, отправляется в базу данных firebase через плату разработки ESP8266 WiFi.
2) Предоставление уведомлений во время навигации: во время навигации текущее местоположение извлекается и отправляется в базу данных. После каждого обновления местоположения расстояние между текущим местоположением и этими местоположениями (которые были сохранены в процессе сбора данных) вычисляется и восстанавливается модулем ESP8266, который затем предупреждает пользователя о том, насколько близко пользователь находится от этих сохраненных местоположений.
Я добавил три светодиода для уведомления об изменении режимов, а также об успешном обновлении базы данных и сигнальную лампу для уведомления о близости пользователя к сохраненному месту.
Кнопка используется для сохранения местоположения одним щелчком мыши (в режиме сохранения / сбора данных), а также для переключения между этими режимами.
Питание
Первоначально использовалась батарея Lipo 3,7 В, 300 мАч, но с ней возникли некоторые проблемы. Основной проблемой был сброс ESP8266 (возможно, из-за текущих всплесков). Также батареи хватило не на много. Наконец-то мне на помощь пришел павербанк.
Шаг 2: Схема
Шаг 3. О Firebase
Firebase - это платформа для разработки мобильных и веб-приложений, принадлежащая Google. У него много функций, но здесь я использую только две из них: базу данных в реальном времени и облачные функции.
Чтобы начать работу с Firebase, 1. Сначала перейдите на веб-страницу firebase.
2. Теперь перейдите к консоли и нажмите «Создать новый проект».
3. Вам необходимо указать название проекта вместе с другими деталями, чтобы создать проект.
4. После создания проекта щелкните параметр базы данных на боковой панели, чтобы создать новую базу данных.
5. Проделайте то же самое с функциями.
Это общие шаги для создания проекта, firebase хорошо документирована, и есть много серий видео на YouTube для начинающих, пожалуйста, пройдите, чтобы понять больше.
Шаг 4: База данных в реальном времени
После того, как вы создали базу данных, следующий шаг - посмотреть, как хранятся данные в базе данных и как к ним можно получить доступ. Для записи или чтения в / из базы данных вам необходимо настроить правила базы данных. Для целей разработки мы можем использовать открытое правило, чтобы любой, у кого есть ссылка на базу данных, мог читать / писать, но будьте осторожны при настройке правил. База данных хранит данные в формате JSON и синхронизируется со всеми устройствами, подключенными к Вы можете добавлять дочерние узлы с помощью знака «+», но узлы также можно создавать программно. Все данные, которые мы загружаем в базу данных в режиме «магазин» (хранение собранных местоположений), хранятся здесь как отдельные узлы, в то время как данные в режиме «уведомления» (получение данных при навигации) обновляются каждый раз (проверьте изображение).
Шаг 5. Настройка функций Firebase
Нам нужно что-то, чтобы рассчитать близость текущего местоположения к сохраненным местоположениям, и функции, запускаемые фоновой базой данных, сделают нашу работу. Функции написаны на javascript и должны быть развернуты на базе firebase.
На вашем компьютере должен быть установлен node.js.
1) Теперь загрузите интерфейс командной строки firebase, используя команду «npm install -g firebase-tools» в командной строке.
2) Теперь вам нужно войти в firebase, используя команду «firebase login» (вам нужно указать пароль для входа в Gmail, если вы еще не вошли в систему)
3) После этого перейдите в каталог вашего проекта и запустите функцию с помощью команды "firebase init". Вам нужно будет выбрать опцию «functions» для запуска функций firebase для вашего проекта.
4) Теперь вам нужно перейти в папку functions в каталоге вашего проекта и найти файл index.js.
5) Отредактируйте файл с помощью текстового редактора и отредактируйте файл / замените файл на mappifier_function.txt (фактически это наша функция).
6) Наконец, разверните свою функцию, используя команду «firebase deploy» в командной строке.
Вы можете проверить, развернута ли функция, в меню функций на консоли firebase.
Шаг 6: Код
Для ESP8266:
Плата подключается к Wi-Fi и Firebase с использованием учетных данных и ждет нажатия кнопки. В зависимости от продолжительности нажатия кнопки запускаются разные режимы. В режиме сбора данных (назовем этот режим «магазином») каждое нажатие кнопки приведет к отправке текущей позиции в базу данных, в то время как в режиме извлечения данных («режим уведомления») текущее местоположение отправляется в базу данных. и расстояние извлекается из базы данных автоматически. Я добавил светодиоды для предупреждений (близость к отмеченному местоположению) и уведомлений (например, исправление GPS, соединение Wi-Fi, успешная запись в базу данных, изменение режима и т. Д.).
Для функции Firebase:
Эта функция проверяет наличие записи в узел «текущее местоположение» в базе данных и вычисляет расстояние между местоположениями в базе данных и текущим местоположением, а затем находит наименьшее расстояние, которое затем записывается в узел «расстояние» в базе данных.
Не забудьте добавить свои учетные данные Wi-Fi и аутентификационные данные firebase перед загрузкой программы (см. Изображения). Кроме того, если вы новичок в ESP8266 и кодируете их в Arduino IDE, обратитесь к ним.
Шаг 7. Необязательный шаг (сборка корпуса)
Чтобы аппаратная часть была компактной и ее можно было установить, я сделал небольшой корпус, чтобы разместить их внутри. Сделана пара отверстий для крепления светодиодов и подключения USB-кабеля. Но финальный корпус превзошел все мои ожидания !! Он идеально умещался в моей ладони и очень легко устанавливался на ручку велосипеда и на рулевое колесо.
Шаг 8: В действии…
Вот небольшое видео, демонстрирующее оба режима (сохранение и уведомление) со светодиодами предупреждения и уведомления.
Шаг 9: Двигаемся дальше…
Эта система может использоваться для различных целей, например, учитывая текущий сценарий, если вы можете получить места распространения болезни и сохранить их в базе данных, эта система будет выдавать предупреждения, когда вы будете ближе к этим местам. Но я серьезно подумываю получить данные о пересечении животных со всего мира, чтобы водители были осторожны и спасли многих животных от несчастных случаев. Я сделал простую веб-страницу (но еще не размещенную), на которой есть все данные, которые я собрал. Это данные, которые я собрал во время прогулки или езды на велосипеде (всякий раз, когда я нахожу кошку или собаку на обочине дороги, поскольку они более склонны к переходу), но нам нужно гораздо больше данных, чтобы реализовать это.
Я новичок в создании веб-страниц (в основном javascript) и других вещей и хотел бы получить ваши предложения и опыт:)
Рекомендуемые:
Создание «Ultimate Craigslist Notification Tool»: 5 шагов
Создайте «Ultimate Craigslist Notification Tool»: Предупреждение: этот проект предназначен для пользователей Mac. Хорошо. У всех пользователей Craigslist такое случалось один или два раза. Вы взволнованы этим новым USB-нагревателем для чашек за 10 долларов и обнаруживаете, что ваш ближайший сосед купил его первым. ты желаешь & кво