Плата Leonardo GPRS/GSM IOT, щоб забезпечити ваш проект способом зручного дистанційного керування, вона широко використовується в дистанційному керуванні, телеметрії, зв’язку, автоматичному управлінні тощо. Він може отримувати телефонні дзвінки та текстові повідомлення для керування реле ON або OFF. Крім того, ця плата має чотири реле, щоб вона могла керувати кількома приладами одночасно.
Водночас ці плати служать основною системою управління розумним будинком. Мало того, він має картку для мобільного телефону, яка раніше легко реалізовувала ідею меблів будь-де та будь-коли. Його також можна використовувати Arduino/Crowduino для реалізації роботи інших модулів.
Модель: WCW07517B
особливості
- Функція GPRS/GSM
- Стандартна карта Micro SIM
- Інтерфейс живлення: USB, DC
- Робоча частота: 16 МГц
- Сумісність з GSM фаза 2/2+
- Підтримує логічний рівень від 3,0 В до 5,0 В
- Мікроконтролер: ATmega32u4,8-bit AVR MCU
- Низьке енергоспоживання, 1 мА в сплячому режимі
- Підтримує навантаження: DC/AD максимальний струм: 2 A AC: 100 ~ 240 В
- Керується AT-командою (3GPP TS 27.007, 27.005 і розширені AT-команди SIMCOM).
- Чотири діапазони 850 / 900 / 1800 / 1900 МГц - працюватиме в мережах GSM у всіх країнах світу.
- Клас 4 (2 Вт при 850 / 900 МГц)
- Клас 1 (1 Вт при 1800 / 1900 МГц)
Технічні характеристики
Пункт | Хв | Типовий | Макс | одиниця |
---|---|---|---|---|
USB | 5 | 5 | 5 | VDC |
Зовнішнє живлення | 7 | - | 12 | VDC |
поточний | 40 | 40 | 40 | мА |
Розміри (з антеною) | 107,0 х 65,0 х 24,0 | мм | ||
температура | -30~+85 | °C |
Функція інтерфейсу
Net Status - повідомте про статус підключення SIM808 до мережі
Антена - підключено до зовнішньої антени
Зовнішнє живлення - Vin підключено до зовнішнього джерела живлення 5~9 В постійного струму
USB Power - підключено до комп'ютера та джерела живлення
ISP - Запишіть завантажувач
Rst Key - Перезапустіть систему
Клавіша живлення - увімкніть і вимкніть живлення для SIM808
Стан живлення - повідомте , чи ввімкнено живлення системи SIM808.
Реле 1-4 - релейний канал, нормально вимкнено
Застереження
- Переконайтеся, що ваша SIM-карта розблокована.
- Продукт надається без ізоляційного корпусу. Будь ласка, дотримуйтесь запобіжних заходів щодо електростатичного розряду, особливо в суху (низьку вологість) погоду.
Установка обладнання
1. Вставте Micro SIM-карту в 6-контактний тримач SIM-карти для SIM-карт. SIM808 підтримує SIM-карти як 1,8 В, так і 3,0 В - тип напруги SIM-карти визначається автоматично.
2. Переконайтеся, що підкладка антени закріплена належним чином - мініатюрний коаксіальний радіочастотний роз'єм присутній на платі GPRS Shield для підключення до антени GSM. Роз’єм, присутній на екрані GPRS Shield, називається роз’ємом U.FL. GSM-антена, що постачається разом із GPRS Shield, має роз’єм SMA (а не роз’єм RP-SMA). Патч-корд також постачається з GPRS Shield для підключення антени до плати. Топологія підключення показана на схемі нижче: Автоматичне ввімкнення, але якщо не вдається відкрити, і ви можете відкрити його вручну під цим зображенням
3. Завантажте наступний код.
/*
* Author: Elecrow Keen
* Date:6/30/2017
* IDE V1.8.2
* Email:Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її.
* Function: SMS control relay
* Please note:
When the the board receive "R1O" by SMS, the relay 1 will be open and the "R1C" that it will be close.
"R1O"/""R1C" means:
R -> Relay
1 -> Relay 1
O -> Open
C -> Close
It also used Relay2,Relay3 and Relay4.
*/
#define DEBUG true //Open the debug information
// the number of the Relay pin
const int Relay1 = 3;
const int Relay2 = 2;
const int Relay3 = 4;
const int Relay4 = 5;
/*
R1O means open relay 1
R1C means close relay 1
The same as others
*/
String R1O = "R1O";
String R1C = "R1C";
String R2O = "R2O";
String R2C = "R2C";
String R3O = "R3O";
String R3C = "R3C";
String R4O = "R4O";
String R4C = "R4C";
char target[] ="+CMTI";
int sms_no;
String get_message = "";
void setup() {
Serial.begin(19200);
Serial1.begin(19200);
for(int i=2;i<6;i++){ // initialize the Relay pins as an output:
pinMode(i,OUTPUT);
}
for(int i=2;i<6;i++){// initialize the Relay pins status:
digitalWrite(i,LOW);
}
//Power on the SIM800C
pinMode(9,OUTPUT);
digitalWrite(9,HIGH);
delay(3000);
digitalWrite(9,LOW);
delay(1000);
sendData("AT",2000,DEBUG);
sendData("AT+CMGF=1",1000,DEBUG); //Set the SMS in text mode
}
void loop() {
if(Serial1.available()>0){
if(Serial1.find(target)){ //If receive a new SMS
sms_no = Serial1.parseInt(); //Get the SMS ID
get_message = "AT+CMGR="+(String)sms_no; //The command of the content of the SMS
Serial.println("******************** Print the relay status *********************" );
Data_handling(get_message,500,DEBUG); //Get the content of the SMS
Serial.println("*****************************END*********************************" );
}
}
while(Serial1.read() >= 0){} // Clear serial buffer
}
void Data_handling(String command, const int timeout, boolean debug) //data handling function
{
String response = "";
Serial1.println(command);
long int time = millis();
while( (time+timeout) > millis()){
while(Serial1.available()){
response += (char)Serial1.read();
}
}
if (response.indexOf(R1O)>=0) {
digitalWrite(Relay1,HIGH);
if(debug){
Serial.println("Open Relay 1");
}
}
else if (response.indexOf(R1C)>=0) {
digitalWrite(Relay1,LOW);
if(debug){
Serial.println("Close Relay 1");
}
}
else if(response.indexOf(R2O)>=0) {
digitalWrite(Relay2,HIGH);
if(debug){
Serial.println("Open Relay 2");
}
}
else if(response.indexOf(R2C)>=0) {
digitalWrite(Relay2,LOW);
if(debug){
Serial.println("Close Relay 2");
}
}
else if (response.indexOf(R3O)>=0) {
digitalWrite(Relay3,HIGH);
if(debug){
Serial.println("Open Relay 3");
}
}
else if(response.indexOf(R3C)>=0) {
digitalWrite(Relay3,LOW);
if(debug){
Serial.println("Close Relay 3");
}
}
else if(response.indexOf(R4O)>=0) {
digitalWrite(Relay4,HIGH);
if(debug){
Serial.println("Open Relay 4");
}
}
else if(response.indexOf(R4C)>=0) {
digitalWrite(Relay4,LOW);
if(debug){
Serial.println("Close Relay 4");
}
}else
Serial.println("....Error message....");
}
void sendData(String command, const int timeout, boolean debug) //Send command function
{
String response = "";
Serial1.println(command);
long int time = millis();
while( (time+timeout) > millis()){
while(Serial1.available()){
response += (char)Serial1.read();
}
}
if(debug){
Serial.print(response);
}
}
4. Джерело живлення для екрану GPRS - Виберіть джерело живлення за допомогою перемикача на платі, ви можете вибрати джерело живлення 5 В від Arduino або зовнішнього джерела живлення. Виберіть джерело живлення 5 В від Arduino, як показано на наступному малюнку:
5. Увімкніть плату GSM/GPRS. Увімкніть апаратно. Натисніть кнопку «POWERKEY» протягом кількох секунд, доки не засвітиться індикатор увімкнення живлення (зелений).
6. Запуск ескізів У кожному вікні монітора послідовного порту ви можете побачити «s», а потім надіслати текстове повідомлення на тестову картку; якщо світло вмикається, це нормально. Наприклад, ви можете надіслати «R1O» на це, щоб спочатку ввімкнути світло, а потім надіслати йому «R1C», а потім вимкнути.