Библиотека SIM900, АТ команды, запрос баланса.
- Войдите на сайт для отправки комментариев
Вс, 21/01/2018 - 17:06
Есть рабочий код вывода баланса в сериал:
#include "SIM900.h" #include <SoftwareSerial.h> int numdata; char inSerial[40]; int i=0; #include <Wire.h>//айтуси библиотека #include <LiquidCrystal_I2C.h>//библиотека экрана LiquidCrystal_I2C lcd(0x27,16,2);//определяем лсд - адрес, кол-во столбцов, кол-во строк void setup() { lcd.init(); //вкл экран lcd.backlight( ); //вкл подсветка //Serial connection. Serial.begin(9600); Serial.println("GSM Shield testing."); //Start configuration of shield with baudrate. //For http uses is raccomanded to use 4800 or slower. if (gsm.begin(9600)) { Serial.println("\nstatus=READY"); lcd.setCursor(0, 0); lcd.print ("OK"); } else {Serial.println("\nstatus=IDLE"); lcd.setCursor(0, 0); lcd.print ("FAIL"); } delay(2000); //Стираем lcd.clear(); }; void loop() { //Read for new byte on serial hardware, //and write them on NewSoftSerial. serialhwread(); //Read for new byte on NewSoftSerial. serialswread(); }; void serialhwread() { i=0; if (Serial.available() > 0) { while (Serial.available() > 0) { inSerial[i]=(Serial.read()); delay(10); i++; } inSerial[i]='\0'; if(!strcmp(inSerial,"/END")) { Serial.println("_"); inSerial[0]=0x1a; inSerial[1]='\0'; gsm.SimpleWriteln(inSerial); } //Send a saved AT command using serial port. if(!strcmp(inSerial,"TEST")) { Serial.println("BALANCE"); // gsm.SimpleWriteln("AT+CSQ"); //СИГНАЛ // gsm.SimpleWriteln("AT+COPS?"); //ОПЕРАТОР gsm.SimpleWriteln(" ATD*105*5#"); //БАЛАНС } else { Serial.println(inSerial); gsm.SimpleWriteln(inSerial); } inSerial[0]='\0'; } } void serialswread() { gsm.SimpleRead(); }
Который при вводе "TEST" выдает в сериал :
BALANCE OK +CUSD: 0,"OCTATOK 406.10 p.",64
Так вот никак не могу понять, как он работает, что и куда нужно вставить чтобы он написал последнюю строчку на экране lcd.
В конечном итоге строчка будет отправляться в смс, но пока хотябы так.
библиотеку кажись отсюда брал: https://github.com/MarcoMartines/GSM-GPRS-GPS-Shield
Убрал из кода все лишнее:
в итоге монитор выдает
Внимание вопрос!
Где почитать как эту строку прочитать и записать в переменную char?
хз, насколько верно, но работает: