//----------------------------// Example Trucker Sketch//----------------------------------// // Aproveitado do site abaixo: //Copyright - https://portal.vidadesilicio.com.br/comunicacao-wireless-esp-protocolo-udp/ //--------------------------Obrigado------------------------// #include #include WiFiUDP udp; long x;//Variavel para ser enviada. void setup() { Serial.begin(115200); pinMode(0, OUTPUT);//Habilita o LED onboard como saida. digitalWrite(0, 1);//Desliga o LED. WiFi.mode(WIFI_STA);//Define o ESP8266 como Station. Serial.println("Definido este ESP como STATION"); } void loop() { connect();//Sub-rotina para conectar-se ao host. send();//Sub-rotina para enviar os dados ao host. delay(500);//Aguarda meio segundo. } void connect()//Sub-rotina para verificar a conexao com o host. { if (WiFi.status() != WL_CONNECTED)//Caso nao esteja conectado ao host, ira se conectar. { WiFi.begin("trashAP", ""); delay(2000);//Espera ate que a conexao seja feita. Serial.println("conectando ......"); } } void send()//Sub-rotina para enviar dados ao host. { if (WiFi.status() == WL_CONNECTED)//Só ira enviar dados se estiver conectado. { Serial.println("CONECTADO AO HOST"); //------visualizar que conectou com o host (caminhao)---// x = 2020;//code send to host Serial.println(" Enviando dados para o HOST "); Serial.println("<------------------------------------>"); udp.beginPacket("192.168.4.1", 555);//reinicialize packet de RX to IP and GATE. udp.println(x);//Adiciona-se o valor ao pacote. Serial.print("enviando: "); Serial.println(x); udp.endPacket();//Finaliza o pacote e envia. digitalWrite(0, 0);//- delay(200);//- digitalWrite(0, 1);//Pisca o led rapidamente apos enviar. } else//Caso nao esteja com uma conexao estabelicida ao host, piscara lentamente. { Serial.println("FALHA DE CONEXAO com o HOST"); Serial.println("<------------------------------------>"); //----visualiar que conexao caiu------// digitalWrite(0, 0); delay(2000); //digitalWrite(0, 1);tirei para o host não pulsando } } //-------------------------------FINISH-----------------------------------// //----------------------------// Example House host//----------------------------------// #include #include WiFiUDP udp; String req; void setup() { pinMode(0, OUTPUT);//Habilita o GPIO 0 como saida. digitalWrite(0, 1);//Desliga o LED. Serial.begin(115200);//Habilita a comunicaçao serial para a string recebida ser lida no Serial monitor. Serial.println("<---------------------------------------->"); Serial.println("Desligou GPIO 0"); WiFi.mode(WIFI_AP);//Define o ESP8266 como Acess Point. WiFi.softAP("LIXO", "");//Cria um WiFi de nome "NodeMCU" e sem senha. delay(2000);//Aguarda 2 segundos para completar a criaçao do wifi. Serial.println(" Criou rede TRASH "); Serial.println("Preparando para receber pacotes"); Serial.println("----------NAO CONECTADO AO CLIENTE(caminhao)------------"); udp.begin(555);//Inicializa a recepçao de dados UDP na porta 555 } void loop() { listen();//Sub-rotina para verificar a existencia de pacotes UDP. } void listen()//Sub-rotina que verifica se há pacotes UDP's para serem lidos. { if (udp.parsePacket() > 0)//Se houver pacotes para serem lidos { req = "";//Reseta a string para receber uma nova informaçao while (udp.available() > 0)//Enquanto houver dados para serem lidos { char z = udp.read();//Adiciona o byte lido em uma char delay(20); req += z;//Adiciona o char à string } } //Após todos os dados serem lidos, a String estara pronta. Serial.print(req);//MOSTRA TODA STRING RECEBIDA DO CAMINHAO. digitalWrite(0, 0);//liga LED ou acionar relé delay(1000);//delay de 1 segundo digitalWrite(0, 1);//desliga LED ou desliga relé. } //--------------FINISH-----------------//