Arduino Uno+ GSM SIM900+ GPS Neo 6M+ DS18B20+ MPU650

jagi
Offline
Зарегистрирован: 19.11.2015
Добрый день. 
У меня в коллеже начался проект. Есть идея с программировать автоматическую аварийную систему для мотоцикла. Которая будет оповещать по смс сообщению с координатами место аварий и ещё пару инфо.
Arduino Uno - блог управления
GSM SIM900 - отправка СМС
GPS NEO-6M - кординаты 
DS18B20 - Температур сенсор(возгорания)
MPU6050 - Гороскоп(для фиксаций переворота)
У меня мало опыта программированием Ардуино. Если кто-то имеет опыт работы с шилдами или сенсорами который я перечислили и могли поделиться с опытам. Буду рад любой помощи.
Мой контакты:
e-mail:rootjakob@gmail.com
skype:jakob.root5
Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Не простое дело вы затеяли...

Кстати, можно без GPS обойтись - координаты от GSM операторв, тоже достаточно точные.

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

Gippopotam пишет:

Кстати, можно без GPS обойтись - координаты от GSM операторв, тоже достаточно точные.

если прошивка модуля "расширенная"

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

если датчик GY-521(mpu6050) то там есть температурный датчик

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Valera19701 пишет:

если датчик GY-521(mpu6050) то там есть температурный датчик

Да, но его не вынесешь. А если "пожар" уже на модуле - возможность отправки сообщения под вопросом.

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

да скорее всего оно так или иначе под вопросом, не все компоненты выдержат ускорение от удара,

теже кварцы

jagi
Offline
Зарегистрирован: 19.11.2015

а как узнать что Gsm расширена прошит?

jagi
Offline
Зарегистрирован: 19.11.2015

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

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

jagi пишет:
а как узнать что Gsm расширена прошит?

в гугле забанили?

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

jagi пишет:
Это будет только теоретически в практики не будет применяться.

SIM800 - точно умеет получать данные о своем местоположении.

jagi
Offline
Зарегистрирован: 19.11.2015

в смысле?

jagi
Offline
Зарегистрирован: 19.11.2015

Тогда я пороюсь в нете. посмотрим что я найду на SIM900. спасибо за информацию. надеюсь что это упростит мой проект, а то уже второй GPS нерабочий приходит.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

jagi пишет:
в смысле?

не то сообщение процитировал.

Цитата:
а как узнать что Gsm расширена прошит?

проще взять сразу sim800

Vladis_a
Offline
Зарегистрирован: 13.12.2015

Добрый день! Хотел поинтересоваться, как продвигается Ваш проект? Хорошая идея - сигнализация для мотоцикла с передачей координат на случай угона. Пока видел только это http://geektimes.ru/post/255444/ и это http://cxem.net/arduino/arduino170.php Но поскольку сам новичок в Ардуино, как скрестить все это вместе, я пока не знаю. Буду следить за развитием и учиться!

jagi
Offline
Зарегистрирован: 19.11.2015

Vladis_a пишет:

Добрый день! Хотел поинтересоваться, как продвигается Ваш проект? Хорошая идея - сигнализация для мотоцикла с передачей координат на случай угона. Пока видел только это http://geektimes.ru/post/255444/ и это http://cxem.net/arduino/arduino170.php Но поскольку сам новичок в Ардуино, как скрестить все это вместе, я пока не знаю. Буду следить за развитием и учиться!

продвигается немного. насчёт твоей идеи, тебе понадобится уно гсм и реле.

jagi
Offline
Зарегистрирован: 19.11.2015

jagi пишет:
Vladis_a пишет:

Добрый день! Хотел поинтересоваться, как продвигается Ваш проект? Хорошая идея - сигнализация для мотоцикла с передачей координат на случай угона. Пока видел только это http://geektimes.ru/post/255444/ и это http://cxem.net/arduino/arduino170.php Но поскольку сам новичок в Ардуино, как скрестить все это вместе, я пока не знаю. Буду следить за развитием и учиться!

продвигается немного. насчёт твоей идеи, тебе понадобится уно гсм и реле.


пиши в скаипе

Vladis_a
Offline
Зарегистрирован: 13.12.2015

Благодарю! К сожалению, сейчас к Скайпу доступа нет. Смогу написать только завтра. Но напишу обязательно!

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

jagi, только гороскоп используется для предсказания будущего, а для измерения ускорений нужен гироскоп.

jagi
Offline
Зарегистрирован: 19.11.2015

andriano пишет:

jagi, только гороскоп используется для предсказания будущего, а для измерения ускорений нужен гироскоп.

упс, опечатка . haha

Vladis_a
Offline
Зарегистрирован: 13.12.2015

