ماژول GPRS / GSM چهار باند A6
GSM GPRS A6 Module - ElectroDragon
نمایش نسخه قابل چاپ
ماژول GPRS / GSM چهار باند A6
GSM GPRS A6 Module - ElectroDragon
سلام
انشالاه ایم ماژول کی تو فروشگاه موجود میشه؟
سلام
با 5ولت کار میکنه؟ با سیمکارتای ایرانسل کار کرده؟ (قدیمیا، جدیدیا، پیام رسان :d)...
اینجا برای یکی از پایه هاش زده vcc 5.0v این قضیه ش چیه؟ :
http://shop.aftabrayaneh.com/image/c...20-500x500.png
توی working voltageش هم نوشته از 3.3 تا 4.2؛ یعنی 3.3 بدیم کار میکنه؟ رگولاتور خالی برای تولید 4 ولت وجود نداره؟
اینجا برای توضیحات محصول نوشته:
- Working voltage: 4.5~5.5V DC (On-board voltage regulator circuit supply power for A6 module)
پشت ماژول یه آیسی با پارت نامبر MP1584 هست . که یک رگولاتور ولتاژه. یعنی با 5 ولت کار میکنه و میشه 5 ولت برای تغذیه بهش داد.
اما در مورد اینکه پایه rx هم میتونه 5 ولت را تحمل کنه شک دارم.
لطفا اطلاعاتی در مورد نحوه کار با این ماژول بزارید ، با گوگل هم چیزی پیدا نکردم، هدفم این هست که از طریق این ماژول یک وب سرویس را فراخوانی کنم.
ممنون
بالاخره وقت شد من با این ماژول کار کنم
خیلی خیلی خوبه
با پورت میکرو usb بهش پاور دادم
هیچ led ای چیزی نداره که بفهمیم روشنه ( این ویژه گیش خوب نبود )
یه پین هم داره به اسم pwr تو دیتاشیت گفته دو ثانیه 1 اش کنید تا ماژول روشن بشه
منم همین کار رو کردم و با مبدل ttl به USB وصلش کردم به کامپیوتر
روی بادریت 115200 تنظیم کردم
خیلی راحت کامند گرفت و ادامه ماجرا.......
در کل نسبت به sim800 که قبلا باهاش پروژه بستم خخیلی راحت تر بود
در مورد پین 5 ولت هم که هم پرسیده بودن
وقتی پاور رو با میکرو USB بهش دادم روی این پین هم 5 ولت افتاد ( نقش پاور اکسترنال رو بازی کرد )
زمانی که با میکرو بهش پاور ندادم وبه همین پین vcc هم 5 ولت دادم خیلی راحت راه افتاد
تنها تریکی که داره اینه که همون پین پاور رو باید دو ثانیه به ولتاژ وصل کنید تا ماژول روشن بشه
عجب ماژول باحالیه انصافا! :دی
برای HTTP request باید چه دستوراتی رو وارد کرد؟
توی لیست at کامند هاش کلا خبری از httpinit و چیزایی از این قبیل نیست :|
کدی که توی این صفحه برای یکی از شیلد های A6 هست هم کار نمیکنه :| ارور 58 میده که اینم توی لیست اروراش نیست! :|
کد:AT+CSTT="mtnirancell"," "," "
OK
AT+CIICR
OK
AT+CGATT=1
OK
AT+CGACT=1
OK
AT+SAPBR=3,1,"CONTYPE","GPRS"
+CME ERROR:58
AT+SAPBR=1,1
+CME ERROR:58
AT+HTTPINIT
+CME ERROR:58
AT+HTTPPARA="URL","www.google.com.hk"
+CME ERROR:58
AT+HTTPACTION=0
+CME ERROR:58
ایمیل زدم به خودشون میگن فقط tcp و udp داره :| چه وضعشه عاخه :|
اینجا اطلاعاتی در مورد http هست
چیپست روی شیلد دقیقا همین چیپست هست
فایل پیوست 2622
سلام این برنا مه ایه که من آپلود کردم و هرکار کردم هیچ جوابی از ماژول سیم کارت نگرفتم
از نظر سیم بندی مطمئن هستم چون از روی دیتا شیت انجام دادم
لطفا راهنمایی کنید ببینم چرا جواب نمیده .
یه سری خرید کردم چنتا وسیله دیگه هم هست میخوام برگشت بزنم لطف کنین زودتر جواب بدید تا اگه اینم مشکلی داره با همونا بفرستمش
ممنون.
سلام
آخرش تونستم راهش بندازم
از یه رگلاتور واسه تغذیش استفاده کردم
Baud rate باید روی 115200 باشه وگرنه کار نمیکنه
همینطور که گفتن کافیه پایه پاور رو حداقل دو ثانیه با 5 ولت اتصال بدید تا روشن بشه
فقط یه مشکل دارم اونم اینه که بیشتر وقت ها چیزی که مینویسم درست به ماژول نمیرسه
تو عکسی که گذاشتم نگاه کنید ، چند بار یه دستور رو میفرستم تا قبول میکنه و حرفاش تغییر میکنه.
کسی میدونه مشکلم کجاست؟؟؟
ممنون مشکلم حل شد . اگه بتونم نحوه ی اتصال پین ها رو میزارم که دوستایی که مثل من مشکل داشتن راحت بتونن ارتباط برقرار کنن
راستی یه سوال دیگه:
وقتی پیام دریاف میشه نشون نمیده و وقتی میزنم که پیام ها رو بخونم یه سری عدد نشونم میده.
اینا چجوری باید ترجمه بشن؟؟؟ کد اسکی یا هکز هستن؟؟؟
اصلا با سریال میشه فارسی ارسال و دریافت کرد؟؟؟
A6 GSM GPRS Module Basic Documentation : GSM GPRS A6 Module - ElectroDragon
براي ريست سخت افزاري ماژول بايد به پايه rst ولتاژ اعمال بشه يا اتصال به gnd برقرار بشه؟
توی این لینک در مورد پین ریست که پین شماره 12 میشه توضیح داده شده:
GSM GPRS A6 Module - ElectroDragon
با عرض سلام وخسته نباشید خدمت همه دوستان عزیز
خدمت دوستان عرض شود که ما دو تا از این ماژول خریدیم و به هیچ عنوان نتوانستیم که راه اندازیش کنیم و همه کارهایی که دوستان در این تاپیک فرمودئند انجام شد ولی راه نیفتاد که نیفتاد.همه اتصالات از جمله سریال و برق رو با همان ماژول پروگرام خود سایت به ماژول وصل کردم و با یه کابل برق رو هم بهش وصل کردم .پاور کی رو هم برای مدت 2 ثانیه برق بهش دادم ولی نشد که نشد اگه دوستان کسی میخواهد کمک کنه مرحله به مرحله کمک کنه لطفا.
دوستان در ضمن یه سوال؟
اگر یکی از این ماژول ها که در سایت موجود هست برای خرید که بدون دردسر و اذیت به آردینو وصل بشود و برنامه نوشته شده آن هم موجود باشد را معرفی بفرمایید یعنی من وصلش کردم به راحتی بتوانم باهاش اس ام اس یزنم و ازش استفاده کنم نه این که با کلی دردسر بخواهم بهش ور بروم باز هم بکار نیفتد
من تصورم اینه که شما این ماژول رو خریداری کردید :
ماژول GPRS / GSM چهار باند A6 دارای ارتباط سریال - پشتیبانی از AT Command
مراحل راه اندازی :
1.سیم کارت رو بندازید روش
2. اتصالت رو به پروگرامر به صورت زیر انجام بدید :
مبدل ماژول GND GND TX RX RX TX
2. با میکرو USB بهش پاور بدید .
3. از پین VCC اش یه انشعاب بگیرید و به پین PWR اش برای مدت 2 ثانیه وصل کنید و بعد از اون رها کنید.
4. کنسول سریال رو باز کنید و تنظیمات رو روی بادریت 115200 و تنظیم زیر انجام بدید:
فایل پیوست 3111
بعد از این با اولین AT باید OK برگردونده بشه .
با سلام
ضمن تشکر از راهنماییهاتون که کارگشا بودو حل شد،قفظ امکان ارسال پیام با دستورات at همچنان نشدوپیام دریافت کردم ولی ارسال هنگ میکندوچندین بار باید ریست شود تا برگرده به حالت عادی.لطفا راهنمایی کنید.
همچنینی اگر کدآماده یا لایبرری خاصی برای کار ازطریق بردهای آردینو اگه وجود دارد معرفی کنید.
ممنون
اول در مورد کد این که این کد باری sim800l هست اما از اونجایی که اکثر کامندها بین ماژول های سیم مشترکه میتونید ازش استفاده کنید:
فقط باید شماره پینهای ارتباط سریال نرم افزاریتون رو عوض کنید.کد:#include <SoftwareSerial.h>
SoftwareSerial SIM800(D2, D1 , 128);
#define GSMReset D3
void setup() {
Serial.begin(9600); // for serial monitor
SIM800.begin(9600); // for GSM shield
gsmPower();
gsmConfig();
dialNumber() ;
}
void loop() {
commandDetect();
}
//*********************************************************************************
void gsmConfig() {
sendCommand("ATZ", 100);
sendCommand("AT+CMGD=1,4", 200);
sendCommand("AT+CMGF=1\r", 100); // set SMS mode to text
sendCommand("AT+CFUN=1", 2000);
sendCommand("AT+CREG?", 1000);
dtmfActive();
anwerCall();
Serial.println("The end of Config process");
Serial.println("Ensert\n 'd' for dial \n 'e' for english sms \n 'f' for farsi sms \n 'h' for HttpRequest \n 's' for Send2Pachube ");
}
//**********************************************************************************
void showSms() {
char incoming_char = 0;
if ( SIM800.available() > 0)
{
incoming_char = SIM800.read(); //Get the character from the cellular serial port.
Serial.print(incoming_char); //Print the incoming character to the terminal.
}
}
//***********************************************************************************
void smsProcess() {
char incoming_char = 0;
if ( SIM800.available() > 0)
{
incoming_char = SIM800.read();
if (incoming_char == 'A')
{
delay(10);
incoming_char = SIM800.read();
if (incoming_char == 'd')
{
delay(10);
Serial.print("horaaaaaaaaaaaaaaaaaaay");
}
}
}
}
//***********************************************************************************
void gsmPower() {
pinMode(GSMReset, OUTPUT);
Serial.println("Turning GSM ON");
digitalWrite(GSMReset, HIGH);
// delay(1100);
//digitalWrite(GSMReset, LOW);
// delay(4000);
Serial.println("Start config process...");
}
//**********************************************************************************
void sendCommand(String cmd, int t)
{
SIM800.println(cmd);
readSerial();
delay(t);
}
//**************************************************************************************
void readSerial( ) {
while (SIM800.available())
{
Serial.write(SIM800.read());
}
}
//***********************************************************************************
void dialNumber() {
Serial.println("Dialing...");
sendCommand("ATD09177102643;", 100);
Serial.println("End of Dial process");
delay(2000);
Serial.println("Ensert\n 'd' for dial \n 'e' for english sms \n 'f' for farsi sms \n 'h' for HttpRequest \n 's' for Send2Pachube ");
}
//************************************************************************************
void ensms()
{
Serial.println("Sending SMS");
sendCommand("AT+CSCS=\"GSM\"", 200);
sendCommand("AT+CMGF=1", 200);
sendCommand("AT+CSMP=17,167,0,0", 200);
sendCommand("AT+CMGS=\"09177102643\"", 500);
sendCommand("Salam\n manam !\x1A", 500);
Serial.println("Englisg SMS Sent");
Serial.println("Ensert\n 'd' for dial \n 'e' for english sms \n 'f' for farsi sms \n 'h' for HttpRequest \n 's' for Send2Pachube ");
}
//****************************************************************************************
void farsisms()
{
Serial.println("Sending SMS");
sendCommand("AT+CSCS=\"HEX\"", 100);
sendCommand("AT+CMGF=1", 100);
sendCommand("AT+CSMP=17,167,0,8", 100);
sendCommand("AT+CMGS=\"09177102643\"", 500);
sendCommand("0633064406270645060C002006220641062A0627062800200631062706CC062706460647\x1A", 0);
Serial.println("Persian SMS Sent");
Serial.println("Ensert\n 'd' for dial \n 'e' for english sms \n 'f' for farsi sms \n 'h' for HttpRequest \n 's' for Send2Pachube ");
}
//*******************************************************************************************
void commandDetect() {
if (Serial.available() > 0)
{
char data = Serial.read();
switch (data)
{
case 'd' :
dialNumber();
break;
case 'e' : ensms();
break;
case 'f' : farsisms();
break;
case 'h':
SubmitHttpRequest();
break;
case 's':
Send2Pachube();
break;
}
}
}
//******************************************************************************************************
void SubmitHttpRequest()
{
sendCommand("AT+CSQ", 100);
sendCommand("AT+CGATT?", 100);
sendCommand("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"", 1000); //setting the SAPBR, the connection type is using gprs
sendCommand("AT+SAPBR=3,1,\"APN\",\"CMNET\"", 4000); //setting the APN, the second need you fill in your local apn server
sendCommand("AT+SAPBR=1,1", 2000); //setting the SAPBR, for detail you can refer to the AT command mamual
sendCommand("AT+HTTPINIT", 2000); //init the HTTP request
sendCommand("AT+HTTPPARA=\"URL\",\"www.google.com.hk\"", 1000); // setting the httppara, the second parameter is the website you want to access
sendCommand("AT+HTTPACTION=0", 10000); //submit the request
sendCommand("AT+HTTPREAD", 300); // read the data from the website you access
sendCommand("", 100);
delay(2000);
Serial.println("Ensert\n 'd' for dial \n 'e' for english sms \n 'f' for farsi sms \n 'h' for HttpRequest \n 's' for Send2Pachube ");
}
//*************************************************************************************************************************
///send2Pachube()///
///this function is to send the sensor data to the pachube, you can see the new value in the pachube after execute this function///
void Send2Pachube()
{
sendCommand("AT+CGATT?", 1000);
sendCommand("AT+CSTT=\"CMNET\"", 1000); //start task and setting the APN,
sendCommand("AT+CIICR", 3000); //bring up wireless connection
sendCommand("AT+CIFSR", 2000); //get local IP adress
sendCommand("AT+CIPSPRT=0", 3000);
sendCommand("AT+CIPSTART=\"tcp\",\"api.cosm.com\",\"8081\"", 2000); //start up the connection
sendCommand("AT+CIPSEND", 4000); //begin send data to remote server
String humidity = "1031";//these 4 line code are imitate the real sensor data, because the demo did't add other sensor, so using 4 string variable to replace.
String moisture = "1242";//you can replace these four variable to the real sensor data in your project
String temperature = "30";//
String barometer = "60.56";//
sendCommand("{\"method\": \"put\",\"resource\": \"/feeds/42742/\",\"params\"", 500); //here is the feed you apply from pachube
sendCommand(": {},\"headers\": {\"X-PachubeApiKey\":", 500); //in here, you should replace your pachubeapikey
sendCommand(" \"_cXwr5LE8qW4a296O-cDwOUvfddFer5pGmaRigPsiO0", 500); //pachubeapikey
sendCommand("jEB9OjK-W6vej56j9ItaSlIac-hgbQjxExuveD95yc8BttXc", 500); //pachubeapikey
sendCommand("Z7_seZqLVjeCOmNbEXUva45t6FL8AxOcuNSsQS\"},\"body\":", 500);
sendCommand(" {\"version\": \"1.0.0\",\"datastreams\": ", 500);
sendCommand("[{\"id\": \"01\",\"current_value\": \"" + barometer + "\"},", 500);
sendCommand("{\"id\": \"02\",\"current_value\": \"" + humidity + "\"},", 500);
sendCommand("{\"id\": \"03\",\"current_value\": \"" + moisture + "\"},", 500);
sendCommand("{\"id\": \"04\",\"current_value\": \"" + temperature + "\"}]},\"token\": \"lee\"}", 500);
SIM800.println(); ((char)26); //sending
delay(5000);
SIM800.println();
sendCommand("AT+CIPCLOSE", 100); //close the connection
delay(2000);
Serial.println("Ensert\n 'd' for dial \n 'e' for english sms \n 'f' for farsi sms \n 'h' for HttpRequest \n 's' for Send2Pachube ");
}
//******************************************************************************************************************
void dtmfActive() {
sendCommand("AT+DDET=1", 200);
}
//***************************************************************
void anwerCall() {
sendCommand("ATS0=3", 200);
}
void blinkd16(){
pinMode(16,OUTPUT);
digitalWrite(16,HIGH);
delay(100);
digitalWrite(16,LOW);
delay(100);
}
در مورد کامند هم اگر سخت افزار رعایت شده باشه و به پین پاورش هم ولتاژ داده باشید و تنظیمات کنسول رو رعایت کرده باشید تنها نکته ای که میمونه اینه که بادریتش 115200 نباشه
روی بادریت های دیگه هم تست کنید.
دوستان گرامی،
آیا روشی برای چک کردن شارژ سیم کارت در A6 سراغ دارید؟
برای چک کردن شارژ در sim900 می توانستیم از دستور ATD*141*1# استفاده کنیم. اما در A6 اگر این دستور را تایپ کنیم پاسخ +CME ERROR:500 را دریافت می کنیم. این در حالی است که در A6 دستور ATD برای شماره گیری تلفن درست کار می کند. مثلا کافی است که بنویسیم ATD141*1# تا بدون هیچ خطایی شماره گیری کند. اما به مجرد اینکه ستاره را در ابتدای شماره ذکر کنیم خطا می دهد.
من نمیدونم چرا اینقدر مشکلات مزخرف دارن این ماژول ها.
من از A6 میخوام استفاده کنم اما حتی نتونستم ازش تماس بگیرم!!!
فقط تونستم at بدم و ok بگیرم که اونم بعضی وقتا حروف عجیب غریب میده.
واقعا با اینا نمیشه یه پروژه درست درمون نوشت. چرا انقدر محیط نرم افزاری آردوینو مزخرف و ساده هستش؟
دوستان میتونن کمک کنن این مشکلات رو رفع کنم؟مطمئن هستم واسه خیلی های دیگه هم بعدا پیش میاد.
1. چرا حروف عجیب غریب میاد در حالیکه بادریت uno و a6 یکی و برابر 115200 هست؟
2. چرا تماس برقرار نمیشه؟
این دومیه واقعا رو مخمه. 3 تا دونه سیمه و چهار خط کد اما نه تماس به بیرون میگیره نه از بیرون میشه بهش زنگ زد (زنگ میزنم به سیمکارت ماژول میگه دستگاه مشترک موردنظر خاموشه و مرده!!!)
ببخشید دیگه خدایی اعصابمو به هم ریخت:(((((