Isticmaalka gudbinta GSM-ka, waxa aad shidi kartaa culays kasta oo lagu qiimeeyay 220 V iyo awood aan ka badnayn 2 kW, gees kasta oo dhulka ah oo ay jirto shabakad gacanta.
Qalabkan waxa gacanta ku haya arduino nano iyada oo loo sii marayo moduleka gsm SIM800L. Jaantus shaqaynaysa oo leh liis ka kooban yahay ayaa hoos lagu bixiyay. Waxay ka shaqayn kartaa mid ka mid ah baytariyada ku dhex jira ama shabakada 220 V. Markaad ka shaqeyneyso shabakada, culeysku wuxuu cuni karaa ilaa 2 kW oo koronto ah. Laga soo bilaabo baytariyada, awoodda wax soo saarka ugu badan 300 W.
Si kooban oo ku saabsan nidaamka.
Qalabkan waxa ku jira 4 baloog:
- unugga inverter
- kantaroolaha iyo unugga baytariyada
- unug koronto oo aan kala go' lahayn
- Xakamaynta xakamaynta.
Cutubka inverter-ku waa beddelka baabuurka caadiga ah ee 500t. Waxa kale oo ay ku shaqayn doontaa awood yar, laakiin awoodda wax-soo-saarka ugu badan waxay sidoo kale hoos u dhigi doontaa saamiga awoodda beddelka.
Xakamaynta iyo unugga baytarigu waa darawalka caadiga ah ee BMS S3 raqiis ah oo loogu talagalay inuu ku xidho baytariyada 3 lithium-ion. Baytariyadu hadda aad bay u sarreeyaan. Waxay awood u leeyihiin in ay bixiyaan 35 amperes. Haddii aad leedahay awood yar, markaa waxaad iibsan kartaa baytari ka jaban oo leh hadda ugu sarreeya oo hooseeya.
Qaybta korontada ee aan kala go'a lahayn ayaa lagu sameeyay transistor VT3, VD4, R4, R5, R3. Kathode ee zener diode VD4 wuxuu si toos ah ugu xiran yahay sahayda korantada, marka korontada la isticmaalo, transistor VT3 ayaa furmaya. Ka dib marka ay furto, awood taban ayaa imanaysa dhammaan agabka soo-gudbinta iyo relays-ku waxay u beddelaan habka korontadda wareegga ee sahayda korontada. Muuqaal muhiim ah oo ka mid ah shirarka isu-gudbinta ee diyaarka ah: qaarkood waxay shaqeeyaan marka awoodda togani ay timaaddo gelinta, iyo qaar marka mid taban. Haddii aad haysato ikhtiyaarka ugu horreeya, markaa waxaad u baahan tahay inaad R3 u guurto farqiga emitter-ka ee transistor VT3 oo aad ku xidhid talooyinka gudbinta ee isla transistor-ka.
Cutubka kantaroolku wuxuu ku urursan yahay module SIM800 iyo arduino nano.
Tani waa sida wareegga la isugu keenay uu u eg yahay
Tani waa sida ay u egtahay marka la soo buuxiyo
Si uu qalabku uga bilaabo helida SMS talefankaaga, waxaad u baahan tahay inaad lambarkaaga ku qorto doorsoomiyaha teleefankaaga. Waxa kale oo suurtogal ah in lagu xidho bandhig LCD ah Arduino, tusaale ahaan wh1601 ama wh0802, laakiin waxaad u baahan doontaa inaad ka fogaato dhammaan khadadka ku qoran cd.
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);
}
Faylka STL ee daabacaadda sanduuqa waa la heli karaa
Fiidiyowga shaqada:
Source: www.habr.com