Hi everyone.
In This Post I Wii Share with you How We Can Send UTF SMS By Esp32 with MC60 in Nanoframework.
At First, We Must Connect to MC60 By UART
Here We Prepare and Open the Serial Commutation (COM2):
Configuration.SetPinFunction(17, DeviceFunction.COM2_TX);
Configuration.SetPinFunction(16, DeviceFunction.COM2_RX);
_gsmSerialDevice = new SerialPort("COM2");
_gsmSerialDevice.BaudRate = 9600;// 9600;
_gsmSerialDevice.Parity = Parity.None;
_gsmSerialDevice.StopBits = StopBits.One;
_gsmSerialDevice.Handshake = Handshake.None;
_gsmSerialDevice.DataBits = 8;
_gsmSerialDevice.Open();
Now We Must Initial MC60 To Send SMS:
SendCMD("AT+IPR=9600");
SendCMD("AT+CMGD=1,4");
SendCMD("AT+CMGF=1");
SendCMD("AT+CNMI=2,2,0,0,0");
The SendCMD Implementation:
public void SendCMD(string cmd)
{
string command = cmd + "\n";
SendATCommand(command);
Thread.Sleep(1000);
}
As I know Many Modules Like MC60 doesn’t Support from UTF Encoding So for Sending UTF SMS We have to Work with UCS2.
For That I Write a Method to Convert Text to UCS2:
private string ConvertToUCS2(string input)
{
StringBuilder ucs2String = new StringBuilder();
foreach (char c in input)
{
ucs2String.Append(((int)c).ToString("X4"));
}
return ucs2String.ToString();
}
For Send UTF Message with UCS2 We Must Convert Both Phone Number and Text to UCS2 format:
var ucs2Message= ConvertToUCS2("سلام");
var ucs2PhoneNumber = ConvertToUCS2(+980000000000);
Now Time to Send SMS With This Sequence:
_gsmSerialDevice.Write("AT+CSMP=17,167,2,25\n");
_gsmSerialDevice.Write("AT+CSCS=\"UCS2\"\n");
_gsmSerialDevice.Write($"AT+CMGS=\"{ucs2PhoneNumber}\"\n");
_gsmSerialDevice.Write($"{ucs2Message }\x1A");
OK Done! The UTF Message Sent! :)
Comments
Please log in or sign up to comment.