Arduino & SIM900 | TCP/IP Client SIM900

 

Arduino & SIM900 | TCP/IP Client SIM900


Module Sim900A là một module GSM/GPRS cực kỳ nhỏ gọn, được thiết kế cho thị trường toàn cầu. Sim900 hoạt động được ở 4 băng tần GSM 850MHz,EGSM 900MHz, DCS 1800MHz và PCS 1900MHz như là một loại thiết bị đầu cuối với một Chip xử lý đơn nhân đầy sức mạnh, tăng cường các tính năng quan trọng dựa trên nền vi xử lý ARM926EJ-S, cho bạn nhiều lợi ích từ kích thước nhỏ gọn (24x24 mm), đáp ứng những yêu cầu về không gian trong các ứng dụng M2M.

GSM Module Sim900A là một sản phẩm do AT-COM phát triển nhằm giúp người sử dụng có thể khai thác các tính năng của Sim900A một cách dễ dàng. Board hỗ trợ khá đầy các ngõ ra của Module Sim900 ( RS232, Audio, ADC, VRTC, PWM, I2C...). Dễ kết nối với các dòng vi điều khiển như PIC, AVR, ARM, Arduino để phát triển các ứng dụng điều khiển, giám sát qua môi trường mạng GSM, GPRS. Ngõ ra RS232 giúp giao tiếp máy tính và lập trình cho Module Sim900 thông qua tập lệnh AT COMMAND

Code CP/IP Client SIM900

/////////////////////////////////////////////////////////////////////////////////////////////////////////
//#define TINY_GSM_MODEM_SIM800
#define TINY_GSM_MODEM_SIM900

#include <TinyGsmClient.h>
#include <SoftwareSerial.h>

SoftwareSerial SerialAT(2, 3);
#define SerialMon Serial
//#define SerialAT Serial1

#if !defined(TINY_GSM_RX_BUFFER)
#define TINY_GSM_RX_BUFFER 650
#endif

#define TINY_GSM_DEBUG SerialMon
#define GSM_PIN ""
#define TINY_GSM_USE_GPRS true
#define TINY_GSM_USE_WIFI false

#ifdef DUMP_AT_COMMANDS
#include <StreamDebugger.h>
StreamDebugger debugger(SerialAT, SerialMon);
TinyGsm        modem(debugger);
#else
TinyGsm        modem(SerialAT);
#endif

TinyGsmClient  client(modem);

#define LED 7

const char apn[]      = "v-internet";
const char gprsUser[] = "";
const char gprsPass[] = "";
const char server[] = "113.161.240.83";
const int  port = 42105;

String message = "";
unsigned long timer = 0;

void setup() {
  pinMode(LED, OUTPUT);
  SerialMon.begin(115200);
  delay(10);
  SerialMon.println("Wait...");
  SerialAT.begin(9600);
  delay(6000);
  SerialMon.println("Initializing modem...");
  modem.restart();
  // modem.init();

  String modemInfo = modem.getModemInfo();
  SerialMon.print("Modem Info: ");
  SerialMon.println(modemInfo);

  if (GSM_PIN && modem.getSimStatus() != 3) {
    modem.simUnlock(GSM_PIN);
  }
  modem.gprsConnect(apn, gprsUser, gprsPass);
  SerialMon.print("Waiting for network...");
  if (!modem.waitForNetwork()) {
    SerialMon.println(" fail");
    delay(10000);
    return;
  }
  SerialMon.println("success");

  if (modem.isNetworkConnected()) {
    SerialMon.println("Network connected");
  }

  SerialMon.print(F("Connecting to "));
  SerialMon.print(apn);
  if (!modem.gprsConnect(apn, gprsUser, gprsPass)) {
    SerialMon.println(" fail");
    delay(10000);
    return;
  }
  SerialMon.println("success");

  if (modem.isGprsConnected()) {
    SerialMon.println("GPRS connected");
  }

  SerialMon.print("Connecting to ");
  SerialMon.println(server);
  if (!client.connect(server, port)) {
    SerialMon.println(" fail");
    delay(10000);
    return;
  }
  SerialMon.println(" success");
  client.println("Hello");
}

void loop() {
  if (client.connected()) {
    // Print available data
    if (client.available()) {
      char c = client.read();
      if (c != '\n') {
        message += c;
      }
      else {
        SerialMon.println(message);
        if(message == "ON"){
           digitalWrite(LED, HIGH);
        }
        if(message == "OFF"){
           digitalWrite(LED, LOW);
        }
        message = "";
      }

    }
  }
  else {
    if (!client.connect(server, port)) {
      SerialMon.println("Reconnectting...");
      delay(5000);
    }
  }

  if (millis() - timer > 2000) {
    timer = millis();
    client.println("Xin chao Server");
  }

  //modem.gprsDisconnect();
  //SerialMon.println(F("GPRS disconnected"));
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////

Library 

Video hướng dẫn




No comments:

Post a Comment