跳到主要内容

Seeeduino GPRS

enter image description here

Seeeduino GPRS is a IoT panel, you can connect to the internet through GPRS wireless network with it. Making/answering voice calls and sending/receiving SMS messages are also supported. Meanwhile, Seeeduino GPRS supports FM radio function and bluetooth communication. Seeeduino GPRS is base on Atmage32U4 and SIM800H. Atmage32U4 is a microcontroller and it is compatible with Arduino. SIM800H support Quad-band 850/900/1800/1900MHz, it can transmit Voice, SMS and data information with low power consumption. SIM800H also brings some extra features like for example Bluetooth and FM radio. It is designed with power saving technique so that the current consumption is as low as 0.1mA in sleep mode.

enter image description here

Application Ideas

  • Internet of Things
  • Smart House
  • Wearable Designed
  • DIY Phone
  • Industrial

Here is some funny project for your reference.

Arduino GPS/GSM TrackerArduino Phone 2.0Arduino GPRS Weather Station
enter image description hereenter image description hereenter image description here
Make it NowMake it NowMake it Now

Features

  • Compatible with standard Arduino Leonardo
  • Quad-Band 850/900/1800/1900MHz
  • Headset jack
  • Convenient external SIM card holder
  • Control via AT commands
  • Supports Bluetooth
  • Supports FM Radio
  • Current < 2A
  • Arduino Leonardob Bootloader

Specification

SIM800H Model

ParameterValue
GPRS ModelSIM800H
Quad-Band850/900/1800/1900MHz
GPRS multi-slot class12/10
GPRS mobile station classB
Standard GSM phase2/2+
FM76~109MHz
BluetoothCompliant with 3.0+EDR
Supply voltage range3.4 ~ 4.4V

AVR Arduino Microcontroller

ParameterValue
MicrocontrollerATmega32u4
Flash Memory32KB
SRAM2.5kB
EEPROM1kB
Clock Speed16MHz
Operating Voltage5V
Digital I/O Pins20
PWM Channels7
Analog Input Channels12

Hardware Overview

The images below show an overview of Seeeduino GPRS hardware features. The pin-out and alternate functions of various pins of Seeeduino GPRS are shown in the pin-out diagram. This could be used as a quick reference.

enter image description here

  • Power Switch Slide switch used to change the logic level and power output of the board to either 5V or 3.3V. Nowadays many new and great sensors are being develop to work with 3.3V, with other duino boards you would need to place a logic level converter between the board and these sensor(s), with the Seeeduino GPRS board all you have to do is slide the switch!

  • DC Input The DC Input allows your Seeeduino GPRS board to be powered from a wall adapter so that you can supply more power to your project if needed, for example when using DC motors or other high power devices. The DC input can be 9V-12V and peak current is 2A. But there's a hardware bug in Seeeduino GPRS that you have to notice. When an external power input, there's very short 6V at the 5V pin, last about 2ms. It is risk to destroy the device that connected to 5V. So we recommend that don't use the DC Input to power the system. And we had considered to fix the bug already, but will not come out very soon.

  • Breakout for SIM800h You can debug Sim800h by this interface.

  • ICSP This is the ICSP connection for the ATMEGA32U4-MUR, it is located in the standard ICSP/SPI position for Arduino Uno, Due, Mega, and Leonardo compatible hardware (e.g. shields) that may use this connector. The SPI pins in this port: MISO, SCK, and MOSI, please note that those pins DIDN'T connect to D11~D13.

  • LED PWR2 SIM800H Power Indication

  • LED STA Operating Status Indication

  • LED NET

StatusSIM800H Behavior
OffSIM800H is not running
64ms on/800ms offSIM800H not registered the network
64ms on/3000ms offSIM800H registered the network
64ms on/300ms offSIM800H communication is established

Install the Driver

First of all, you need to:

  • Get a Micro-USB cable You need a Micro-USB cable first; the data cable of an Android Phone will do fine. If you can't find one, you can buy one here.

  • Connect the board Connect the Arduino board to your computer using the USB cable. The green power LED (labelled PWR) should go on.

For Windows

备注
This drive is available for Windows XP, Windows Vista, Windows 7, Windows 8/8.1 and Windows 10.

