繼續來介紹 LinkIt One的通訊功能,先從 GPRS 模組開始。
請將 SIM 卡插入 LinkIt One 背面的 SIM 卡插槽,另外還要安裝 GPRS 天線,如下圖。另外請在 pin3 接上一顆LED。操作時,請插入一張有效的 SIM 卡(大張的),對這個號碼發送 “ON” 可以點亮 LED, “OFF”則熄滅 。大小寫沒有差別,程式中都有檢查到喔。
玩一兩次就好,傳簡訊要錢… 或是您可以找一張傳簡訊不用錢的門號就可以一直玩了

以下為程式碼說明:
重點在於 dtaget[20] 這個字元陣列(長度為20)是用來依序存放簡訊的各個字元,我們藉由檢查前兩個字元是否等於 ON 來開燈,等於 OFF 則關燈。當然囉,一封簡訊可以有許多字元,您可以使用這種方式來把各種檢查碼放入簡訊中,LinkIt One 收到之後就可以執行對應的動作,就好像解碼天書一樣呢!
#include <LTask.h>
#include <LGSM.h>
const int pinLed = 3; // LED接在 D3 腳位
void setup()
{
Serial.begin(9600);
while(!LSMS.ready()) //等候 SIM卡模組 ready
{
delay(1000);
}
Serial.println("GSM OK!!");
}
void loop()
{
char p_num[20];
int len = 0;
char dtaget[500];
if(LSMS.available()) // 檢查有沒有新簡訊
{
LSMS.remoteNumber(p_num, 20); //顯示發送者電話號碼
Serial.println("There is new message.");
Serial.print("Number:");
Serial.println(p_num);
Serial.print("Content:"); // 顯示簡訊內容
while(true)
{
int v = LSMS.read();
if(v < 0)
break;
dtaget[len++] = (char)v;
Serial.print((char)v);
}
Serial.println();
LSMS.flush(); // 刪除簡訊
if((dtaget[0] == 'O' && dtaget[1] == 'N') || (dtaget[0] == 'o' && dtaget[1] == 'n'))
{
//檢查簡訊前兩個字元是否為 ON 或 on
digitalWrite(pinLed, HIGH);
// 這不用多說了吧,亮燈!
}
else if((dtaget[0] == 'O' && dtaget[1] == 'F' && dtaget[2] == 'F') || (dtaget[0] == 'o' && dtaget[1] == 'f' && dtaget[2] == 'f'))
{
digitalWrite(pinLed, LOW);
// 熄燈
}
}
}
Post Views: 414
請問2G服務現在終止了, Linkkit的GSM功能還能用嗎
當然就不行啦,但是LinkIt ONE可以吃手機熱點來上網,所以本範例還是可以用的。函式庫從 LGPRS 改為 LWIFI即可。[LinkIt ONE 物聯網實作入門(增訂版)]有詳細說明。source code: https://github.com/cavedunissin/linkitone_v2