Turinys:

„Android“ir „Arduino“SMS namų automatizavimas: 5 žingsniai (su nuotraukomis)
„Android“ir „Arduino“SMS namų automatizavimas: 5 žingsniai (su nuotraukomis)

Video: „Android“ir „Arduino“SMS namų automatizavimas: 5 žingsniai (su nuotraukomis)

Video: „Android“ir „Arduino“SMS namų automatizavimas: 5 žingsniai (su nuotraukomis)
Video: I dalis. Microbit+L2C_ LCD1602 ekranėlio +DHT22 valdiklio programavimas. Rodo temperatūrą ir drėgmę. 2024, Lapkritis
Anonim
„Android“ir „Arduino“SMS pagrindu sukurta namų automatika
„Android“ir „Arduino“SMS pagrindu sukurta namų automatika
„Android“ir „Arduino“SMS namų automatizavimas
„Android“ir „Arduino“SMS namų automatizavimas

! ! ! PASTEBĖTI ! ! !

Kadangi mano rajone atnaujinamas vietinis mobiliųjų telefonų bokštas, nebegaliu naudotis šiuo GSM moduliu. Naujesnis bokštas nebepalaiko 2G įrenginių. Todėl šiam projektui nebegaliu teikti jokios paramos

Neseniai gavau palyginti pigų keturių juostų GSM/GPRS modulį žaisti. Tai SIM800L modulis ir palaiko ryšį su bet kuriuo mikro per nuoseklųjį prievadą. Jis buvo komplektuojamas su antena ant skydo.

Aš nusprendžiau sukurti paprastą SMS valdiklio sistemą, kuri naudoja trumpųjų žinučių tarnybos (SMS) komandas, kad valdytų įrenginius ir rodytų pavojaus signalus.

1 žingsnis: SMS komandos

SMS komandos
SMS komandos

Kaip ir bet kuri ryšio sistema, tam tikras komandas reikia siųsti į nuotolinį įrenginį, kad jis nurodytų, ką daryti. Panašiai nuotolinis įrenginys turi atsakyti arba reaguoti į šias komandas. Šis projektas susideda iš dviejų dalių, SMS valdiklio ir standartinio mobiliojo telefono.

Idėja buvo sukurti paprastą SMS valdiklį su keturiais skaitmeniniais išėjimais. Priklausomai nuo gautos SMS žinutės, įrenginys turi sugebėti valdyti atskirus išėjimus.

Aš taip pat nusprendžiau įtraukti keturis skaitmeninius įėjimus. Tai gali būti naudojama įspėjimams ar kitai informacijai nurodyti.

Prieš pradėdamas kurti, nusprendžiau sukurti konkrečias komandas konkrečioms funkcijoms. Šios „komandos“bus išsiųstos SMS žinute iš mobiliojo telefono.

SMS valdiklio priėmimo komandos:

o1: 1 - įjunkite 1 išvestį

o1: 0 - išjunkite 1 išvestį

o1: p - impulso išėjimas 1 Įjunkite, tada išjunkite

o2: 1 - įjunkite 2 išvestį

o2: 0 - išjunkite 2 išvestį

o2: p - impulso išvestis 2 Įjungta, tada išjunkite

o3: 1 - įjunkite 3 išvestį

o3: 0 - išjunkite 3 išvestį

o3: p - impulsų išvestis 3 Įjunkite, tada išjunkite

o4: 1 - įjunkite 4 išvestį

o4: 0 - išjunkite 4 išvestį

o4: p - impulso išvestis 4 Įjunkite, tada išjunkite

???? - Prašyti įvesties ir išvesties būsenos

#### - Iš naujo nustatyti sistemą

Norėdami gauti atsiliepimą, SMS valdiklis turėtų reaguoti į gautas komandas ir atsakyti SMS žinute. Nusprendžiau, kad šioje atsakymo SMS žinutėje turėtų būti visų įvesties/išvesties kontaktų būsena.

SMS valdiklio atsakymo komandos:

i1: x i2: x i3: x i4: x o1: x o2: x o3: x o4: x

kur x yra įvesties/išvesties būsena, 1 - įjungta, 0 - išjungta.

2 veiksmas: sukurkite SMS valdiklį

SMS valdiklio kūrimas
SMS valdiklio kūrimas
SMS valdiklio kūrimas
SMS valdiklio kūrimas
SMS valdiklio kūrimas
SMS valdiklio kūrimas

Reikalinga įranga:

Bet koks „Arduino“arba atskiras „ATMEGA328p“ant lentos

SIM800L GSM/GPRS modulis su SIM kortele, galinčia siųsti ir gauti SMS žinutes

Atsisakykite DC/DC keitiklio

PASTABA !

Norint maitinti SIM800L modulį, reikalingas DC/DC keitiklis. Šis modulis veikia nuo 3,7 V iki 5 V, priklausomai nuo jūsų turimos versijos. Šiam moduliui taip pat reikalingas maitinimo šaltinis, kuris gali perduoti iki 2A, kai modulis perduoda duomenis. Jis negali būti maitinamas tiesiai iš „Arduino Uno“!

Grandinė yra gana paprasta. Aš jį surinkau ir išbandžiau ant duonos lentos.

Grandinė maitinama per DC/DC keitiklį, o išėjimo įtampa nustatyta į 4,5 V. Yra keturi šviesos diodai, imituojantys skaitmeninius išėjimus, ir keturi skaitmeninių įėjimų mygtukai. SIM800L yra prijungtas prie ATMEGA328p Rx/Tx kaiščių.