enter image description here

  • Plug in your board and wait for Windows to begin its driver installation process. After a few moments, the process will fail, despite best efforts.
  • Click on the Start Menu, and open up the Control Panel.
  • While in the Control Panel, navigate to System and Security. Next, click on System. Once the System window is up, open the Device Manager.
  • Look under Ports (COM & LPT). You should find an open port named "Seeeduino GPRS". If there is no COM & LPT section, look under "Other Devices" for "Unknown Device".
  • Right click on the "Seeeduino GPRS" port and choose the "Update Driver Software" option.
  • Next, choose the "Browse my computer for Driver software" option.
  • Finally, navigate to and select the driver file named "seeed_usb_serial.inf"
  • Windows will finish up the driver installation from there.

For Mac OSX

You don't need to install any drivers.

Getting Started

备注
If this is your first time using Arduino, we highly recommend you to refer to [Getting Started with Arduino](https://wiki.seeedstudio.com/Getting_Started_with_Arduino)

First of all, you need to Install an Arduino Software.

enter image description here

Launch the Arduino application

Double-click the Arduino application (arduino.exe) you have previously downloaded.

备注
If the Arduino Software loads in a different language, you can change it in the preferences dialog. See the [Arduino Software (IDE) page](https://www.arduino.cc/en/Guide/Environment#languages) for details.

Open the Blink example

Open the LED blink example sketch: File > Examples >01.Basics > Blink.

enter image description here

Select your board

You'll need to select the entry in the Tools > Board menu that corresponds to your Arduino. Selecting a Arduino Leonardo. If you can not find the Arduino Leonardo, please check How to Add Seeed boards to Arduino IDE

enter image description here

Select your serial port

Select the serial device of the Arduino board from the Tools | Serial Port menu. This is likely to be COM3 or higher (COM1 and COM2 are usually reserved for hardware serial ports). To find out, you can disconnect your Arduino board and re-open the menu; the entry that disappears should be the Arduino board. Reconnect the board and select that serial port.

enter image description here

备注
On the Mac, this should be something with **/dev/tty.USBmodem**.

Upload the program

Now, simply click the "Upload" button in the environment. Wait a few seconds and if the upload is successful, the message "Done uploading." will appear in the status bar.

enter image description here

A few seconds after the upload finishes, you should see the pin 13 (LED Pin 13) LED on the board start to blink (in green). If it does, congratulations! You've gotten Arduino up-and-running. If you have problems, please see the troubleshooting suggestions.

Getting Started on Linux

For using on Linux, please go to Installing Arduino on Linux

GPRS Function

Seeeduino GPRS offers the function of a mobile phone such as making/receiving voice calls, sending/receiving SMSes, make a TCP connection etc. Here are the Seeeduino GPRS Library, please download it to your computer to use Seeeduino GPRS. Here is a brief introduction.

To start to play with the Seeeduino GPRS, a headphone and a SIM card are required.

enter image description here

enter image description here

To make a call

Open the example sketch GPRS_CallUp in libraries/Seeeduino_GPRS/example/GPRS_CallUp/, replace the phone number in callUp function, then compile the sketch and upload it to your board. Seeeduino GPRS will call the number specified in the code.

#include <gprs.h>
#include <SoftwareSerial.h>

GPRS gprs;

void setup() {
Serial.begin(9600);
Serial.println("GPRS - Call up Test...");
gprs.preInit();//power on SIM800
delay(1000);
while(0 != gprs.init()) { //gprs init
delay(1000);
Serial.print("init error\r\n");
}
Serial.println("Init success, start to call...");
gprs.callUp("150****9566");
}

void loop() {
//nothing to do
}

To send an SMS

Just like calling, an SMS can be sent with Seeeduino GPRS. Open the example sketch GPRS_SendSMS in libraries/Seeeduino_GPRS/example/GPRS_SendSMS/, and replace the phone number and message in sendSMS function, then compile the sketch and upload it to your board. Seeeduino GPRS will send the message to the number specified in the code.

#include <gprs.h>
#include <SoftwareSerial.h>

GPRS gprs;

void setup() {
Serial.begin(9600);
Serial.println("GPRS - Send SMS Test ...");
gprs.preInit();
delay(1000);
while(0 != gprs.init()) {
delay(1000);
Serial.print("init error\r\n");
}
Serial.println("Init success, start to send SMS message...");
gprs.sendSMS("130****3364","hello,world"); //define phone number and text
}

void loop() {
//nothing to do
}

To answer a Call & read an SMS

If someone calls or send a message to you, Seeeduino GPRS can also answer the call or read the message out. Open the example sketch GPRS_LoopHandle in libraries/Seeeduino_GPRS/example/GPRS_LoopHandle/, then compile the sketch and upload it to your board, the Seeeduino GPRS will poll to check if there is an incoming call or SMS. If there is an incoming call, Seeeduino GPRS will answer the call automatically. If there is an incoming SMS, Seeeduino GPRS will show the message in Serial Monitor.

#include <gprs.h>
#include <SoftwareSerial.h>
#include <stdio.h>

char gprsBuffer[64];
int i = 0;
char *s = NULL;
int inComing = 0;

GPRS gprs;

void setup() {
Serial.begin(9600);
Serial.println("GPRS - LoopHandle Test...");
gprs.preInit();
while(0 != gprs.init()) {
delay(1000);
Serial.print("init error\r\n");
}
Serial.println("Init success, start to monitor your call or message...");
}

void loop() {
if(gprs.serialSIM800.available()) {
inComing = 1;
}else{
delay(100);
}

if(inComing){
gprs.readBuffer(gprsBuffer,32,DEFAULT_TIMEOUT);
Serial.print(gprsBuffer);

if(NULL != strstr(gprsBuffer,"RING")) {
gprs.answer();
}else if(NULL != (s = strstr(gprsBuffer,"+CMTI: \"SM\""))) { //SMS: $$+CMTI: "SM",24$$
char message[MESSAGE_LENGTH];
int messageIndex = atoi(s+12);
gprs.readSMS(messageIndex, message,MESSAGE_LENGTH);
Serial.print(message);
}
gprs.cleanBuffer(gprsBuffer,32);
inComing = 0;
}
}

FM Radio Function

Seeeduino GPRS has a FM radio function. Open the example sketch FM_Test in libraries/Seeeduino_GPRS/example/FM_Test/, and connect a button to your board, then compile the sketch and upload it to your board, Seeeduino GPRS functions like an FM radio. Even the channel can be changed with the button.

#include <fm.h>
#include <SoftwareSerial.h>

int channelButton = 5; //used for changing channel
FM fm;

void setup() {
pinMode(channelButton,INPUT);
Serial.begin(9600);
Serial.println("FM Test...");
fm.preInit();
while(0 != fm.powerOn()){
Serial.println("FM power on failed, try again...");
delay(2000);
}
fm.setVolume(6); //0,1,2,3,4,5,6
fm.scanChannel();
Serial.println("FM init success");
}

void loop() {
while(HIGH == digitalRead(channelButton)){
delay(50);
}
Serial.print("change Channel\r\n");
fm.channelNext();
while(LOW == digitalRead(channelButton)){
delay(50);
}
}

Bluetooth Function

Seeeduino GPRS can be used as a bluetooth device, but it is still not very stable yet. There are two examples sketches in library. The first one is Bluetooth AT Command, you can send AT command to Seeeduino GPRS through it, and the other one is Bluetooth_Communicate, you can communicate with Seeeduino GPRS in SPP profile with it, but it may go wrong while connecting to your bluetooth device or mobile. Below is the code of Bluetooth AT Command.

#include <bluetooth.h>
#include <SoftwareSerial.h>

#define DEFAULT_TIMEOUT 5
#define BT_BUF_LEN 32
BlueTooth bluetooth;

char bluetoothBuffer[BT_BUF_LEN];
int start = 0;

void setup() {
Serial.begin(9600);
Serial.println("Bluetooth AT Command Test...");
bluetooth.preInit();
delay(3*1000);
while(0 != bluetooth.powerOn()){ //bluetooth PowerOn
Serial.println("bluetooth power on failed, try again...");
delay(2000);
}
}

void loop() {
if(bluetooth.serialSIM800.available()) {
start = 1;
}else{
delay(500);
}

if(start){
//bluetooth.cleanBuffer(bluetoothBuffer,64);
bluetooth.readBuffer(bluetoothBuffer,BT_BUF_LEN,DEFAULT_TIMEOUT);
if(NULL != strstr(bluetoothBuffer,"+BTPAIRING:")){
bluetooth.acceptPairing();
}
if(NULL != strstr(bluetoothBuffer,"+BTCONNECTING:")){
bluetooth.acceptConnect();
}
start = 0;
}
}

Schematic Online Viewer

Resources

Tech Support

Please submit any technical issue into our [forum](https://forum.seeedstudio.com/).

Loading Comments...