ethernet

Dependencies:   LCDLib

main.cpp

Committer:
WessVP
Date:
2018-12-12
Revision:
0:2ebe78041ef8

File content as of revision 0:2ebe78041ef8:

#include "mbed.h"
#include "rtos.h"
//https://os.mbed.com/users/4180_1/notebook/using-a-speaker-for-audio-output/
#include "EthernetInterface.h"


    const char* ECHO_SERVER_ADDRESS = "10.3.2.162";
    AnalogIn ain(A1);           
    AnalogOut aout(DAC0_OUT);
    PwmOut speaker(D3);
    
    int i,x=5000;
    int dist;
    
    double temp,leitura,max=30;
    
    EthernetInterface eth;
   //   Threads
   
    Thread thread1;
    Thread thread2;
    Thread thread3;
    Thread thread4;
    
    //  Mutex
Mutex mut_temp;
Mutex mut_temp_dese;

void temperatura(){
         while (true) {
             mut_temp.lock();
             leitura = ain.read();
        temp = (leitura*330); //
        
       // temp = double((ain.read()*5)/1023)/0.01;
        printf("Valor calc %0.3f%\n\r", temp);
        printf("Valor lido %0.3f%\n\n\r", leitura);
        mut_temp.unlock();
        Thread::wait(1000);
        }
     } 
     
void cooler(){
     while (true) {
    if(temp>max){
        printf("Liga o cooler\n\r");
        aout=1;
    }
    else{
        aout=0;
         printf("Desliga o cooler\n\r");
        
        }
     Thread::wait(1000);
    }
}

void speakerAlarm(){
    while(true){
        if(temp>max){
        printf("Liga o speaker\n\r");
           for (i=0; i<26; i=i+2) {
                
                speaker.period(1.0/750.0);
                speaker = double(i)/50.0;
                 wait(.25);
                 speaker.period(1.0/550.0);
                  wait(.25);
            }   
          speaker=0;
        }
    else{speaker=0;}
    Thread::wait(1000); 
    }
}
void udp_client_thread () {
 
 EthernetInterface net;
 
 while(1){printf("Ethernet socket example\n");
 if(flag==1){
    net.connect();

    // Show the network address
    const char *ip = net.get_ip_address();
    printf("IP address is: %s\n", ip ? ip : "No IP");

    // Open a socket on the network interface, and create a TCP connection to mbed.org
    TCPSocket socket;
    socket.open(&net);
    socket.connect("10.3.2.162", 5000);
   
    char mensagem=dist+'0';
    char sbuffer[] = {mensagem};

    // Send a simple http request
    char sbuffer[] = {mensagem};
    int scount = socket.send(sbuffer, sizeof sbuffer);
    printf("sent %d [%.*s]\n", scount, strstr(sbuffer, "\r\n")-sbuffer, sbuffer);

    
    // Recieve a simple http response and print out the response line
    char rbuffer[64];
    int rcount = socket.recv(rbuffer, sizeof rbuffer);
    printf("recv %d [%.*s]\n", rcount, strstr(rbuffer, "\r\n")-rbuffer, rbuffer);
    
    if(rbuffer == "m")
        DigitalOut led(LED_RED);
    // Close the socket to return its memory and bring down the network interface
    socket.close();

    // Bring down the ethernet interface
    net.disconnect();
    printf("Done\n");}
}
}
}
void digital_thread()
{
 while (true) {
 
 mut_temp.lock();
 leitura = ain.read();
 for(int i=0;i<10;i++){
    dist=i;
    flag=1;
 };
 //if(leitura != 1){
    //cont1 = cont2 + 1;
    //dist  = cont1 * 19.5; 
    //cont2 = cont2 + 1; 
    
    //if (dist == socket.recv(rbuffertemp, sizeof rbuffertemp) )
    //{socket.send(sbuffertemp, sizeof sbuffertemp)="5" ;}

}}
int main (void)
{ printf("Teste inicializa \n\n");
 //---------Inicializa
     aout=0;
    speaker = 0;
    eth.connect();
 //---------Inicializando threads-----------
 thread1.start(digital_thread);
 thread2.start(cooler);
 thread3.start(speakerAlarm);
 thread4.start(udp_client_thread);
 while(true) { }

 }