Penktasis šviesos diodas naudojamas parodyti, kada sistema užimta siunčiant SMS.

3 žingsnis: ATMEGA328p programavimas

ATMEGA328p programavimas
ATMEGA328p programavimas
ATMEGA328p programavimas
ATMEGA328p programavimas

Prieš programuodami atidarykite INO failą ir redaguokite telefono numerį. Pakeiskite xxxxxxxxxx savo mobiliojo telefono numeriu 46 eilutėje. Iš naujo sukompiliuokite ir įkelkite failą.

Taip pat perskaitykite instrukcijas, kaip konfigūruoti programinės įrangos nuoseklųjį prievadą INO faile.

//=============================================================================//

//! ! ! PASTABA! ! !

// ================

//

// PUSLAPIS PROGRAMINĖS ĮRANGOS BIBLIOTEKOJE PAKEISTIS Į 200

//

// Norėdami naudoti programinės įrangos seriją, vartotojas taip pat turėtų pakeisti programinės įrangos serijos buferį į 200.

// Tai turi būti redaguota šiame faile:

//

// C:/Program Files/Arduino x.x.x/Hardware/Arduino/AVR/Libraries/SoftwareSerial/src/SoftWareSerial.h

//

// Pakeiskite buferį taip:

//

// #ifndef _SS_MAX_RX_BUFF

// #define _SS_MAX_RX_BUFF 200

// RX buferio dydis

// #endif

//

//=============================================================================

Norėdami programuoti ATMEGA328p ant duonos lentos, naudokite šią instrukciją, naudodami „Arduino UNO“.

www.instructables.com/id/Arduino-UNO-as-AtM…

4 veiksmas: SMS valdiklio naudojimas

Naudojant SMS valdiklį
Naudojant SMS valdiklį

Naudojant SMS valdiklį

SMS valdiklis automatiškai išsiųs SMS žinutę į jūsų telefoną, jei bus suaktyvinta kuri nors iš keturių įėjimų. Išsami informacija apie aktyviklį bus pateikta SMS tekste.

SMS žinutes ir komandas galite redaguoti pagal savo poreikius INO faile.

SMS valdiklio išėjimų tikrinimas

Iš savo mobiliojo telefono į SIM800L simcard numerį siųskite šias komandas:

o1: 1, tai įjungs 1 išvestį.

Į savo telefoną gausite šią SMS žinutę:

i1: 0 i2: 0 i3: 0 i4: 0 o1: 1 o2: 0 03: 0 o4: 0

01: 0, tai išjungs 1 išvestį.

Į savo telefoną gausite šią SMS žinutę:

i1: 0 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

01: p, tai 1 sekundei įjungs 1 išėjimą, tada vėl išjungs 1 išėjimą (impulsą).

Į savo telefoną gausite šią SMS žinutę:

i1: 0 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

SMS valdiklio įvesties tikrinimas

SMS valdiklyje trumpai paspauskite mygtuką 1

Į telefoną automatiškai gausite šią SMS žinutę:

i1: 1 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

SMS valdiklyje trumpai paspauskite mygtuką 2

Į telefoną automatiškai gausite šią SMS žinutę:

i1: 1 i2: 1 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

SMS valdiklyje trumpai paspauskite mygtuką 3

Į telefoną automatiškai gausite šią SMS žinutę:

i1: 1 i2: 1i3: 1 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

Kaip matyti iš gautos SMS, išėjimai keičiasi pagal gautas komandas. Tačiau paspaudus mygtukus, įvestys nesikeičia nuo 1 iki 0. Kadangi norėjau matyti bet kokius įvesties pakeitimus, nusprendžiau uždaryti įvesties būseną, kol SMS valdikliui nebus išsiųsta atstatymo komanda.

Atstatyti signalus

Norėdami iš naujo nustatyti įvesties būseną, siųskite šią komandą:

####, tai iš naujo nustatys įvesties būseną.

Į savo telefoną gausite šią SMS žinutę:

i1: 0 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

Būsenos atnaujinimai

Taip pat bet kuriuo metu galite paprašyti būsenos siųsdami šią komandą:

????, tai pareikalaus įvesties/išvesties būsenos atnaujinimo.

Į savo telefoną gausite šią SMS žinutę:

i1: x i2: x i3: x i4: x o1: x o2: x 03: x o4: x

kur x nurodo būseną, 1 - įjungta, 0 - išjungta.

5 veiksmas: „Android“programa

„Android“programa
„Android“programa
„Android“programa
„Android“programa
„Android“programa
„Android“programa

Naudodamas „MIT App Inventor 2“(https://ai2.appinventor.mit.edu/) sukūriau paprastą vartotojo sąsają savo „Android“mobiliajam telefonui. Ši programa leidžia jums pritaikyti kiekvieno įvesties/išvesties aprašą. Tai taip pat leidžia įvesti telefono numerį.

Keturi mygtukai naudojami išvestims valdyti, o žymės langeliai nurodo įvesties būseną.

Norėdami redaguoti programą, sukurkite „MIT App Inventor 2“paskyrą ir importuokite AIA failą.

Norėdami įdiegti programą savo telefone, nukopijuokite APK failą į savo telefoną ir įdiekite jį. Telefono saugos nustatymuose turėsite įgalinti programų diegimą iš „Nežinomų šaltinių“.

Rekomenduojamas: