Matkapuhelin on vuosisadan vallankumouksellinen keksintö. Se on suunniteltu ensisijaisesti puhelujen ja tekstiviestien soittamiseen ja vastaanottamiseen, mutta siitä on tullut koko maailma älypuhelimen tullessa kuvaan. Rakennamme tässä projektissa kodin automaatiojärjestelmää, jossa kodinkoneita voidaan ohjata yksinkertaisen GSM-pohjaisen puhelimen avulla vain lähettämällä tekstiviestejä hänen puhelimensa kautta. Tässä projektissa ei tarvita älypuhelinta, vaan vain vanha GSM-puhelin kytkee päälle ja pois päältä kaikki kodin elektroniikkalaitteet mistä tahansa. Voit myös tarkistaa joitain muita langattomia kotiautomaatioprojekteja täältä: IR-kauko-ohjattu koti-automaatio Arduinoa käyttämällä, Bluetooth-ohjattu koti-automaatio yhdessä DTMF-pohjaisen koti-automaation kanssa, PC-ohjattu koti-automaatio Arduino-sovelluksella.
Toimiva selitys
Tässä projektissa Arduinoa käytetään koko prosessin hallintaan. Tässä olemme käyttäneet langatonta GSM-tietoliikennettä kodinkoneiden ohjaamiseen. Lähetämme joitain komentoja, kuten “# A.valo päällä *”, “# A. valo pois *” ja niin edelleen AC-kodinkoneiden ohjaamiseen. Saatuaan Arduinon antamat käskyt GSM: n kautta, Arduino lähettää signaalin releille kytkeäksesi kodinkoneet päälle tai pois päältä releohjaimen avulla.
Piirin komponentit:
- Arduino UNO
- GSM-moduuli
- ULN2003
- 5 voltin rele
- Polttimo pidikkeellä
- Johtojen liittäminen
- Leipälauta
- 16x2 LCD
- Virtalähde
- Kännykkä
Tässä olemme käyttäneet komentosarjassa etuliitettä, joka on "#A". Tätä etuliitettä käytetään tunnistamaan, että pääkomento tulee sen viereen ja * merkkijonon lopussa osoittaa, että viesti on päättynyt.
Kun lähetämme tekstiviestejä matkapuhelimella GSM-moduuliin, GSM vastaanottaa kyseisen tekstiviestin ja lähettää sen Arduinolle. Nyt Arduino lukee tämän tekstiviestin ja purkaa pääkomennon vastaanotetusta merkkijonosta ja tallentaa muuttujaan. Tämän jälkeen Arduino vertaa tätä merkkijonoa ennalta määritettyyn merkkijonoon. Jos ottelu tapahtui, Arduino lähettää signaalin releelle ohjaimen kautta kodinkoneiden kytkemiseksi päälle ja pois päältä. Ja suhteellinen tulos tulostetaan myös 16x2 LCD: lle käyttämällä sopivia komentoja.
Tässä projektissa olemme käyttäneet esittelyyn 3 nolla watin lamppua, joka ilmaisee tuulettimen, valon ja television.
Alla on luettelo viesteistä, jotka lähetämme tekstiviestillä tuulettimen, valon ja television kytkemiseksi päälle ja pois päältä:
S.no. |
Viesti |
Operaatio |
1 |
# A.fan päällä * |
Tuuletin päällä |
2 |
# Fani pois * |
Tuuletin POIS |
3 |
# A.valo päällä * |
Valo päällä |
4 |
# A.valo pois * |
Valo pois |
5 |
# A.tv on * |
TV päällä |
6 |
# A.tv pois * |
TV pois päältä |
7 |
# A.kaikki * |
Kaikki päällä |
8 |
# A.kaikki poissa * |
Kaikki |
GSM-moduuli:
GSM-moduulia käytetään monissa tietoliikennelaitteissa, jotka perustuvat GSM (Global System for Mobile Communications) -tekniikkaan. Sitä käytetään vuorovaikutuksessa GSM-verkon kanssa tietokonetta käyttäen. GSM-moduuli ymmärtää vain AT-komennot ja voi vastata vastaavasti. Peruskäsky on “AT”, jos GSM vastaa OK, se toimii hyvin, muuten se vastaa ”ERROR”. On olemassa useita AT-komentoja, kuten ATA puheluun vastaamiseksi, ATD puhelun valitsemiseksi, AT + CMGR viestin lukemiseksi, AT + CMGS tekstiviestien lähettämiseksi jne. AT-komentojen jälkeen tulisi olla Carriage return eli \ r (0D heksalla), kuten "AT + CMGS \ r". Voimme käyttää GSM-moduulia seuraavilla komennoilla:
ATE0 - Kaiku pois
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = ”Matkapuhelinnumero”
>> Nyt voimme kirjoittaa viestimme
>> Viestin kirjoittamisen jälkeen
Ctrl + Z Lähetä viestikomento (26 desimaalilla).
ENTER = 0x0d HEX: ssä
SIM900 on täydellinen Quad- GSM / GPRS-moduuli, joka tuottaa GSM / GPRS 850/900 / 1800/1900 MHz suorituskyvyn puhelut, tekstiviestit ja tiedot, joiden alhainen virrankulutus.
Piirin kuvaus
Tämän GSM-pohjaisen kotiautomaatiopiirin liitännät ovat melko yksinkertaisia, tässä nestekidenäyttöä käytetään kodinkoneiden tilan näyttämiseen, joka on suoraan kytketty arduinoon 4-bittisessä tilassa. LCD: n datanastat eli RS, EN, D4, D5, D6, D7 on kytketty digitaaliseen arduino-nastaan numeroihin 6, 7, 8, 9, 10, 11. Ja GSM-moduulin Rx- ja Tx-nasta on kytketty suoraan Tx- ja Rx-pisteisiin pin Arduino vastaavasti. Ja GSM-moduuli saa virtansa käyttämällä 12 voltin sovitinta. 5 voltin SPDT 3 -releitä käytetään LIGHT, FAN ja TV: n ohjaamiseen. Ja releet on kytketty arduino-nastoihin 3, 4 ja 5 releohjaimen ULN2003 kautta LIGHT-, FAN- ja TV-ohjelmien ohjaamiseksi.
Koodin kuvaus
Tämän projektin ohjelmoinnin osassa, ensinnäkin, ohjelmoinnissa sisällytetään kirjasto nestekidenäyttöä varten ja sitten määritetään LCD- ja kodinkoneiden data- ja ohjaustapit.
#sisältää
Kun tämä sarjaliikenne on alustettu 9600 bps: llä ja antaa suunnan käytetylle pinille.
void setup () {lcd.begin (16,2); Sarjan alku (9600); pinMode (led, OUTPUT); pinMode (tuuletin, LÄHTÖ); pinMode (valo, OUTPUT); pinMode (TV, OUTPUT);
Tietojen vastaanottamiseksi sarjana olemme käyttäneet kahta toimintoa, joista yksi on Serial.available, joka tarkistaa, onko mitään sarjatietoja tulossa, ja toinen on Serial.read, joka lukee sarjaan tulevat tiedot.
while (Serial.available ()) {char inChar = Serial.read ();
Saatuamme tietoja sarjaan olemme tallentaneet ne merkkijonoon ja odottaneet sitten Enter-näppäintä.
void serialEvent () {while (Serial.available ()) {if (Serial.find ("# A.")) {digitalWrite (led, HIGH); viive (1000); digitalWrite (led, LOW); while (Serial.available ()) {char inChar = Serial.read (); str = inChar; jos (inChar == '*') {temp = 1; palata; }
Kun Enter tulee, ohjelma alkaa verrata vastaanotettua merkkijonoa jo määritettyyn merkkijonoon ja jos merkkijono täsmää, suhteellinen operaatio suoritetaan käyttämällä koodissa annettuja asianmukaisia komentoja.
void check () {if (! (strncmp (str, "tv päällä", 5))) {digitalWrite (TV, HIGH); lcd.setCursor (13,1); lcd.print ("ON"); viive (200); } else if (! (strncmp (str, "tv pois", 6))) {digitalWrite (TV, LOW); lcd.setCursor (13,1); lcd.print ("OFF"); viive (200); }