jagi][quote=Vladis_a пишет:
продвигается немного. насчёт твоей идеи, тебе понадобится уно гсм и реле.

В данный момент у меня есть Ардуино Уно (в дальнейшем, мне кажется, лучше все-таки использовать Ардуино Про Мини, т.к. она меньше по размерам) и Гироскоп MPU 6050. Остальное еще едет.

Решил потренироваться и из двух уроков для новичков (про светодиод и пьезоэлемент) взял два скетча и скрестил их. Теперь и светодиод моргает и пищалка пищит. :) Я, конечно, понимаю, что это пустяки для профи, но хотелось попробовать с простого скрестить два скетча.

По первой ссылке про сигнализацию http://geektimes.ru/post/255444/ автор использовал акселерометр MMA 7361. И у него задействованы 6 пинов - X,Y,Z (я так понимаю, координаты), SL, 5V и GND  . По уроку про гироскоп MPU 6050 все подключил и в мониторе порта увидел изменения значений. У меня подключены только 4 провода - VCC, GND, SCL, SDA.

В связи с этим возник вопрос - можно ли вместо MMA 7361 использовать MPU6050? Сильно ли надо перепахать скетч и на что обратить внимание?

Скетч автора под MMA 7361:

#include <AcceleroMMA7361.h>

int x; // выходная переменная по оси x
int y; // выходная переменная по оси y
int z; // выходная переменная по оси z
int changelvl;
int lastx;
int lasty;
int lastz;
int ledPin = 11; // плюс сирены
int powerPinSenser = 8; // подаём питание на акселерометр
int powerPinPot = 7; // подаём питание на потенциометр
int Pot = A2; // средний контакт потенциометра
int n; // граница срабатывания
int defaultn;

void setup() {
 
  pinMode(ledPin, OUTPUT); // устанавливаем вывод 11 как выход
  pinMode(powerPinSenser, OUTPUT); 
  pinMode(powerPinPot, OUTPUT); 
  pinMode(Pot, INPUT); 

  Serial.begin(9600);
  digitalWrite(powerPinSenser, HIGH);
  delay(30);
  x = analogRead(5); // считываем вход A5
  y = analogRead(4); // считываем вход A4
  z = analogRead(3); // считываем вход A3

  defaultn = 2; // число срабатываний-циклов 
  n = defaultn;
  digitalWrite(powerPinSenser, LOW);
  delay(6000); // задержка после включения

}

void loop() {

  digitalWrite(powerPinSenser, HIGH);
  digitalWrite(powerPinPot, HIGH);

  delay(3);

  lastx = x;
  lasty = y;
  lastz = z;

  x = analogRead(5); // считываем вход A5
  y = analogRead(4); // считываем вход A4
  z = analogRead(3); // считываем вход A3

  changelvl = map(analogRead(Pot),0,1023,20,2); // значения min/max для потенциометра
    
  digitalWrite(powerPinSenser, LOW);
  digitalWrite(powerPinPot, LOW);

  Serial.print("lvl = "); // выводим значение по x
  Serial.println(changelvl);

  Serial.print("X = "); // выводим значение по x
  Serial.println(x);
  Serial.print("Y = "); // выводим значение по y
  Serial.println(y);
  Serial.print("Z = "); // выводим значение по z
  Serial.println(z);

  Serial.print("dX = ");
  Serial.println(abs(x - lastx));
  Serial.print("dY = ");
  Serial.println(abs(y - lasty));
  Serial.print("dZ = ");
  Serial.println(abs(z - lastz));  

  if (changelvl < abs(x - lastx) || changelvl < abs(y - lasty) || changelvl < abs(z - lastz) ){
    if (n > 0 ){
      n = n -1;
    }
    else{
      digitalWrite(ledPin, HIGH);
      delay(3000); // время работы сирены при срабатывании
      digitalWrite(ledPin, LOW);

      digitalWrite(powerPinSenser, HIGH);
      delay(30);
      lastx = x;
      lasty = y;
      lastz = z;

      x = analogRead(5); // считываем вход A5
      y = analogRead(4); // считываем вход A4
      z = analogRead(3); // считываем вход A3

      digitalWrite(powerPinSenser, LOW);       
    }
  }
  else{
    n = defaultn;  
  }
  delay(500);

 

Vladis_a
Offline
Зарегистрирован: 13.12.2015

Либо есть еще вариант:

Берем проект отсюда https://hackaday.io/project/6382-nano-bike-alarm . Там человек использует Adafruit FONA 808. Правда, он умудрился к ней еще и RFID ключи прикрутить. Но т.к. FONA 808 весьма дорогая, то можно использовать раздельные модули для GPS и GSM. Тогда возникает следующая сложность - аппаратно подключить эти раздельные модули к Ардуино и связать их программно между собой. И снова надо перепахать весь скетч.