seeedstudio ARCH GPRS Test for GPRS function

Dependencies:   GPRS mbed

Fork of ARCH_GPRS_Demo by hs loovee

ARCH GPRS Introduction

ARCH GPRS

  • Arch GPRS is a wireless network module based on EG-10, it can achive remote data colletion function to communicate with outside world by GPRS network.
  • Arch GPRS has standard Arduino interface and Grove connectors. It’s convenient to connect existing Shields and Grove products to Arch GPRS.
  • You can use the solar panel to charge for battery, and own to its low-power design, so Arch GPRS can work normally in outdoor.
  • For more information, please visit http://www.seeedstudio.com/depot/arch-gprs-p-1657.html?cPath=6_11

main.cpp

/*
  main.cpp
  2013 Copyright (c) Seeed Technology Inc.  All right reserved.
 
  Author:lawliet zou(lawliet.zou@gmail.com)
  2013-7-21
 
  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.
 
  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.
 
  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/
#include "mbed.h"
#include "string.h"
#include "gprs.h"
 
#define SEND_SMS_TEST           0
#define CALL_UP_TEST            0
#define ANSWER_TEST             0
#define READ_SMS_TEST           0
 
#define PHONE_NUMBER            "150****9566"
 
#define PINPWR                  P1_2 // power on EG 10, low enable
#define PINONOFF                P1_7 // switch of EG10, low enable, low for 2s to turn on EG10
 
DigitalOut eg10_pwr(PINPWR);
DigitalOut eg10_on(PINONOFF);
GPRS  gprsTest(P0_19, P0_18, 115200, PHONE_NUMBER);
 
void EG10_PowerUp(void)
{
    eg10_pwr = 1;
    eg10_on  = 1;
    wait(2);
    eg10_pwr = 0;
    eg10_on = 0;
    wait(2);
    eg10_on = 1;
    wait(2);
}
 
int main(void)
{
    EG10_PowerUp();
    while(0 != gprsTest.init()) {
        wait(2);
    }
 
#if CALL_UP_TEST
    gprsTest.callUp(PHONE_NUMBER);
#endif
 
#if SEND_SMS_TEST
    gprsTest.sendSMS(PHONE_NUMBER,"hello,lawliet");
#endif
 
#if ANSWER_TEST || READ_SMS_TEST
    while(1) {
        int messageType = gprsTest.loopHandle();
        if(MESSAGE_RING == messageType) {
            gprsTest.answer();
        } else if(MESSAGE_SMS == messageType) {
            char smsMessage[SMS_MAX_LENGTH];
            gprsTest.getSMS(smsMessage);
        }
    }
#endif
 
    return 0;
}
Revision:
0:6d297fe482af
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ARCH_GPRS_HW/ARCH_GPRS_HW_DFS.h	Fri Aug 23 02:31:06 2013 +0000
@@ -0,0 +1,67 @@
+/*
+  IOT_hw_dfs.h
+  2013 Copyright (c) Seeed Technology Inc.  All right reserved.
+
+  Author:Loovee
+  2013-7-21
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public
+  License as published by the Free Software Foundation; either
+  version 2.1 of the License, or (at your option) any later version.
+
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#ifndef __ARCH_GPRS_HW_DFS_H__
+#define __ARCH_GPRS_HW_DFS_H__
+
+// pin define
+#define PINPWR          P1_2            // power on EG 10, low enable
+#define PINONOFF        P1_7            // switch of EG10, low enable, low for 2s to turn on EG10
+#define PINTX           P0_18           // EG10 TX
+#define PINRX           P0_19           // EG10 RX
+#define PINSYSRST       P1_6            // EG10 RST,high enable
+#define PINEGSTATE      P1_15           // in and out, read eg10 state, HIGH: on, LOW: off
+
+
+// grove pin
+#define GROVE_I2C_SCL   P0_4            // grove i2c pin
+#define GROVE_I2C_SDA   P0_5            // grove i2c sda
+
+#define GROVE_UART_RX   P0_14           // grove uart rx
+#define GROVE_UART_TX   P0_13           // grove uart tx
+
+#define GROVE_ADC_1     P0_12           // grove ADC, the outside one
+#define GROVE_ADC_2     P0_11           // grove ADC, the other one
+
+#define GROVE_PWR       P1_3            // control all grove power, low enable
+
+// charge circuit
+#define PIN_CHRGING     P1_1            // charging, low enable
+#define PIN_CHRGDONE    P1_0            // charge done
+#define PIN_READBAT     P0_23           // battery voltage in, the value should x2
+
+// led pin
+#define PINLED1         P1_8
+#define PINLED2         P1_9
+#define PINLED3         P1_10
+#define PINLED4         P1_11
+
+// charge state
+#define CHRGING         1
+#define CHRGDONE        2
+#define NOCHRG          3
+
+#endif
+
+/*********************************************************************************************************
+  END FILE
+*********************************************************************************************************/