Никогда не ездить в одиночестве
Компоненты и расходные материалы
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Необходимые инструменты и машины
|
Об этом проекте
Всем привет, я Хесус Сориано, студент электронной инженерии, предприниматель ... и велосипедист!
Я езжу на велосипеде с 12 лет и обычно тренируюсь один. Во время этих тренировок у меня было много падений, несчастных случаев и других несчастных случаев. Однажды я понял, что, если я попаду в тяжелую аварию и потеряю сознание, я могу умереть. Я был один в горах!
Легче понять, что я имею в виду, с помощью небольшого видео. Представьте:вы едете на велосипеде, наслаждаетесь пейзажем, и внезапно появляется машина и сбивает вас. Вы падаете со склона, и водитель убегает. Вы остаетесь без сознания, в ловушке, невидимы для мира.
Через два-три часа ваша семья начнет волноваться. Службы экстренной помощи попытаются найти вас через 4-5 часов. Вы, вероятно, умрете.
Итак, я начал исследовать и увидел много интересных вариантов:во-первых, приложение Strava Summit. В случае аварии он может отправить координаты GPS друзьям. Анги из Specialized тоже была вариантом. Система была встроена в шлем, и в случае столкновения могла попросить о помощи. Но это была проблема. Всем этим системам для работы требовался сигнал мобильного телефона. Потребовались аккумулятор, GPS и сигнал мобильного телефона.
Так появилась Never Ride Alone, NRA. Я нашел Sigfox в качестве своего решения для отправки данных в горах, и когда я обнаружил, что у них есть arduino с модулем sigfox ... Это было потрясающе!
Я решил, что NRA будет работать как перевернутый сигнал тревоги. Когда вы едете на велосипеде, вы активируете NRA, нажимая кнопку. Светодиоды начинают мигать, при этом улучшая видимость. Если NRA не обнаруживает движения в течение 30 секунд, он активирует аварийный режим. Он начинает гудеть, и если его никто не остановит (возможно, вам ничего не угрожает, но вы забыли его выключить), значит, вы получили травму. Модуль GPS автоматически начинает работать в NRA и отправляет данные о местоположении GPS через сеть SigFox всем вашим друзьям / семье.
Я спросил у многих велосипедистов и придумал минималистичный дизайн. Велосипедистам нужен простой в использовании гаджет с хорошей батареей. С NRA вам нужно только нажать кнопку и педаль. После тренировки вам нужно только остановить его и зарядить.
Корпус НРА выполнен из АБС-пластика. Я использовал 3D-принтер, предоставленный Политехническим университетом Валенсии.
Вы можете редактировать / загружать файлы дизайна NRA здесь:
https://www.tinkercad.com/things/fmkE685dNfP-nra-v01
Для этой сборки я использую Arduino MKR1200, Neo 6-m GPS, кнопку, 2 светодиода, один резистор 1 кОм, зуммер, датчик вибрации и батарею 3,7 В 150 мАч.
После этого я начал с настройки Arduino и SigFox. Это моя конфигурация на серверной странице SigFox:
Когда Arduino MKR1200 отправляет данные, этот сервер преобразует исходные данные в информацию. В моем случае я использую долготу, широту и высоту. С этой информацией я отправляю электронное письмо всем людям в моих настройках (друзьям, семье ...), чтобы они могли щелкнуть ссылку Google Maps и узнать, где находится травмированный байкер.
Вот как все компоненты установлены в корпусе:
Прежде всего, модуль GPS. Нам нужен только положительный, отрицательный и провод передачи данных. Антенна приклеивается к раме. Ардуино перейдет через это.
Также добавляем аккумулятор, подключенный к ардуино, а также переключатель. Таким образом, мы можем включить / выключить его.
У нас есть разъем для аккумулятора, поэтому мы можем заряжать NRA. Он должен быть выключен.
В этом проекте я использовал зарядное устройство для аккумулятора дрона для зарядки NRA. Это сработало отлично.
Сделав разводку, мы надеваем антенну на ардуино. Соединить все компоненты в этой оболочке немного сложно, но с вниманием это можно сделать.
В этой сборке мы не использовали датчик вибрации. В этом случае, когда NRA включено, он начинает отправлять данные о местоположении по GPS каждые 10 минут. Результаты были хорошими.
Мы также протестировали NRA на дорогах. Это был очень хороший опыт.
Он действительно прост в использовании и дает ощущение, что у вас в руках хороший гаджет.
Итак, это история Never Ride Alone, гаджет, который всегда знает о вас. Когда вы едете, вы знаете, что в безопасности, потому что в случае аварии вы всегда будете найдены.
Команда Never Ride Alone также постаралась улучшить нашу планету. Во время всех этих ездовых испытаний мы также собрали весь мусор, который видели в горах. В соответствии с Целями устойчивого развития мы постарались убрать весь мусор, который видели во время поездок.
Собрав все это, мы поняли, что большая часть мусора в горах идет от велосипедистов! Мы подобрали много энергетических пластиков, гелей и покрышек. Теперь мы пытаемся привлечь внимание всех велосипедистов. Во время гонок мы создали чистые точки, где люди могут выбрасывать весь свой мусор, не останавливаясь и не теряя времени. Эта зона ограничена, и когда гонка заканчивается, все очищается.
Спасибо, что прочитали, и безопасно ездите :)
Код
- НИКОГДА НЕ КАТАЙТЕСЬ В ОДНОМ V.0.1
НИКОГДА НЕ КАТАЙТЕ В ОДНОМ V.0.1 Arduino
Код NRA. Он не использует датчики. Он отправляет все данные GPS каждые 10 минут.///// НИКОГДА НЕ ЕЗДАЙТЕ В одиночку V.0.1 /////// ................... .......... ////// АВТОР:ИИСУС СОРИАНО АДАМ //////////// FECHA:05.05.2019 ////////// ////////////////////////////// # include#include #include // включаем TinyGPS # define WAITING_TIME 10 // время ожидания во время каждого сообщения # define GPS_PIN 2 // (вывод транзистора, для энергосбережения. сейчас не используется) #define GPS_INFO_BUFFER_SIZE 128bool debug =true; //////// DEBUG ///// const int backlights =4; const int pulsador =5; const int audio =3; TinyGPS gps; // объект GPS // переменные данных GPSint год; байтовый месяц, день, час, минута, секунда, сотые; длинные символы без знака; короткие предложения без знака, failed_checksum; char GPS_info_char; char GPS_info_buffer [GPS_INFO_BUFFER_SIZE]; unsigned int receive_char; bool message_started =false; int i =0; // Структура координат GPS, размер 12 байт на 32-битных платформахstruct gpscoord {float a_latitude; // 4 байта float a_longitude; // 4 байта float a_altitude; // 4 байта}; float latitude =0.0f; float longitude =0.0f; float altitud =0; //////////////// Функция ожидания ///////// ///////// void Wait (int m, bool s) {// m минут ожидания // s медленных светодиодных импульсов if (debug) {Serial.print ("Waiting:"); Серийный отпечаток (м); Serial.println («мин.»); } digitalWrite (LED_BUILTIN, LOW); если (s) {int seg =m * 30; для (int я =0; я <сег; я ++) {digitalWrite (подсветка, ВЫСОКАЯ); задержка (500); digitalWrite (подсветка, НИЗКАЯ); задержка (500); }} еще {int seg =m * 15; для (int я =0; я <сег; я ++) {digitalWrite (подсветка, ВЫСОКАЯ); задержка (500); digitalWrite (подсветка, НИЗКАЯ); задержка (500); }}} /////////////////// Функция отправки данных Sigfox //////////////// void SendSigfox (String data) {if (отладка) {Serial.print ("Отправка:"); Serial.println (данные); if (data.length ()> 12) {Serial.println («Сообщение слишком длинное, будут отправлены только первые 12 байтов»); }} // Удаляем EOL //data.trim (); // Запускаем модуль SigFox.begin (); // Ждем не менее 30 мс после первой настройки (до 100 мс) delay (100); // Очищает все ожидающие прерывания SigFox.status (); задержка (1); если (отладка) SigFox.debug (); задержка (100); SigFox.beginPacket (); SigFox.print (данные); если (отладка) {int ret =SigFox.endPacket (истина); // отправляем буфер в сеть SIGFOX и ждем ответа if (ret> 0) {Serial.println ("Нет передачи"); } else {Serial.println ("Передача в порядке"); } Serial.println (SigFox.status (SIGFOX)); Serial.println (SigFox.status (ATMEL)); if (SigFox.parsePacket ()) {Serial.println ("Ответ от сервера:"); в то время как (SigFox.available ()) {Serial.print ("0x"); Serial.println (SigFox.read (), HEX); }} else {Serial.println («Не удалось получить ответ от сервера»); Serial.println («Проверьте зону покрытия SigFox в вашем районе»); Serial.println («Если вы находитесь в помещении, проверьте покрытие 20 дБ или подойдите к окну»); } Serial.println (); } еще {SigFox.endPacket (); } SigFox.end ();} ////////////////// Функция преобразования GPS /////////////////// * Преобразует Данные GPS с плавающей запятой в данные Char * / String ConvertGPSdata (const void * data, uint8_t len) {uint8_t * bytes =(uint8_t *) data; Струнная кадена; если (отладка) {Serial.print ("Длина:"); Serial.println (len); } for (uint8_t i =len - 1; i
Изготовленные на заказ детали и корпуса
Он подходит для MKR1200, аккумулятора, кнопки, светодиодов, GPS и зуммера. Он подходит для MKR1200, аккумулятора, кнопки, светодиодов, GPS и зуммера. nra_v_0_1_qCsc7I6QvO.zipСхема
Обратите внимание, что на фото Arduinos нет mkr1200.Производственный процесс