Датчик атмосферного давления с GSM модулем.

Нет ответов
yanstepan
Offline
Зарегистрирован: 20.04.2016

Нужна помощь по программированию устройства, т.е для микроконтроллера atmega328p-pu нужно записать код ,чтобы он умел получать данные с датчика давления MPX4115A, и отправлять полученные измерения смской на телефон с помощью GSM модуля SIM900, преобразователь имеется max232,  на ардуино уно,  

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

Сам научился только смску отправлять на номер с помощью GSM, с помощью AT команд используя компорт вместо микроконтроллера, теперь хотелось бы чтобы микроконтроллер посылал команды а я типа с GSM модуля с компорта отвечал якобы GSM модуль сам,

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

void setup() {
  // initialize serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
 
 
  
}
 
void loop() {
 
  Serial.println("AT");//отправляем команду АТ через UART
  char buf[20];  //создаем буфер состоящий из 20 ячеек памяти. каждая ячейка 1 байт 
  readSerial(buf);
  char input[] = {"OK\r"};
  if (compareMassive(input, buf)>0)  Serial.println(buf);
  else Serial.println("Error");
 
  Serial.println("ATE0");
  readSerial(buf);
  char vxod[] = {"OK\r"};
  if (compareMassive(vxod, buf)>0)  Serial.println(buf);
  else Serial.println("Error");
   
  Serial.println("AT+CMGS="+79627374868"");
  readSerial(buf);
  char otpravkasms[] = {"OK\r"};
  if (compareMassive(otpravkasms, buf)>0)  Serial.println(buf);
  else Serial.println("Error");
}
 
 
 
/*
  Read input serial
 */
 
int compareMassive(char constant[], char variable[]){
    int i =0;
    int p;
    while(1){
      p=constant[i];
      if (p == '\r') return i;
      if(constant[i] == variable[i]){
        i++;  
      }else{
      return 0;  
      }
 
      
    }
  } 
int readSerial(char result[]) {
  int i = 0;
  while (1) {
    while (Serial.available() > 0) {
      char inChar = Serial.read();
      if (inChar == '\n') {
        result[i] = '\0';
        Serial.flush();
        return 0;
      }
      if (inChar != '\r') {
        result[i] = inChar;
        i++;
      }
    }
  }
}