Оглавление:

Mappifier - Mapping + Notification System: 9 шагов
Mappifier - Mapping + Notification System: 9 шагов

Видео: Mappifier - Mapping + Notification System: 9 шагов

Видео: Mappifier - Mapping + Notification System: 9 шагов
Видео: SONICUE Training Series - Setup: device discovery & online mapping 2024, Ноябрь
Anonim
Mappifier - картографирование + система уведомлений
Mappifier - картографирование + система уведомлений

Ночная езда - это очень весело. Но часто это оказывается кошмаром в виде животных, переходящих дорогу (особенно тех бездомных кошек и собак, которые ждут, когда вы подъедете к ним, чтобы они могли перейти дорогу !!). Поэтому я подумал о том, чтобы сделать что-то, что предупреждает вас, когда вы приближаетесь к этим уязвимым местам, чтобы вы могли управлять автомобилем более осторожно.

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

Запасы

Используемое оборудование

Совет по развитию 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
О Firebase
О Firebase
О Firebase
О Firebase
О Firebase
О Firebase
О Firebase

Firebase - это платформа для разработки мобильных и веб-приложений, принадлежащая Google. У него много функций, но здесь я использую только две из них: базу данных в реальном времени и облачные функции.

Чтобы начать работу с Firebase, 1. Сначала перейдите на веб-страницу firebase.

2. Теперь перейдите к консоли и нажмите «Создать новый проект».

3. Вам необходимо указать название проекта вместе с другими деталями, чтобы создать проект.

4. После создания проекта щелкните параметр базы данных на боковой панели, чтобы создать новую базу данных.

5. Проделайте то же самое с функциями.

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

Шаг 4: База данных в реальном времени

База данных в реальном времени
База данных в реальном времени
База данных в реальном времени
База данных в реальном времени

После того, как вы создали базу данных, следующий шаг - посмотреть, как хранятся данные в базе данных и как к ним можно получить доступ. Для записи или чтения в / из базы данных вам необходимо настроить правила базы данных. Для целей разработки мы можем использовать открытое правило, чтобы любой, у кого есть ссылка на базу данных, мог читать / писать, но будьте осторожны при настройке правил. База данных хранит данные в формате JSON и синхронизируется со всеми устройствами, подключенными к Вы можете добавлять дочерние узлы с помощью знака «+», но узлы также можно создавать программно. Все данные, которые мы загружаем в базу данных в режиме «магазин» (хранение собранных местоположений), хранятся здесь как отдельные узлы, в то время как данные в режиме «уведомления» (получение данных при навигации) обновляются каждый раз (проверьте изображение).

Шаг 5. Настройка функций Firebase

Настройка функций Firebase
Настройка функций Firebase
Настройка функций Firebase
Настройка функций Firebase
Настройка функций Firebase
Настройка функций 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) и других вещей и хотел бы получить ваши предложения и опыт:)

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