Advertisement
Guest User

Untitled

a guest
Apr 24th, 2018
316
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.08 KB | None | 0 0
  1. #include "Arduino.h"
  2. #define USB SerialUSB
  3. #define UBLOX Serial1
  4.  
  5.  
  6. // Pin to turn on/off the nb-iot module
  7. #define powerPin 7
  8. #define commands 17
  9.  
  10. String atcommands[commands] = {  "ATE0",
  11.                                 "AT+URAT=7",
  12.                                 "AT+URAT?",
  13.                                 "AT+CMEE=2",
  14.                                 "AT+CGDCONT=1,\"IP\",\"internet.m2m\"",
  15.                                 "AT+CGDCONT?",
  16.                                 "AT+CFUN=1",
  17.                                 "AT+COPS=1,2,\"20408\"",
  18.                                 "AT+CSQ",
  19.                                 "AT+CREG=2",
  20.                                 "AT+CREG?",
  21.                                 "AT+CGPADDR",
  22.                                 "AT+CMGF=1",
  23.                                 "AT+CMGL",
  24.                                 "AT+USOCR=17",
  25.                                 "AT+USOST=0,\"YOURIP\",YOURPORT,4,\"Data\"",
  26.                                 "AT+USOCL=0"
  27.                                
  28.  
  29.  
  30.  
  31.                               };
  32. int pos = 0;
  33.  
  34.  
  35. void setup()
  36. {
  37.   // Turn the nb-iot module on
  38.   //pinMode(powerPin, OUTPUT);
  39.   //digitalWrite(powerPin, HIGH);
  40.   pinMode(SARA_ENABLE,       OUTPUT);
  41.   pinMode(SARA_TX_ENABLE,       OUTPUT);
  42.   digitalWrite(SARA_ENABLE, HIGH);       // enable power to ublox
  43.   digitalWrite(SARA_TX_ENABLE, HIGH);      
  44.   pinMode(SARA_R4XX_TOGGLE, OUTPUT);
  45.   digitalWrite(SARA_R4XX_TOGGLE, LOW);      
  46.  
  47.  
  48.  
  49.   // Start communication
  50.   USB.begin(115200);
  51.   UBLOX.begin(115200);  //ublox should always be 9600
  52.   delay(4000);
  53.   USB.println("type an AT command or type m for Menu of commands");
  54.   delay(1000);
  55.   //clear UBLOX buffer
  56.   while (UBLOX.available()) {
  57.     UBLOX.read();
  58.   }
  59. }
  60.  
  61. void loop()
  62. {
  63.   int len = 160; // allow commands up to 160 characters
  64.   char buffer[len];
  65.   int commandFound = 0;
  66.   if (USB.available())
  67.   {
  68.     uint8_t c = USB.read();
  69.     if (pos == 0 && c == 'm')
  70.     {
  71.       for (int x = 0 ; x < commands ; x++) {
  72.         USB.print(x + 1);
  73.         if (x < 9) {
  74.           USB.print("   ");
  75.         } else
  76.         {
  77.           USB.print("  ");
  78.         }
  79.         USB.println(atcommands[x]);
  80.       }
  81.       USB.println("you can use one of the above shortcodes, just type the number and press enter");
  82.       buffer[0] = 0;
  83.     } else
  84.     {
  85.       switch (c) {
  86.         case '\n': // Ignore new-lines
  87.           break;
  88.         case '\r': // Return on CR
  89.           commandFound = 1;
  90.           break;
  91.         default:
  92.           USB.write(c);   //display what is typed
  93.           if (pos < len - 1) {
  94.             buffer[pos++] = c;
  95.             buffer[pos] = 0;
  96.           }
  97.  
  98.       }
  99.       if (commandFound ) {
  100.         String inputline(buffer);
  101.         int menuchoice = inputline.toInt();
  102.         USB.println();
  103.         if (menuchoice > 0) {
  104.           inputline = atcommands[menuchoice - 1];
  105.           USB.println(inputline);
  106.         }
  107.         UBLOX.println(inputline);
  108.         commandFound = 0;
  109.         pos = 0;
  110.       }
  111.     }
  112.   }
  113.   while (UBLOX.available())
  114.   {
  115.     USB.write(UBLOX.read());
  116.   }
  117.  
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement