Chat
Danh mục
Mạch điều khiển thiết bị qua Module Sim 800L - Arduino

Mạch điều khiển thiết bị qua Module Sim 800L - Arduino

Số lượng:
Thêm vào giỏ
Mạch điều khiển thiết bị qua Module Sim 800L - Arduino đã được thêm vào giỏ hàng


Nguyên liệu cần chuẩn bị:



Hình ảnh sản phẩm thực tế:


Code chương trình

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);

#include <SoftwareSerial.h>

SoftwareSerial mySerial(3, 2);

char incomingByte;

String incomingData;

bool atCommand = true;

 

#define OUT1 4

#define OUT2 5

#define button1 6

#define button2 7

int index = 0;

int bien=0;

int bien1=0;

int val;

String number = "";

String message = "";

 

void setup(){

    Serial.begin(9600);

    mySerial.begin(9600);

  pinMode(OUT1, OUTPUT);

  pinMode(OUT2, OUTPUT);

  pinMode(button1, INPUT_PULLUP);

  pinMode(button2, INPUT_PULLUP);

  digitalWrite(OUT1,LOW);

  digitalWrite(OUT2,LOW);

  lcd.init();

  lcd.backlight();

  lcd.setCursor(0,0);

  lcd.print("Dieu khien thiet");

  lcd.setCursor(0,1);

  lcd.print("bi bang Sim 800L");

  delay(4000);

  lcd.setCursor(0,0);

  lcd.print("Nguyen Van Thanh");

  lcd.setCursor(0,1);

  lcd.print("MSSV: 2202180040");

   while(!mySerial.available()){

      mySerial.println("AT");

      delay(1000);

      Serial.println("connecting....");

    }

    Serial.println("Connected.."); 

    mySerial.println("AT+CMGF=1");  //Set SMS Text Mode

    delay(1000); 

    mySerial.println("AT+CNMI=1,2,0,0,0");  //procedure, how to receive messages from the network

    delay(1000);

    mySerial.println("AT+CMGL=\"REC UNREAD\""); // Read unread messages

    Serial.println("Ready to receive Commands.."); 

  lcd.clear();

  lcd.setCursor(0,0);

  lcd.print(" OUTPUT1 :  off  ");

  lcd.setCursor(0,1);

  lcd.print(" OUTPUT2 :  off  ");

 }

 

void manual(){

if(digitalRead(button1)==0){

    bien++; while(digitalRead(button1)==0);

  if (bien==2){bien=0;}

    }

if(digitalRead(button2)==0){

    bien1++; while(digitalRead(button2)==0);

  if (bien1==2){bien1=0;}

    } 

if (bien==1 || val==1){

      digitalWrite(OUT1, HIGH);

      lcd.setCursor(12,0);

      lcd.print("on ");}   

 

if (bien==0 && val==2){

      digitalWrite(OUT1, LOW);

      lcd.setCursor(12,0);

      lcd.print("off");}

if (bien1==1 || val==3){

      digitalWrite(OUT2, HIGH);

      lcd.setCursor(12,1);

      lcd.print("on ");}    

if(bien1==0&& val==4){

      digitalWrite(OUT2, LOW);

      lcd.setCursor(12,1);

      lcd.print("off");}

}

 

void loop(){ 

  if(mySerial.available()){

      delay(100);

      // Serial buffer

      while(mySerial.available()){

        incomingByte = mySerial.read();

        incomingData += incomingByte;

       }

        delay(10);

        if(atCommand == false){

          receivedMessage(incomingData);

        }

        else{

          atCommand = false;

        }       

        //delete messages to save memory

        if (incomingData.indexOf("OK") == -1){

          mySerial.println("AT+CMGDA=\"DEL ALL\"");

          delay(1000);

          atCommand = true;

        }       

        incomingData = "";

  }

 manual();

}

void receivedMessage(String inputString){

  

  //Nhận số điện thoại người gửi

  index = inputString.indexOf('"')+1;

  inputString = inputString.substring(index);

  index = inputString.indexOf('"');

  number = inputString.substring(0,index);

  Serial.println("Number: " + number);

 

  //Nhận tin nhắn người gửi

  index = inputString.indexOf("\n")+1;

  message = inputString.substring(index);

  message.trim();

  Serial.println("Message: " + message);  

  message.toUpperCase(); // uppercase the message received

  //điều khiển thiết bị

 

  if (message.indexOf("ON1") > -1){

      val=1;

      Serial.println("Command: Lamp1 Turn On.");

   }         

  if (message.indexOf("OFF1") > -1){

      val=2;

      Serial.println("Command: Lamp1 Turn Off.");

   } 

  if (message.indexOf("ON2") > -1){

      val=3;

      Serial.println("Command: Lamp2 Turn On.");

   }         

  if (message.indexOf("OFF2") > -1){

      val=4;

      Serial.println("Command: Lamp2 Turn Off.");

   }

   delay(50);

  }


( Nguyên lý + Code chuẩn) Link Mediafire
Khi nhấn nút "Tải Về Máy", bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút  hiện ra ở góc phải phía trên, nhấn vào để đến trang download
------------------------------------------------------------------------------------
DV1 - NHẬN VẼ MẠCH - LẬP TRÌNH 8051/ARDUINO/STM LẤY TRONG NGÀY 

BẤM XEM CÁCH ĐẶT HÀNG TẠI ĐÂY




-----------------------------------------------------------------------------------

DV2 - Mua linh kiện về làm mạch nhanh - Miễn phí Ship





DV3 - Kênh youtube chia sẻ kiến thức điện tử thực hành ngay


DV4 - Kênh cộng đồng Facebook Điện Tử ChipKool




CÔNG TY ECHIPKOOL - UY TÍN - CHẤT LƯỢNG - NHANH CHÓNG - BẢO MẬT