• <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>

    24小時(shí)聯(lián)系電話(huà):18217114652、13661815404

    中文

    您當前的位置:
    首頁(yè)>
    電子資訊>
    技術(shù)專(zhuān)題>
    使用手機和GSM模塊隨...

    技術(shù)專(zhuān)題

    使用手機和GSM模塊隨時(shí)隨地控制您的家用電器


    使用手機和GSM模塊隨時(shí)隨地控制您的家用電器

    關(guān)于GSM模塊

    我們將在這里使用的GSM模塊是SIM800L。與其他GSM模塊相比,它緊湊且高效。當您想使用Arduino在蜂窩網(wǎng)絡(luò )上工作時(shí),可以使用這種類(lèi)型的模塊。SIM800L支持850/900/1800 / 1900MH四頻。通過(guò)使用此模塊,您可以輕松地傳輸語(yǔ)音,發(fā)送SMS以及訪(fǎng)問(wèn)Internet。
    當您使用3.8-4.2伏電源為模塊供電時(shí),板上的LED將開(kāi)始閃爍。如果閃爍速度非???,則表示SIM卡未注冊到任何網(wǎng)絡(luò )。如果指示燈緩慢閃爍,則表明SIM已成功登錄到網(wǎng)絡(luò )。請確保您的電源至少為2A,因為此模塊會(huì )消耗大量功率。 

    SIM800L的引腳圖

    SIM800L的功能

    輸入電壓:3.8-4.2V

    工作電流:2A

    工作溫度:-4085攝氏度

    四頻850/900/1800 / 1900MHz

    GPRS類(lèi)別12:最大 85.6 kbps(下行/上行)

    接口:使用AT命令的UART

    SIM卡類(lèi)型:MicroSIM

    該項目所需的組件

    Arduino UNO

    SIM800L模塊

    4.2V鋰離子電池

    5V繼電器模塊

    器具

    項目工作

    我們將使用手機向GSM模塊發(fā)送消息。該消息將包含一個(gè)字母。假設您有一臺設備,那么我們將有一個(gè)字母來(lái)打開(kāi)設備,并有一個(gè)字母來(lái)關(guān)閉設備。讓我們假設我們正在發(fā)送一個(gè)字母“ a”來(lái)打開(kāi)設備,并發(fā)送一個(gè)字母“ b”來(lái)關(guān)閉設備。您的設備通過(guò)繼電器連接到Arduino板。Arduino

    將持續監控來(lái)自GSM模塊的數據。如果GSM模塊接收到包含字母“ a”的消息,那么Arduino將通過(guò)向中繼模塊發(fā)送信號來(lái)打開(kāi)設備的電源。如果GSM模塊接收到包含字母“ b”的消息,那么Arduino將通過(guò)向中繼模塊發(fā)送信號來(lái)關(guān)閉設備。

    框圖

    家庭自動(dòng)化電路圖

    重要說(shuō)明:在將代碼上傳到Arduino UNO板上之前,請確保已斷開(kāi)GSM模塊的RXTX線(xiàn)的連接。將代碼上傳到Arduino UNO板上后,將GSM模塊的RXRX線(xiàn)連接到Arduino UNO板上。

    int appliance1=2;

    char gsmData;

    void setup() {

      // put your setup code here, to run once:

    Serial.begin(115200);

    delay(25000);

    pinMode(appliance1,OUTPUT);

    Serial.print("AT+CMGF=1\r");

    delay(100);

    Serial.print("AT+CNMI=2,2,0,0,0\r");

    delay(100);

    digitalWrite(appliance1,HIGH);

    }

    void loop() {

      // put your main code here, to run repeatedly:

     if(Serial.available()>0)

     {

      gsmData=Serial.read();

      if(gsmData=='a')

      {

        digitalWrite(appliance1,LOW);

      }

      else if(gsmData=='b')

      {

        digitalWrite(appliance1,HIGH);

    }

     }

     Serial.print("AT+CMGD=1,4");

    }

    代碼的工作

    int appliance1=2;

    char gsmData;

    創(chuàng )建一個(gè)名為Appliance1的變量,以在您已連接繼電器信號引腳的位置存儲引腳號。另外,創(chuàng )建另一個(gè)名為gsmData的變量,以存儲ArduinoGSM模塊接收的數據。

    void setup() {

      // put your setup code here, to run once:

    Serial.begin(115200);

    delay(25000);

    pinMode(appliance1,OUTPUT);

    void setup()中,首先將GSM的波特率設置為115200。然后設置較大的延遲,以使GSM模塊成功登錄到網(wǎng)絡(luò )。然后將繼電器的信號引腳設置為輸入,因為Arduino將使用該引腳向繼電器發(fā)送信號。

    Serial.print("AT+CMGF=1\r");

    delay(100);

    Serial.print("AT+CNMI=2,2,0,0,0\r");

    delay(100);

    使用AT + CMGF = 1命令,以文本形式設置SMS模式。然后給出100毫秒的延遲。之后,使用AT + CNMI = 2,2,0,0,0命令,將SMS的內容發(fā)送到串行端口。

    digitalWrite(appliance1,HIGH);

    將邏輯高電平發(fā)送到繼電器模塊的信號引腳,以首先將其關(guān)閉。

    void loop() {

      // put your main code here, to run repeatedly:

     if(Serial.available()>0)

     {

      gsmData=Serial.read();

    void loop()中,首先使用available()命令檢查串行通訊是否可用。之后,將來(lái)自GSM模塊的數據存儲到變量gsmData中。

    if(gsmData=='a')

      {

        digitalWrite(appliance1,LOW);

      }

      else if(gsmData=='b')

    {

        digitalWrite(appliance1,HIGH);

      }

     }

    使用if else-if語(yǔ)句檢查GSM數據。如果數據等于“ a”,則打開(kāi)繼電器模塊。如果數據等于“ b”,則關(guān)閉繼電器模塊。

    Serial.print("AT+CMGD=1,4");

    請輸入搜索關(guān)鍵字

    確定
    色鲁99热99re超碰精品_91精品一区二区三区无码吞精_亚洲国产欧洲综合997久久_一级a性色生活片久久无
  • <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>