seeedstudio ARCH GPRS Test for GPRS function
Fork of ARCH_GPRS_Demo by
ARCH GPRS Introduction
- 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; }
ARCH_GPRS_HW/ARCH_GPRS_HW.cpp
- Committer:
- loovee
- Date:
- 2013-08-23
- Revision:
- 0:6d297fe482af
File content as of revision 0:6d297fe482af:
/* IOT_hw.cpp 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 */ #include "mbed.h" #include "tcp_yeelink.h" #include "tcp_yeelink_dfs.h" #include "ARCH_GPRS_HW.h" #include "ARCH_GPRS_HW_DFS.h" DigitalOut eg10_pwr(PINPWR); DigitalOut eg10_on(PINONOFF); DigitalInOut eg10_state(PINEGSTATE); DigitalOut eg10_rst(PINSYSRST); DigitalOut led1(PINLED1); DigitalOut led2(PINLED2); DigitalOut led3(PINLED3); DigitalOut led4(PINLED4); DigitalOut grove_pwr(GROVE_PWR); DigitalIn charging(PIN_CHRGING); DigitalIn chargdone(PIN_CHRGDONE); AnalogIn vol_bat(PIN_READBAT); void IOT_HW::EG10_PWRON() { eg10_pwr = 0; } void IOT_HW::EG10_PWROFF() { eg10_pwr = 1; } void IOT_HW::EG10_ON() { eg10_on = 0; wait(2); eg10_on = 1; } int IOT_HW::init() { init_io(); EG10_PWROFF(); wait(2); // wait 2s EG10_PWRON(); EG10_PWRON(); EG10_ON(); return (IOT.waitString("M2MRSSI", 30)); } void IOT_HW::init_io() { eg10_pwr = 1; eg10_on = 1; } int IOT_HW::getEG10_State() { eg10_state.input(); eg10_state.mode(PullDown); if(eg10_state.read()) { return 1; } return 0; } void IOT_HW::EG10StateLed(unsigned char state) { eg10_state.output(); eg10_state = 1-state; } void IOT_HW::userLed(unsigned char led, unsigned char state) { // if(state!=0 || state!=1)return; if(1==led)led1 = state; else if(2==led)led2 = state; else if(3==led)led3 = state; else if(4==led)led4 = state; } int IOT_HW::readChrgState() { if(!charging.read())return CHRGDONE; if(!chargdone.read())return CHRGING; return NOCHRG; } float IOT_HW::readBatVol() { unsigned int tmp = vol_bat.read_u16(); return tmp; float dr = tmp; dr = dr/65536.0*3.3*2.0; return dr; // return ((float tmp)/65536.0*3.3*2.0); } void IOT_HW::grovePwrOn() { grove_pwr = 0; } void IOT_HW::grovePwrOff() { grove_pwr = 1; } IOT_HW iot_hw; /********************************************************************************************************* END FILE *********************************************************************************************************/