Օգտագործելով այս GSM ռելեը, դուք կարող եք միացնել 220 Վ լարման ցանկացած բեռ և 2 կՎտ-ից ոչ ավելի հզորություն, Երկրի ցանկացած անկյունում, որտեղ կա բջջային ցանց:
Այս սարքը կառավարվում է arduino nano-ի միջոցով gsm մոդուլի միջոցով SIM800L: Ստորև ներկայացված է ֆունկցիոնալ դիագրամ բաղադրիչների ցանկով: Այն կարող է աշխատել կա՛մ ներկառուցված մարտկոցներից, կա՛մ 220 Վ ցանցից: Ցանցից աշխատելիս բեռը կարող է սպառել մինչև 2 կՎտ էլեկտրաէներգիա: Մարտկոցներից, առավելագույն ելքային հզորությունը 300 Վտ:
Հակիրճ սխեմայի մասին.
Այս սարքում կա 4 բլոկ.
- inverter միավոր
- վերահսկիչ և մարտկոցի միավոր
- անխափան սնուցման միավոր
- Վերահսկիչ բլոկ:
Ինվերտորային միավորը սովորական 500տ մեքենայի ինվերտոր է: Այն նույնպես կաշխատի ավելի քիչ հզորությամբ, բայց առավելագույն ելքային հզորությունը նույնպես կնվազի ինվերտորի հզորությանը համամասնորեն:
Կարգավորիչը և մարտկոցի միավորը սովորական էժան BMS S3 վարորդ է, որը նախատեսված է 3 լիթիում-իոնային մարտկոցներ միացնելու համար: Մարտկոցները բարձր հոսանք են։ Նրանք կարող են մատակարարել 35 ամպեր հոսանք: Եթե դուք ունեք ավելի քիչ հզորություն, ապա կարող եք գնել ավելի էժան մարտկոցներ ավելի ցածր առավելագույն հոսանքով:
Անխափան սնուցման միավորը պատրաստված է տրանզիստորի VT3, VD4, R4, R5, R3 վրա: Զեներ դիոդի VD4 կաթոդը ուղղակիորեն միացված է էլեկտրամատակարարմանը, և երբ հոսանք է կիրառվում, տրանզիստորը բացվում է VT3: Այն բացվելուց հետո ռելեի բոլոր մուտքերում հայտնվում է բացասական ներուժ, և ռելեները սնուցման աղբյուրից անցնում են միացումային սնուցման ռեժիմի: Պատրաստի ռելեների հավաքների կարևոր առանձնահատկությունը. նրանցից ոմանք աշխատում են, երբ մուտքի մոտ դրական ներուժ է գալիս, իսկ ոմանք, երբ բացասական: Եթե դուք ունեք առաջին տարբերակը, ապա դուք պետք է տեղափոխեք R3-ը տրանզիստորի VT3 թողարկիչի բացվածքի մեջ և միացրեք ռելեի մուտքը նույն տրանզիստորի թողարկիչին:
Կառավարման միավորը հավաքված է SIM800 մոդուլի և arduino nano-ի վրա:
Ահա թե ինչ տեսք ունի հավաքված շղթան
Ահա թե ինչ տեսք ունի այն փաթեթավորվելիս
Որպեսզի սարքը սկսի SMS ստանալ ձեր հեռախոսից, դուք պետք է ձեր հեռախոսահամարը գրեք your_phone փոփոխականում: Հնարավոր է նաև միացնել LCD էկրանը Arduino-ին, օրինակ wh1601 կամ wh0802, բայց դուք պետք է չմեկնաբանեք բոլոր տողերը lcd մակագրությամբ:
Code
char your_phone = "+79148389933";
#include <SoftwareSerial.h> // Подключаем библиотеку SoftwareSerial для общения с модулем по программной шине UART
SoftwareSerial softSerial(8,9); // Создаём объект softSerial указывая выводы RX, TX (можно указывать любые выводы Arduino UNO)
// include the library code:
//#include <LiquidCrystal.h>
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
//const int rs = 12, en = 11, d4 = 5, d5 = 6, d6 = 7, d7 = 10;
//LiquidCrystal lcd(rs, en, d4, d5, d6, d7); // В данном случае вывод TX модуля подключается к выводу 2 Arduino, а вывод RX модуля к выводу 3 Arduino.
// Инициируем работу шин UART с указанием скоростей обеих шин: //
String buf2,buf3;
int g=0;
String cmd1;
void setup(){ //
init_port();
// lcd.begin(16, 2);
// Print a message to the LCD.
//lcd.clear();
// lcd.setCursor(0, 0);
/// lcd.print("VKL");
// lcd.setCursor(0, 1);
/// lcd.print("ZHDITE");
/// init_port();// Инициируем передачу данных по аппаратной шине UART на скорости 9600 (между Arduino и компьютером)
softSerial.begin(9600); // Инициируем передачу данных по программной шине UART на скорости 38400 (между модулем и Arduino)
Serial.begin(9600);
delay(30000);
// cmd1 ="AT+CMGF=1rn";
softSerial.print("AT+CMGF=1rn");
/// print_lcd(cmd1);
delay(1000);
dellAllSMS();
// cmd1 ="AT+CMGDA="DEL ALL"rn";
// print_lcd(cmd1);
//cmd1="AT+CPAS";
/// print_lcd(cmd1);
} //
char c;
int m=0;
int i=0;//
int n=0;
// Выполняем ретрансляцию: // Всё что пришло с модуля - отправляем компьютеру, а всё что пришло с компьютера - отправляем модулю
void dellAllSMS(){
/* This deletes all sms in memory
*/
softSerial.print("AT+CMGDA="DEL ALL"rn"); // set sms to text mode
delay(3000);
}
void pin_on_setb()
{
digitalWrite(2,1);
digitalWrite(13,1);
}
void pin_off_setb()
{
digitalWrite(2,0);
digitalWrite(13,0);
}
void pin_on_inv()
{
digitalWrite(3,1);
// digitalWrite(13,1);
}
void pin_off_inv()
{
digitalWrite(3,0);
// digitalWrite(13,0);
}
void init_port()
{
pinMode(2,1);
pinMode(3,1);
pinMode(13,1);
}
String readData(){
// this function just reads the raw data
uint16_t timeout=0;
while (!softSerial.available() && timeout<10000)
{
delay(10);
timeout++;
}
if(softSerial.available())
{
String output = softSerial.readString();
//if(DEBUG)
/// Serial.println(output);
return output;
}
}
String buf, bufferIndex;
int tempIndex=0;
int messageIndex;
int prev=0;
int power=0;
void loop(){ //
/* if(softSerial.available()){ Serial.write(softSerial.read());} // Передаём данные из программной шины UART в аппаратную (от модуля через Arduino к компьютеру)
if( Serial.available()){softSerial.write( Serial.read());} // Передаём данные из аппаратной шины UART в программную (от компьютера через Arduino к модулю )*/
// lcd.clear();
// lcd.setCursor(0, 0);
// lcd.print("Nagruzka");
// lcd.setCursor(0, 1);
// if (power==1)
// {
// lcd.print("VKL");
// }
// else {lcd.print("VIKL");}
softSerial.print(F("AT+CMGL="ALL",0"));
softSerial.print("r");
buf = readData();
// Serial.println(buf);
tempIndex = buf.lastIndexOf("+CMGL: ");
tempIndex = tempIndex + 6;
bufferIndex = buf.substring(tempIndex);
bufferIndex = bufferIndex.substring(1,(bufferIndex.indexOf(",")));
messageIndex = bufferIndex.toInt();
///Serial.println(messageIndex);
if(prev!=messageIndex)
{
tempIndex = buf.lastIndexOf(your_phone);
// lcd.clear();
// lcd.setCursor(0, 0);
// lcd.print("SMS READ");
if((digitalRead(4))&&(tempIndex!=-1))
{
pin_on_inv();
delay(2000);
pin_off_inv();
// i=1;
// power=1;
}
else
{
pin_on_setb();
delay(2000);
pin_off_setb();
// i=1;
// power=1;
}
// send_sms(number3);
prev++;
}
if(messageIndex>=2)
{
dellAllSMS();
// lcd.clear();
// lcd.setCursor(0, 0);
// lcd.print("SMS READ");
// lcd.setCursor(0, 1);
// lcd.print("SMS DEL");
// cmd1 ="AT+CMGDA="DEL ALL"rn";
// print_lcd(cmd1);
prev=0;
}
delay(10000);
}
Տուփը տպելու համար STL ֆայլը կարելի է գտնել
Աշխատանքի տեսանյութ.
Source: www.habr.com