Estoy Tratando de hacer un servidor udp y luego de recibir un mensaje por UDP, arduino utilice el modulo A6 GSM para hacer una llamada y enviar un mensaje SMS.
ya hice lo del servidor UDP, pero no he podido hacer que llame con el A6 GSM.
Este codigo permite hacer llamada, pero tengo que desconectar y conectar el arduino de la pc y en ese momento a veces llama.
char phone_no[]="18093353345";
void setup()
{
Serial.begin(9600);
delay(200);
Serial.println("AT");
delay(1000);
Serial.print("ATD");
Serial.println(phone_no);
//Serial.println(";");
delay(20000);
Serial.println("ATH");
}
void loop()
{
}
este codigo es el del servidor udp
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <WiFiClient.h>
char phone_no[]="18093303345";
const char* ssid = "nombredelwifi";
const char* password = "clave del wifi";
WiFiUDP Udp;
unsigned int localUdpPort = 5025; // local port to listen on
//IPAddress ipremota(10,0,0,5);
IPAddress ipremota(10,0,0,5);
IPAddress PuertoRemoto(5020);
IPAddress Iplocal(192,168,69,101);
IPAddress Wifinet(255,255,255,0);
IPAddress Ipgateway(192,168,69,1);
IPAddress Wifidns1(8,8,8,8);
IPAddress Wifidns2(8,8,4,4);
char incomingPacket[255]; // buffer for incoming packets
char replyPacket[] = "Hi there! Got the message :-)"; // a reply string to send back
void setup()
{
Serial.begin(115200);
Serial.println();
Serial.printf("Connecting to %s ", ssid);
WiFi.mode(WIFI_STA);
//WiFi.mode(WIFI_AP);
WiFi.softAPConfig(Iplocal,Wifinet,Ipgateway);
// WiFi.config(Iplocal,Wifinet,Ipgateway);
//WiFi.begin(ssid, password);
WiFi.softAP(ssid, password);
Serial.println("Wait 100 ms for AP_START...");
delay(100);
//WiFi.softAPConfig(Iplocal,Wifinet,Ipgateway);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println(" connected");
Udp.begin(localUdpPort);
Serial.printf("Now listening at IP %s, UDP port %d\n", WiFi.localIP().toString().c_str(), localUdpPort);
}
void loop()
{
int packetSize = Udp.parsePacket();
if (packetSize)
{
// receive incoming UDP packets
Serial.printf("Received %d bytes from %s, port %d\n", packetSize, Udp.remoteIP().toString().c_str(), Udp.remotePort());
int len = Udp.read(incomingPacket, 255);
if (len > 0)
{
incomingPacket[len] = 0;
}
Serial.printf("UDP packet contents: %s\n", incomingPacket);
}
}
alguna solucion a este problema?