Using DHT11 sensor, sdWrite, wdt. Need to sleep more then this.

Dependencies:   DHT GPRSInterface HTTPClient_GPRS SDFileSystem USBDevice mbed

Committer:
seedteam20
Date:
Wed Apr 01 16:16:13 2015 +0000
Revision:
0:b6b64c1e74bb
Using DHT11 sensor and wdt. Not fully going to sleep.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
seedteam20 0:b6b64c1e74bb 1 /*
seedteam20 0:b6b64c1e74bb 2 IOT_hw.cpp
seedteam20 0:b6b64c1e74bb 3 2013 Copyright (c) Seeed Technology Inc. All right reserved.
seedteam20 0:b6b64c1e74bb 4
seedteam20 0:b6b64c1e74bb 5 Author:Loovee
seedteam20 0:b6b64c1e74bb 6 2013-7-21
seedteam20 0:b6b64c1e74bb 7
seedteam20 0:b6b64c1e74bb 8 This library is free software; you can redistribute it and/or
seedteam20 0:b6b64c1e74bb 9 modify it under the terms of the GNU Lesser General Public
seedteam20 0:b6b64c1e74bb 10 License as published by the Free Software Foundation; either
seedteam20 0:b6b64c1e74bb 11 version 2.1 of the License, or (at your option) any later version.
seedteam20 0:b6b64c1e74bb 12
seedteam20 0:b6b64c1e74bb 13 This library is distributed in the hope that it will be useful,
seedteam20 0:b6b64c1e74bb 14 but WITHOUT ANY WARRANTY; without even the implied warranty of
seedteam20 0:b6b64c1e74bb 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
seedteam20 0:b6b64c1e74bb 16 Lesser General Public License for more details.
seedteam20 0:b6b64c1e74bb 17
seedteam20 0:b6b64c1e74bb 18 You should have received a copy of the GNU Lesser General Public
seedteam20 0:b6b64c1e74bb 19 License along with this library; if not, write to the Free Software
seedteam20 0:b6b64c1e74bb 20 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
seedteam20 0:b6b64c1e74bb 21 */
seedteam20 0:b6b64c1e74bb 22
seedteam20 0:b6b64c1e74bb 23 #include "mbed.h"
seedteam20 0:b6b64c1e74bb 24 #include "tcp_yeelink.h"
seedteam20 0:b6b64c1e74bb 25 #include "tcp_yeelink_dfs.h"
seedteam20 0:b6b64c1e74bb 26 #include "ARCH_GPRS_HW.h"
seedteam20 0:b6b64c1e74bb 27 #include "ARCH_GPRS_HW_DFS.h"
seedteam20 0:b6b64c1e74bb 28
seedteam20 0:b6b64c1e74bb 29 DigitalOut eg10_pwr(PINPWR);
seedteam20 0:b6b64c1e74bb 30 DigitalOut eg10_on(PINONOFF);
seedteam20 0:b6b64c1e74bb 31 DigitalInOut eg10_state(PINEGSTATE);
seedteam20 0:b6b64c1e74bb 32 DigitalOut eg10_rst(PINSYSRST);
seedteam20 0:b6b64c1e74bb 33
seedteam20 0:b6b64c1e74bb 34 DigitalOut led1(PINLED1);
seedteam20 0:b6b64c1e74bb 35 DigitalOut led2(PINLED2);
seedteam20 0:b6b64c1e74bb 36 DigitalOut led3(PINLED3);
seedteam20 0:b6b64c1e74bb 37 DigitalOut led4(PINLED4);
seedteam20 0:b6b64c1e74bb 38
seedteam20 0:b6b64c1e74bb 39 DigitalOut grove_pwr(GROVE_PWR);
seedteam20 0:b6b64c1e74bb 40 DigitalIn charging(PIN_CHRGING);
seedteam20 0:b6b64c1e74bb 41 DigitalIn chargdone(PIN_CHRGDONE);
seedteam20 0:b6b64c1e74bb 42
seedteam20 0:b6b64c1e74bb 43 AnalogIn vol_bat(PIN_READBAT);
seedteam20 0:b6b64c1e74bb 44
seedteam20 0:b6b64c1e74bb 45 void IOT_HW::EG10_PWRON()
seedteam20 0:b6b64c1e74bb 46 {
seedteam20 0:b6b64c1e74bb 47 eg10_pwr = 0;
seedteam20 0:b6b64c1e74bb 48 }
seedteam20 0:b6b64c1e74bb 49
seedteam20 0:b6b64c1e74bb 50 void IOT_HW::EG10_PWROFF()
seedteam20 0:b6b64c1e74bb 51 {
seedteam20 0:b6b64c1e74bb 52 eg10_pwr = 1;
seedteam20 0:b6b64c1e74bb 53 }
seedteam20 0:b6b64c1e74bb 54
seedteam20 0:b6b64c1e74bb 55 void IOT_HW::EG10_ON()
seedteam20 0:b6b64c1e74bb 56 {
seedteam20 0:b6b64c1e74bb 57 eg10_on = 0;
seedteam20 0:b6b64c1e74bb 58 wait(2);
seedteam20 0:b6b64c1e74bb 59 eg10_on = 1;
seedteam20 0:b6b64c1e74bb 60 }
seedteam20 0:b6b64c1e74bb 61
seedteam20 0:b6b64c1e74bb 62 int IOT_HW::init()
seedteam20 0:b6b64c1e74bb 63 {
seedteam20 0:b6b64c1e74bb 64 init_io();
seedteam20 0:b6b64c1e74bb 65 EG10_PWROFF();
seedteam20 0:b6b64c1e74bb 66 wait(2); // wait 2s
seedteam20 0:b6b64c1e74bb 67 EG10_PWRON();
seedteam20 0:b6b64c1e74bb 68 EG10_PWRON();
seedteam20 0:b6b64c1e74bb 69 EG10_ON();
seedteam20 0:b6b64c1e74bb 70 return (IOT.waitString("M2MRSSI", 30));
seedteam20 0:b6b64c1e74bb 71 }
seedteam20 0:b6b64c1e74bb 72
seedteam20 0:b6b64c1e74bb 73 void IOT_HW::init_io()
seedteam20 0:b6b64c1e74bb 74 {
seedteam20 0:b6b64c1e74bb 75 eg10_pwr = 1;
seedteam20 0:b6b64c1e74bb 76 eg10_on = 1;
seedteam20 0:b6b64c1e74bb 77 }
seedteam20 0:b6b64c1e74bb 78
seedteam20 0:b6b64c1e74bb 79 int IOT_HW::getEG10_State()
seedteam20 0:b6b64c1e74bb 80 {
seedteam20 0:b6b64c1e74bb 81 eg10_state.input();
seedteam20 0:b6b64c1e74bb 82 eg10_state.mode(PullDown);
seedteam20 0:b6b64c1e74bb 83 if(eg10_state.read())
seedteam20 0:b6b64c1e74bb 84 {
seedteam20 0:b6b64c1e74bb 85 return 1;
seedteam20 0:b6b64c1e74bb 86 }
seedteam20 0:b6b64c1e74bb 87 return 0;
seedteam20 0:b6b64c1e74bb 88 }
seedteam20 0:b6b64c1e74bb 89
seedteam20 0:b6b64c1e74bb 90 void IOT_HW::EG10StateLed(unsigned char state)
seedteam20 0:b6b64c1e74bb 91 {
seedteam20 0:b6b64c1e74bb 92 eg10_state.output();
seedteam20 0:b6b64c1e74bb 93 eg10_state = 1-state;
seedteam20 0:b6b64c1e74bb 94 }
seedteam20 0:b6b64c1e74bb 95
seedteam20 0:b6b64c1e74bb 96 void IOT_HW::userLed(unsigned char led, unsigned char state)
seedteam20 0:b6b64c1e74bb 97 {
seedteam20 0:b6b64c1e74bb 98 // if(state!=0 || state!=1)return;
seedteam20 0:b6b64c1e74bb 99
seedteam20 0:b6b64c1e74bb 100 if(1==led)led1 = state;
seedteam20 0:b6b64c1e74bb 101 else if(2==led)led2 = state;
seedteam20 0:b6b64c1e74bb 102 else if(3==led)led3 = state;
seedteam20 0:b6b64c1e74bb 103 else if(4==led)led4 = state;
seedteam20 0:b6b64c1e74bb 104
seedteam20 0:b6b64c1e74bb 105 }
seedteam20 0:b6b64c1e74bb 106
seedteam20 0:b6b64c1e74bb 107 int IOT_HW::readChrgState()
seedteam20 0:b6b64c1e74bb 108 {
seedteam20 0:b6b64c1e74bb 109 if(!charging.read())return CHRGDONE;
seedteam20 0:b6b64c1e74bb 110 if(!chargdone.read())return CHRGING;
seedteam20 0:b6b64c1e74bb 111 return NOCHRG;
seedteam20 0:b6b64c1e74bb 112 }
seedteam20 0:b6b64c1e74bb 113
seedteam20 0:b6b64c1e74bb 114 float IOT_HW::readBatVol()
seedteam20 0:b6b64c1e74bb 115 {
seedteam20 0:b6b64c1e74bb 116 unsigned int tmp = vol_bat.read_u16();
seedteam20 0:b6b64c1e74bb 117
seedteam20 0:b6b64c1e74bb 118 return tmp;
seedteam20 0:b6b64c1e74bb 119 float dr = tmp;
seedteam20 0:b6b64c1e74bb 120 dr = dr/65536.0*3.3*2.0;
seedteam20 0:b6b64c1e74bb 121 return dr;
seedteam20 0:b6b64c1e74bb 122 // return ((float tmp)/65536.0*3.3*2.0);
seedteam20 0:b6b64c1e74bb 123 }
seedteam20 0:b6b64c1e74bb 124
seedteam20 0:b6b64c1e74bb 125 void IOT_HW::grovePwrOn()
seedteam20 0:b6b64c1e74bb 126 {
seedteam20 0:b6b64c1e74bb 127 grove_pwr = 0;
seedteam20 0:b6b64c1e74bb 128 }
seedteam20 0:b6b64c1e74bb 129
seedteam20 0:b6b64c1e74bb 130 void IOT_HW::grovePwrOff()
seedteam20 0:b6b64c1e74bb 131 {
seedteam20 0:b6b64c1e74bb 132 grove_pwr = 1;
seedteam20 0:b6b64c1e74bb 133 }
seedteam20 0:b6b64c1e74bb 134
seedteam20 0:b6b64c1e74bb 135
seedteam20 0:b6b64c1e74bb 136 IOT_HW iot_hw;
seedteam20 0:b6b64c1e74bb 137 /*********************************************************************************************************
seedteam20 0:b6b64c1e74bb 138 END FILE
seedteam20 0:b6b64c1e74bb 139 *********************************************************************************************************/