Rock Monitoring  V 1.0
SensorStab_GSM.cpp
Go to the documentation of this file.
1 #include "SensorStab_GSM.h"
2 
3 
5 {
10 }
15 
16  myLeds.init();
17  pinMode(DIGITAL4 ,INPUT); //Fault (LOW-Active)
18  pinMode(DIGITAL5 ,INPUT); //Charge (LOW-Active)
19  pinMode(DIGITAL6 ,OUTPUT); //Shutdown
21  gsmNodeId=Utils.readEEPROM(1024);
22  mySensors.init();
23  my3G.init();
24  gsmNodeId==Utils.readEEPROM(1024);
25 }
31  my3G.sendData(dataToSend);
32 }
39 
40  uint8_t state=0;
44  return state;
45 }
50  //myLora.deepSleep();
52  Utils.setLED(LED0, LED_OFF);
53  Utils.setLED(LED1, LED_OFF);
54  PWR.deepSleep("00:00:01:00",RTC_OFFSET,RTC_ALM1_MODE1,SOCKET0_OFF);
55  if( intFlag & RTC_INT ){
56  intFlag &= ~(RTC_INT);
57  }
58 }
64  mySensors.wakeUp();
65 }
66 void SensorStab_GSM::convertTime(uint32_t time){
70  uint8_t days = time / (60 * 60 * 24);
71  time -= days * (60 * 60 * 24);
72  uint8_t hours = time / (60 * 60);
73  time -= hours * (60 * 60);
74  uint8_t minutes = time / 60;
75  time-=minutes*60;
76  uint8_t seconds=time;
77 
78  SensorStab_GSM::timeString[0]=(48+days/10); //day
79  SensorStab_GSM::timeString[1]=(48+days%10); //day
81  SensorStab_GSM::timeString[3]=(48+hours/10); //hour
82  SensorStab_GSM::timeString[4]=(48+hours%10); //hour
84  SensorStab_GSM::timeString[6]=(48+minutes/10); //min
85  SensorStab_GSM::timeString[7]=(48+minutes%10); //min
87  SensorStab_GSM::timeString[9]=(48+seconds/10); //seconds
88  SensorStab_GSM::timeString[10]=(48+seconds%10); //seconds
90 }
95  uint8_t level=0;
96  USB.OFF();
97  digitalWrite(DIGITAL6, HIGH);//Shutdown pin activate
98  delay(200);
99  level=PWR.getBatteryLevel();
100  digitalWrite(DIGITAL6, LOW);//Shutdown pin deactivate
101  USB.ON();
102  return level;
103 }
107  switch(runState){
108  case measure:
109  USB.println();
110  USB.println("runstate = measure");
111  USB.println();
112  if(makeMeasurment()==RETURN_OK){
114  }
115  else{
116  if(measureCnt>=5){
117  measureCnt=0;
118  runState=sleep;
119  }
120  else{
121  measureCnt++;
122  }
123  }
124  break;
125  case sendServer:{
127  runState=sleep;
128  }}
129  break;
130  case sleep:
131  USB.println();
132  USB.println("runstate = sleep");
133  USB.println();
134  deepSleep();
136  break;
137  case wakingUP:
138  USB.println();
139  USB.println("runstate = wakeUP");
140  USB.println();
141  wakeUp();
143  break;
144  }
145 }
uint8_t sendData(Sensors::structSensors *sensors)
This method sends all the sensor information from the struct to the webserver.
uint8_t sensorNodeId
Definition: Sensors.h:39
void BlinkAkku(uint8_t batLevel)
This method sets the button led on or in blink state for 5 seconds (depending on battery level) (bloc...
Definition: Leds.cpp:75
char timeString[12]
void printAll()
This method reads all the sensors and prints them to the serial Port.
Definition: Sensors.cpp:212
uint8_t makeMeasurment(void)
#define RETURN_OK
Definition: Constants.h:9
void wakeUp()
This method is used to wake up the Sensors, it initializes them.
Definition: Sensors.cpp:289
void init()
This method initializes the output pins for the leds and clears both led.
Definition: Leds.cpp:9
void convertTime(uint32_t time)
void wakeUp(void)
void deepSleep(void)
Connection3G my3G
uint8_t measureCnt
uint8_t getSensorValues(Sensors::structSensors *allSensors)
This method reads the pitch and Roll Angle- Values of all 3 Accelerometers, all 3 temperatures and th...
Definition: Sensors.cpp:77
void goToSleep()
This method sets all sensors in Standby.
Definition: Sensors.cpp:278
uint8_t sendToServer(Sensors::structSensors *dataToSend)
void init()
This method initializes the operator parameters that are necessary for 3G connection.
Definition: Connection3G.cpp:9
Class that handles the communication over 3G.
Definition: Connection3G.h:15
uint8_t measureBattery(void)
Sensors::structSensors mySensorStruct
Class that handles sensors.
Definition: Sensors.h:12
void init()
This method initializes the sensors.
Definition: Sensors.cpp:15