سلام بچه ها خوبید ؟
اقا من هرکاری میکنم نمیتونم وقتی با سیم800 تماس میگیرم شماره رو نمایش بده و یه خروجی از اردوینوم بگیرم(با ورودی سیم800)
چکار کنم ؟
نمایش نسخه قابل چاپ
سلام بچه ها خوبید ؟
اقا من هرکاری میکنم نمیتونم وقتی با سیم800 تماس میگیرم شماره رو نمایش بده و یه خروجی از اردوینوم بگیرم(با ورودی سیم800)
چکار کنم ؟
سلام
این تاپیک رو مطالعه بفرمایید:
http://forum.arduino.ir/4/7/1255-4.html
مرسی ولی مشکلم حل نشد . کلا سیم 800 خیلی بدکار میکنه ظاهرا
من میخوام با میس کال یه شماره خاص رله فعال بشه بعد مثلا 5 ثانیه خاموش بشه. هرکاری کردم در نهایت یبار یه جواب گرفتم اونم با یه میس میوفتاد توو حلقه مدام 5 ثانیه یبار خاموش روشن میکرد. البته فقط یبار اینجوری مثلا درست گار میکرد . دفعات بعد همون برنامه رو میریزم قاطی کار میکنه. ماژول رله عمل نمیکمه یا مثلا یبار بعد 15 ثانیه بعد از میس گال عمل میگنه و..... اردوینو رو عوض کردم. رله عوض کردم. سیم غوض کردم ولی کلا ......
اول شما باید خود ماژول رو راه بندازی
بعد از این سیم کارتت بندازی روش
با همراه اول و ایرانسل به خوبی جواب گرفتم من
اغلب مشکل سخت افزاری دارن که تصور میکنن در کد نویسی مشکل هست
ترجیحا لینکی که گذاشتم ببینید ...
قبلش راه اندازی کردم با دستورات at هم ج گرفتم و کاملا درسته. واسه تغذیه هم از مبدل کاهنده استفاده کردم واسش ولتاژ مناسب رو فراهم کردم (بین 3.7 تا 3.9) واسه کدم چندین کد رو امتحان کردم .
نه والا مشکلی که من میگم قاطی داره از برنامه نیست . اخه مثلا شده من یه برنامه رو یبار پروگرام کردم . یه جواب گرفتم . بعد چندبار دوباره همون برنامه رو پروگرام کردم یه جواب دیگه گرفتم ... مثلا با میس کال همون برنامه یبار رله رو فعال و غیر فعال میکنه و میوفته توو حلقه و مدام تکرار میکنه . یبار همون برنامه اصلا رله فعال نمیکنه.یبار همون برنامه بعد چندتا بوق خوردن یبار رله رو فعال میکنه .....
من در کل به این نتیجه رسیدم که باید یه باتری و یه شارژر گذاشت دو سر این sim800 تا مشکل سخت افزاری نداشته باشم ضمن اینکه آنتن هم اگر pcb میذاری حداقل صاف باشه ...
معلومه که حکایت داره ...
اگر پروژه ای چیزی بخوای باهاش بسازی من هستم :o
SHOBEIR90@YAHOO.CO.UK
#include <SoftwareSerial.h>
SoftwareSerial SIM800(2, 3);
int relay = 4;
void setup()
{
SIM800.begin(115200);
Serial.begin(115200);
pinMode(relay,OUTPUT);
delay(1500);
}
void loop()
{
while(SIM800.available()>0)
{
digitalWrite(relay,HIGH);
Serial.println("relay on");
delay(1000);
digitalWrite(relay,LOW);
Serial.println("relay off");
}
}
داداش هدفم یادگیریه . دیگه درس و پروژه از ما گذشته
میدونی باید چیکار کنی ؟
باید کامندهایی که از سیم دریافت می کنی رو آنالیز کنی
اگه ring بود به یه چیزی فرمان بدی
مثلا اینطوری.
کد:
#include <SoftwareSerial.h>
SoftwareSerial SIM800(2, 3);
int relay = 4;
char data;
void setup()
{
SIM800.begin(115200);
Serial.begin(115200);
pinMode(relay, OUTPUT);
digitalWrite(relay , HIGH);
delay(1500);
}
void loop()
{
if (SIM800.available() > 0)
{
data = SIM800.read();
if (data == 'R') {
data = SIM800.read();
if (data == 'i')
{
digitalWrite(relay, LOW);
Serial.println("relay on");
delay(1000);
digitalWrite(relay, HIGH);
Serial.println("relay off");
}
}
}
}
من این کدم امتحان کردم
#include <SoftwareSerial.h>
SoftwareSerial SIM800(2, 3);
int relay = 4;
char data;
void setup()
{
SIM800.begin(115200);
Serial.begin(115200);
pinMode(relay, OUTPUT);
digitalWrite(relay , HIGH);
delay(1500);
}
void loop()
{
if (SIM800.available() > 0)
{
data = SIM800.read();
if (data == 'R') {
data = SIM800.read();
if (data == 'i') {
data = SIM800.read();
if (data == 'n') {
data = SIM800.read();
if (data == 'g') {
digitalWrite(relay, LOW);
Serial.println("relay on");
delay(1000);
digitalWrite(relay, HIGH);
Serial.println("relay off");
}
}
}
}
}
}
جواب نمیده .
اصلا میگم قاطی داره میدونی منظورم چیه؟ همون کدی که اول دادم . دفه اول که پروگرام میکنم یه میس که میزنم رله فعال میشه و قطع میشه و بعد میوفته توو یه حلقه مدام قطع و وصل میشه. حالا قاطی داشتنش اینه که چندتا برنامه دیگه که پروگرام میکنم بعد برمیگردم همین برنامه رو دوباره پروگرام میکنم اون قبلی تکرار نمیشه. دیگه بدون میس کال خودش شروع میکنه رله رو فعال و غیر فعال کردن توو همون حلقه
void loop(){
if(SIM800.available()){
String data = SIM800.readString();
if (data.indexOf("Ring") != -1){
digitalWrite(relay, LOW);
Serial.println("relay on");
delay(1000);
digitalWrite(relay, HIGH);
Serial.println("relay off")
}
}
}
char data; رو حذف کن
String data = SIM800.readString
بعد از این خط data رو مانیتور کن ببین چی خروجی می ده
ببین به جای کدی که الان نوشتم کد وبلاگ رو آپلود کن
ببین وقتی زنگ میزنی اصلا کامند رینگ میاد یا نه
شاید لازم باشه baude rate رو کانفیگ کنی
جلسه بیست و سوم : ارسال AT Command | وبلاگ آردوینو
این کد هر چیزی رو که سیم 800 بفرسته رو پورت سریال می بینه
سیم بندی رو رعایت کن فقط
بادریت رو تغییر دادم چندبار. با یه مبدل سریال سیم800 رو جدا وصل کردم تغییر بادریتم دادم با 9600 19200 115200 امتحان کردم . همه وقتی سیم800 با مبدل وصله اوکیه. واسه دستور AT اوکی میده . زنگ میزنم مینویسه Ring و... ولی وقتی میاد وصل میشه به اردوینو این ماجراها پیش میاد