Using DHT11 sensor, sdWrite, wdt. Need to sleep more then this.
Dependencies: DHT GPRSInterface HTTPClient_GPRS SDFileSystem USBDevice mbed
ARCH_GPRS_HW/ARCH_GPRS_HW.cpp@0:b6b64c1e74bb, 2015-04-01 (annotated)
- 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?
User | Revision | Line number | New 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 | *********************************************************************************************************/ |