weslley picone
/
APSSO_GeizieLucas
ethernet
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) { } }