Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftwareSerial.h>
- // تعريف منافذ الاتصال للقارئ
- #define QR_RX 2 // RX من القارئ إلى D2 في Arduino
- #define QR_TX 3 // TX من القارئ إلى D3 في Arduino
- // تعريف منافذ الاتصال للوحدة GSM
- #define GSM_RX 6
- #define GSM_TX 5
- SoftwareSerial qrSerial(QR_RX, QR_TX); // اتصال مع قارئ QR
- //SoftwareSerial gsmSerial(GSM_RX, GSM_TX); // اتصال مع وحدة GSM
- const String targetNumber = "+966539886029";
- bool smsSent = false;
- void setup() {
- Serial.begin(9600); // الاتصال التسلسلي مع الكمبيوتر
- qrSerial.begin(9600); // الاتصال مع قارئ QR
- //gsmSerial.begin(9600); // الاتصال مع وحدة GSM
- Serial.println("System Ready - QR Reader with SMS Functionality");
- Serial.println("Waiting for scan...");
- // تهيئة وحدة GSM
- initGSM();
- delay(1000);
- send_sms();
- }
- void loop() {
- if (qrSerial.available()) { // إذا كانت هناك بيانات من القارئ
- String qrData = "";
- while (qrSerial.available()) {
- char c = qrSerial.read();
- qrData += c;
- delay(10); // تأخير بسيط لاستقبال كل البيانات
- }
- //Serial.print("Scanned Data: ");
- //Serial.println(qrData);
- // التحقق إذا كانت البيانات تحتوي على الرقم المطلوب
- if (qrData.indexOf(targetNumber) != -1 && !smsSent) {
- //Serial.println("Detected target QR code, sending SMS...");
- send_sms();
- smsSent = true; // لمنع إرسال رسائل متعددة
- }
- }
- }
- void initGSM() {
- //Serial.println("Initializing GSM module...");
- Serial.println("AT");
- delay(1000);
- Serial.println("AT+GPS=1");
- delay(100);
- Serial.println("AT+CREG=2");
- delay(1000);
- Serial.println("AT+CGATT=1");
- delay(1000);
- Serial.println("AT+CGDCONT=1,\"IP\",\"WWW\"");
- delay(1000);
- Serial.println("AT+CGACT=1,1");
- delay(1000);
- Serial.println("AT+GPS=1");
- delay(1000);
- Serial.println("AT+GPSRD=10");
- delay(100);
- Serial.println("AT+CMGF=1");
- delay(1000);
- //Serial.println("GSM module initialized");
- }
- void send_sms() {
- //Serial.println("Sending Message");
- Serial.println("AT+CMGF=1");
- delay(1000);
- Serial.println("AT+CNMI=2,2,0,0,0");
- delay(1000);
- Serial.print("AT+CMGS=\"");
- Serial.print(targetNumber);
- Serial.println("\"");
- delay(1000);
- Serial.print("QR Code detected and processed"); // نص الرسالة
- Serial.write(0x1A); // إرسال Ctrl+Z لإنهاء الرسالة
- delay(1000);
- //Serial.println("SMS sent successfully");
- }
Advertisement
Add Comment
Please, Sign In to add comment