void main() { EX0 = 0; // Disable EX0 Interrupt EA = 0; // Disable Global Interrupt Flag CPUfreq = 0; // 32 Mhz //LSRAM4Ken = 0x17; BIT_SET(Gpiooe7_0,4); while (1) { BIT_SET(Gpioo7_0,4); // Led off delay_1s(); BIT_CLEAR(Gpioo7_0,4); // Led on delay_1s(); } }
void demo_test(){ tempcounter=2; char c=0; //if(SolarStatus()==1){ if (BatteryCharged()){ // if (ReadInitFlag()==0){ //check if its first initialisation of device // GSM_ON(); //turn on GSM module // SIM900_SEND(2); //send a configuration request message to server // SetInitFlag(); //set initcheck flag // } for (char d=0; d<TRANSMIT_FREQ; d++){ days++; //increment days for (int i=0; i<tempcounter; i++){ getTempHum(); //get temperature and humidity sensor while ((TEMP_INT==0)&&(c<=3)){ //check DHT11 sensor 3 times for reading if no data received getTempHum(); c++; } DayTEMP[i]=TEMP_INT; DayHUM[i]=RH_INT; delay_1s(3); //wait 30 seconds between each temperature readings } avgTempHum(); //calculate average temperature and humidity minmaxTempHum(); //calculate minimum and maximum temperature and humidity getWaterLevel(); //get water level from ultrasonic sensor getConductivity(); getSolarReading(); getBatteryReading(); ShiftData(); //shift gathered data by offset if ((WaterLevel-OFFSET) >= WATER_THRESHOLD){ //check if water level is too low SMS_data[0]=WARNING_PREFIX; //initiate message with warning char SMS_data[1]=WaterLevel; //put water level in text message SMS_data[2]=DATA_SUFFIX; //end message with suffix GSM_ON(); //turn on sim900 delay_1s(5); //wait for GSM to connect to network SIM900_SEND(1); //Send data message to server GSM_OFF(); //turn off sim900 } SaveData(); //Sava sensor readings to memory } } if (!BatteryCharged()){ MonitorBattery(); } SMS_data[0]=DATA_PREFIX; //start message with prefix gatherData(); //read data from memory getCheckByte(); //calculate check byte GSM_ON(); //turn on sim900 delay_1s(10); //wait for GSM to connect to network puts1USART("AT\r\n"); delay_1s(5); SIM900_SEND(1); //Send data message to server //} //solarpanel check }
int main(void) { DDRD = 0xff; /* use all pins on Port D for output */ while(1) { PORTD = 0xff; /* set output high -> turn all LEDs off */ delay_1s(); PORTD = 0xfe; /* turn on PD0 led */ delay_1s(); } }
int main(void) { uint8_t i; char buf[20], s[20]; ioinit(); stdout = stdin = &uart_str; stderr = &lcd_str; fprintf(stderr, "Hello world!\n"); for (;;) { printf_P(PSTR("Enter command: ")); if (fgets(buf, sizeof buf - 1, stdin) == NULL) break; if (tolower(buf[0]) == 'q') break; switch (tolower(buf[0])) { default: printf("Unknown command: %s\n", buf); break; case 'l': if (sscanf(buf, "%*s %s", s) > 0) { fprintf(&lcd_str, "Got %s\n", s); printf("OK\n"); } else { printf("sscanf() failed\n"); } break; case 'u': if (sscanf(buf, "%*s %s", s) > 0) { fprintf(&uart_str, "Got %s\n", s); printf("OK\n"); } else { printf("sscanf() failed\n"); } break; } } fprintf(stderr, "Bye-bye"); delay_1s(); for (i = 0; i < 3; i++) { putc('.', stderr); delay_1s(); } fprintf(stderr, "\n "); return 0; }
void turnGpsOn(void){ GPIO_ResetBits(GPIOC, RESET_PIN); delayMs(200); GPIO_SetBits(GPIOC, RESET_PIN); //Set on pin delay_1s(); GPIO_SetBits(GPIOF, ON_PIN); delayMs(200); GPIO_ResetBits(GPIOF, ON_PIN); }
/* Init on board LEDs */ void led_init() { drive(LED1); drive(LED2); set_output(LED1); set_output(LED2); delay_1s(); clr_output(LED1); clr_output(LED2); }
int main(void) { DDRD = 0xff; /* use all pins on Port D for output */ PORTD = 0xff; /* set output high -> turn all LEDs off */ char pos = 0; while(1) { /* toggle PD0 led - 3 variants */ /* PORTD ^= 0x01; */ /* PORTD ^= (1<<PORTD0); */ /* PORTD ^= _BV(PORTD0); */ PORTD = ~(1<<pos); delay_1s(); PORTD = 0xFF; delay_1s(); pos++; pos %= 8; } }
void routine(){ START: if(SolarStatus()==1){ //if solar-panel is on solarcounter = 0; while (BatteryCharged()){ //if battery is charged if (ReadInitFlag()==0){ //check if its first initialisation of device GSM_ON(); //turn on GSM module SIM900_SEND(2); //send a configuration request message to server SetInitFlag(); //set initcheck flag } char c=0; while ((TEMP_INT==0)&&(c<=3)){ //check DHT11 sensor 3 times for reading if no data received getTempHum(); c++; } DayTEMP[tempcounter]=TEMP_INT; DayHUM[tempcounter]=RH_INT; tempcounter++; delay_1ms(1); sleep(); if (tempcounter==2){ days++; //increment days avgTempHum(); //calculate average temperature and humidity minmaxTempHum(); //calculate minimum and maximum temperature and humidity getConductivity(); //get conductivity value from sensor getWaterLevel(); //get water level from ultrasonic sensor ShiftData(); //shift gathered data by offset if ((WaterLevel-OFFSET) >= WATER_THRESHOLD){ //check if water level is too low SMS_data[0]=WARNING_PREFIX; //initiate message with warning char SMS_data[1]=WaterLevel; //put water level in text message SMS_data[2]=DATA_SUFFIX; //end message with suffix GSM_ON(); //turn on sim900 delay_1s(10); //wait for GSM to connect to network SIM900_SEND(1); //Send data message to server } } } if (!BatteryCharged()){ MonitorBattery(); } if (SolarStatus()==0) //if solar-panel is off goto OFF; goto START; } else { //when solar-panel is off OFF: SaveData(); //Sava sensor readings to memory tempcounter=0; //check if data transmission frequency is met if (days >= TRANSMIT_FREQ){ SMS_data[0]=DATA_PREFIX; //start message with prefix gatherData(); //read data from memory getCheckByte(); //calculate check byte GSM_ON(); //turn on sim900 delay_1s(10); //wait for GSM to connect to network SIM900_SEND(1); //Send data message to server days=0; } //reset days counter only after successful tranmsission //sleep for 6h for (char z=0; z<3; z++){ sleep(); } while (SolarStatus()==2){ //if solar-panel is off for (char z=0; z<5; z++){ delay_1s(60); } solarcounter++; if (solarcounter > SOLAR_THRESHOLD){ //turn on Fault LED goto START; } } } }