unsigned char SAT_DATA[57],i;
unsigned char error, byte_read,FLAG=2,FLAG1=0,FLAG2=2;
sbit fin1 at RB0_bit;
sbit shock at RB6_bit;
sbit shock1 at RB7_bit;
unsigned short count=0;
unsigned char RA=0, BYTE=0,BYTE1;
unsigned char SITE[]="gprsmanager.orgfree.com/animal/gprsvalue.php?";
//gprsmanager.orgfree.com/animal/gprsvalue.php
void RX_GPRMS()
{
unsigned char RX=0;
while(RX!='$')
{
RX=Soft_UART_Read(&error); // Read byte, then test error flag
}
RX=0;
while(RX!='G')
{
RX=Soft_UART_Read(&error); // Read byte, then test error flag
}
RX=0;
while(RX!='P')
{
RX=Soft_UART_Read(&error); // Read byte, then test error flag
}
RX=0;
while(RX!='R')
{
RX=Soft_UART_Read(&error); // Read byte, then test error flag
}
RX=0;
while(RX!='M')
{
RX=Soft_UART_Read(&error); // Read byte, then test error flag
}
RX=0;
while(RX!='C')
{
RX=Soft_UART_Read(&error); // Read byte, then test error flag
}
RX=0;
}
void RX_DATA()
{
for(i=0;i<57;i++)
{
SAT_DATA[i]=Soft_UART_Read(&error); // Read byte, then test error flag
}
}
void TRANSMIT(unsigned char *string)
{
while(*string)
Soft_UART_Write(*string++);
}
void SEND_CMD(unsigned char *BASE_ADD,unsigned char COUNT)
{ unsigned char i;
for(i=0;i<COUNT;i++)
{
UART1_Write(*BASE_ADD);
BASE_ADD++;
}
}
void ENTER(void)
{
UART1_Write(13);
UART1_Write(10);
}
void RX_REPLY()
{
RA=0;
while(RA!='K')
{
while(!UART1_Data_Ready()); // If data is received,
RA= UART1_Read();
// UART1_Write(RX);
}
}
void val()
{
UART1_Write('"');
}
void fin1_angle_0()
{ //for servo motor at angle 0 degree
for (count=0;count<30;count++) //loop
{
fin1=1;
delay_us(582);
fin1=0;
delay_us(19418);
// add with 19418us to be 20000us because servo recognizes 20us signals
}
}
void fin1_angle_90() // for s bervo motor at angle 90 degrees
{
for (count=0;count<30;count++)
{
fin1=1;
delay_us(1400);
fin1=0;
delay_us(18600);
}
}
void main() {
TRISB0_bit=0;
TRISB6_bit=0;
TRISB7_bit=0;
PORTB=0X00;
UART1_Init(9600); // Initialize UART module at 9600 bps
Delay_ms(100);
//UART1_Write_Text("Start");
//UART1_Write(10);
// UART1_Write(13);
error=Soft_UART_Init(&PORTC, 4, 3, 9600, 0);
Delay_ms(100);
Soft_UART_Write('r');
Delay_ms(100);
fin1_angle_90();
fin1_angle_0();
fin1_angle_90();
fin1_angle_0();
strt:
Delay_ms(100);
SEND_CMD("AT",2);
ENTER();
Delay_ms(1000);
SEND_CMD("AT",2);
ENTER();
Delay_ms(500);
SEND_CMD("AT+CMGF=1",9);
ENTER();
Delay_ms(1000);
SEND_CMD("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"",29);
ENTER();
RX_REPLY();
Delay_ms(500);
SEND_CMD("AT+SAPBR=3,1,\"APN\",\"WWW\"",25);
ENTER();
RX_REPLY();
Delay_ms(1000);
SEND_CMD("AT+SAPBR=1,1",12);
ENTER();
BYTE=0;
while(BYTE!='K')
{
while(!UART1_Data_Ready()); // If data is received,
BYTE = UART1_Read();
if(BYTE=='E')
goto strt;
}
Delay_ms(500);
SEND_CMD("AT+HTTPINIT",11);
ENTER();
RX_REPLY();
Delay_ms(500);
SEND_CMD("AT+HTTPPARA=\"CID\",1",19);
ENTER();
RX_REPLY();
Delay_ms(1000);
// SEND_CMD("AT+HTTPPARA=\"URL\",",18);
//val();
//SEND_CMD(SITE,41);
while(1)
{
Delay_ms(5000);
RX_GPRMS();
RX_DATA();
/* TRANSMIT("LAT") ;
for(i=14;i<26;i++)
{
Soft_UART_Write(SAT_DATA[i]);
}
TRANSMIT("LOG");
for(i=27;i<39;i++)
{
Soft_UART_Write(SAT_DATA[i]);
}
Delay_ms(1000);
Soft_UART_Write(10);
Soft_UART_Write(13);
Delay_ms(1000); */
SEND_CMD("AT+HTTPPARA=\"URL\",",18);
val();
//val();
SEND_CMD(SITE,45);
// TRANSMIT("LAT") ;
UART1_Write_Text("v1=");
for(i=14;i<23;i++)
{
Soft_UART_Write(SAT_DATA[i]);
UART1_Write(SAT_DATA[i]);
}
// TRANSMIT("LOG");
UART1_Write('&');
UART1_Write_Text("v2=");
for(i=27;i<36;i++)
{
Soft_UART_Write(SAT_DATA[i]);
UART1_Write(SAT_DATA[i]);
}
/* for(i=0;i<57;i++)
{
SAT_DATA[i]=Soft_UART_Read(&error); // Read byte, then test error flag
UART1_Write(SAT_DATA[i]);
} */
val();
ENTER();
// RX_REPLY();
Delay_ms(1000);
SEND_CMD("AT+HTTPACTION=0",15);
ENTER();
while(BYTE1!='2')
{
while(!UART1_Data_Ready()); // If data is received,
BYTE1 = UART1_Read();
}
Delay_ms(2000);
// red=0;
SEND_CMD("AT+HTTPREAD=0,200",17);
ENTER();
while(BYTE1!='@')
{
while(!UART1_Data_Ready()); // If data is received,
BYTE1 = UART1_Read();
if(BYTE1=='K')
goto END;
// UART1_Write(RX);
}
while(!UART1_Data_Ready()); // If data is received,
BYTE1 = UART1_Read();
if(BYTE1=='S')
{
// RELAY=1;
if(FLAG2==0)
{
FLAG2=1;
shock=1;
Delay_ms(10);
shock1=1;
Delay_ms(10);
}
}
FLAG2=0;
if(BYTE1=='N')
{
// RELAY=1;
if(FLAG==0)
{
FLAG=1;
fin1_angle_90();
// Delay_ms(1000);
fin1_angle_0();
}
}
if(BYTE1=='F')
FLAG=0;
// RELAY=0;
Delay_ms(500);
END:
Delay_ms(1000);
}
}
unsigned char error, byte_read,FLAG=2,FLAG1=0,FLAG2=2;
sbit fin1 at RB0_bit;
sbit shock at RB6_bit;
sbit shock1 at RB7_bit;
unsigned short count=0;
unsigned char RA=0, BYTE=0,BYTE1;
unsigned char SITE[]="gprsmanager.orgfree.com/animal/gprsvalue.php?";
//gprsmanager.orgfree.com/animal/gprsvalue.php
void RX_GPRMS()
{
unsigned char RX=0;
while(RX!='$')
{
RX=Soft_UART_Read(&error); // Read byte, then test error flag
}
RX=0;
while(RX!='G')
{
RX=Soft_UART_Read(&error); // Read byte, then test error flag
}
RX=0;
while(RX!='P')
{
RX=Soft_UART_Read(&error); // Read byte, then test error flag
}
RX=0;
while(RX!='R')
{
RX=Soft_UART_Read(&error); // Read byte, then test error flag
}
RX=0;
while(RX!='M')
{
RX=Soft_UART_Read(&error); // Read byte, then test error flag
}
RX=0;
while(RX!='C')
{
RX=Soft_UART_Read(&error); // Read byte, then test error flag
}
RX=0;
}
void RX_DATA()
{
for(i=0;i<57;i++)
{
SAT_DATA[i]=Soft_UART_Read(&error); // Read byte, then test error flag
}
}
void TRANSMIT(unsigned char *string)
{
while(*string)
Soft_UART_Write(*string++);
}
void SEND_CMD(unsigned char *BASE_ADD,unsigned char COUNT)
{ unsigned char i;
for(i=0;i<COUNT;i++)
{
UART1_Write(*BASE_ADD);
BASE_ADD++;
}
}
void ENTER(void)
{
UART1_Write(13);
UART1_Write(10);
}
void RX_REPLY()
{
RA=0;
while(RA!='K')
{
while(!UART1_Data_Ready()); // If data is received,
RA= UART1_Read();
// UART1_Write(RX);
}
}
void val()
{
UART1_Write('"');
}
void fin1_angle_0()
{ //for servo motor at angle 0 degree
for (count=0;count<30;count++) //loop
{
fin1=1;
delay_us(582);
fin1=0;
delay_us(19418);
// add with 19418us to be 20000us because servo recognizes 20us signals
}
}
void fin1_angle_90() // for s bervo motor at angle 90 degrees
{
for (count=0;count<30;count++)
{
fin1=1;
delay_us(1400);
fin1=0;
delay_us(18600);
}
}
void main() {
TRISB0_bit=0;
TRISB6_bit=0;
TRISB7_bit=0;
PORTB=0X00;
UART1_Init(9600); // Initialize UART module at 9600 bps
Delay_ms(100);
//UART1_Write_Text("Start");
//UART1_Write(10);
// UART1_Write(13);
error=Soft_UART_Init(&PORTC, 4, 3, 9600, 0);
Delay_ms(100);
Soft_UART_Write('r');
Delay_ms(100);
fin1_angle_90();
fin1_angle_0();
fin1_angle_90();
fin1_angle_0();
strt:
Delay_ms(100);
SEND_CMD("AT",2);
ENTER();
Delay_ms(1000);
SEND_CMD("AT",2);
ENTER();
Delay_ms(500);
SEND_CMD("AT+CMGF=1",9);
ENTER();
Delay_ms(1000);
SEND_CMD("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"",29);
ENTER();
RX_REPLY();
Delay_ms(500);
SEND_CMD("AT+SAPBR=3,1,\"APN\",\"WWW\"",25);
ENTER();
RX_REPLY();
Delay_ms(1000);
SEND_CMD("AT+SAPBR=1,1",12);
ENTER();
BYTE=0;
while(BYTE!='K')
{
while(!UART1_Data_Ready()); // If data is received,
BYTE = UART1_Read();
if(BYTE=='E')
goto strt;
}
Delay_ms(500);
SEND_CMD("AT+HTTPINIT",11);
ENTER();
RX_REPLY();
Delay_ms(500);
SEND_CMD("AT+HTTPPARA=\"CID\",1",19);
ENTER();
RX_REPLY();
Delay_ms(1000);
// SEND_CMD("AT+HTTPPARA=\"URL\",",18);
//val();
//SEND_CMD(SITE,41);
while(1)
{
Delay_ms(5000);
RX_GPRMS();
RX_DATA();
/* TRANSMIT("LAT") ;
for(i=14;i<26;i++)
{
Soft_UART_Write(SAT_DATA[i]);
}
TRANSMIT("LOG");
for(i=27;i<39;i++)
{
Soft_UART_Write(SAT_DATA[i]);
}
Delay_ms(1000);
Soft_UART_Write(10);
Soft_UART_Write(13);
Delay_ms(1000); */
SEND_CMD("AT+HTTPPARA=\"URL\",",18);
val();
//val();
SEND_CMD(SITE,45);
// TRANSMIT("LAT") ;
UART1_Write_Text("v1=");
for(i=14;i<23;i++)
{
Soft_UART_Write(SAT_DATA[i]);
UART1_Write(SAT_DATA[i]);
}
// TRANSMIT("LOG");
UART1_Write('&');
UART1_Write_Text("v2=");
for(i=27;i<36;i++)
{
Soft_UART_Write(SAT_DATA[i]);
UART1_Write(SAT_DATA[i]);
}
/* for(i=0;i<57;i++)
{
SAT_DATA[i]=Soft_UART_Read(&error); // Read byte, then test error flag
UART1_Write(SAT_DATA[i]);
} */
val();
ENTER();
// RX_REPLY();
Delay_ms(1000);
SEND_CMD("AT+HTTPACTION=0",15);
ENTER();
while(BYTE1!='2')
{
while(!UART1_Data_Ready()); // If data is received,
BYTE1 = UART1_Read();
}
Delay_ms(2000);
// red=0;
SEND_CMD("AT+HTTPREAD=0,200",17);
ENTER();
while(BYTE1!='@')
{
while(!UART1_Data_Ready()); // If data is received,
BYTE1 = UART1_Read();
if(BYTE1=='K')
goto END;
// UART1_Write(RX);
}
while(!UART1_Data_Ready()); // If data is received,
BYTE1 = UART1_Read();
if(BYTE1=='S')
{
// RELAY=1;
if(FLAG2==0)
{
FLAG2=1;
shock=1;
Delay_ms(10);
shock1=1;
Delay_ms(10);
}
}
FLAG2=0;
if(BYTE1=='N')
{
// RELAY=1;
if(FLAG==0)
{
FLAG=1;
fin1_angle_90();
// Delay_ms(1000);
fin1_angle_0();
}
}
if(BYTE1=='F')
FLAG=0;
// RELAY=0;
Delay_ms(500);
END:
Delay_ms(1000);
}
}
No comments:
Post a Comment