Android en Arduino SMS-gebaseerde domotica: 5 stappen (met afbeeldingen)
Android en Arduino SMS-gebaseerde domotica: 5 stappen (met afbeeldingen)
Anonim
Android en Arduino SMS-gebaseerde huisautomatisering
Android en Arduino SMS-gebaseerde huisautomatisering
Android en Arduino SMS-gebaseerde huisautomatisering
Android en Arduino SMS-gebaseerde huisautomatisering

! ! ! KENNISGEVING ! ! !

Omdat de lokale gsm-toren in mijn regio wordt geüpgraded, kan ik deze GSM-module niet langer gebruiken. De nieuwere toren ondersteunt geen 2G-apparaten meer. Daarom kan ik geen steun meer geven aan dit project

Onlangs ontving ik een relatief goedkope Quad Band GSM/GPRS-module om mee te spelen. Het is een SIM800L-module en communiceert met elke micro via een seriële poort. Het kwam compleet met een panel mount antenne.

Ik besloot een eenvoudig SMS-controllersysteem te bouwen dat short message service (SMS)-commando's gebruikt om apparaten te bedienen en alarmen aan te geven.

Stap 1: SMS-opdrachten

SMS-opdrachten
SMS-opdrachten

Zoals bij elk communicatiesysteem, moeten specifieke opdrachten naar een extern apparaat worden gestuurd om het te vertellen wat het moet doen. Evenzo moet het externe apparaat op deze opdrachten antwoorden of reageren. Dit project bestaat uit twee delen, de SMS Controller en een standaard mobiele telefoon.

Het idee was om een simpele SMS Controller te maken met vier digitale uitgangen. Afhankelijk van de ontvangen SMS moet de unit de individuele uitgangen kunnen aansturen.

Ik heb ook besloten om vier digitale ingangen op te nemen. Dit kan worden gebruikt om alarmen of andere informatie aan te geven.

Voordat ik met de build begon, besloot ik specifieke opdrachten voor specifieke functies te maken. Deze 'commando's' worden verzonden via een sms vanaf een mobiele telefoon.

SMS-controller ontvangen commando's:

o1:1 - zet uitgang 1 aan

o1:0 - zet uitgang 1 uit

o1:p - pulsuitgang 1 Aan, dan uitschakelen

o2:1 - zet uitgang 2 aan

o2:0 - zet uitgang 2 uit

o2:p - pulsuitgang 2 Aan, dan uitschakelen

o3:1 - zet uitgang 3 aan

o3:0 - zet uitgang 3 uit

o3:p - pulsuitgang 3 Aan, dan uit

o4:1 - zet uitgang 4 aan

o4:0 - zet uitgang 4 uit

o4:p - pulsuitgang 4 Aan, dan uitschakelen

???? - Status van ingangen en uitgangen opvragen

#### - Systeem resetten

Voor feedback moet de SMS-controller reageren op de ontvangen opdrachten en antwoorden met een sms. Ik heb besloten dat deze antwoord-sms de status van alle I/O-pinnen moet bevatten.

Reactiecommando's SMS-controller:

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

waarbij x de I/O-status is, 1 voor Aan, 0 voor Uit.

Stap 2: De SMS-controller bouwen

De SMS-controller bouwen
De SMS-controller bouwen
De SMS-controller bouwen
De SMS-controller bouwen
De SMS-controller bouwen
De SMS-controller bouwen

Benodigde uitrusting:

Elke Arduino, of stand-alone ATMEGA328p op een breadboard

SIM800L GSM/GPRS-module met een simkaart die sms'jes kan verzenden en ontvangen

Trap naar beneden DC/DC-converter

OPMERKING !

De DC/DC-converter is vereist om de SIM800L-module van stroom te voorzien. Deze module werkt tussen 3.7V en 5V, afhankelijk van de versie die je hebt. Deze module heeft ook een voeding nodig die tot 2A kan leveren wanneer de module gegevens verzendt. Het kan niet rechtstreeks vanuit de Arduino Uno worden gevoed!

De schakeling is vrij eenvoudig. Ik heb het geassembleerd en getest op breadboard.

De stroom naar het circuit gaat via de DC/DC-converter, met de uitgangsspanning ingesteld op 4,5V. Er zijn vier LED's om de digitale uitgangen te simuleren en vier knoppen voor de digitale ingangen. De SIM800L wordt aangesloten op de Rx/Tx pinnen van de ATMEGA328p.

Een 5e LED wordt gebruikt om aan te geven wanneer het systeem bezig is met het verzenden van een SMS.

Stap 3: Programmeren van de ATMEGA328p

Programmeren van de ATMEGA328p
Programmeren van de ATMEGA328p
Programmeren van de ATMEGA328p
Programmeren van de ATMEGA328p

Open voor het programmeren het INO-bestand en bewerk het telefoonnummer. Vervang xxxxxxxxxx door uw eigen mobiele telefoonnummer in regel 46. Compileer opnieuw en upload het bestand.

Lees ook de instructies voor het configureren van de Software Serial-poort in het INO-bestand.

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

// ! ! ! OPMERKING ! ! !

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

//

// BUFFER IN SOFTWARE SERILE BIBLIOTHEEK MOET WORDEN GEWIJZIGD IN 200

//

// Om Software Serial te gebruiken, moet de gebruiker ook de Software Serial BUFFER wijzigen in 200.

// Dit moet worden bewerkt in het volgende bestand:

//

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

//

// Wijzig de buffer zoals hieronder:

//

// #ifndef _SS_MAX_RX_BUFF

// #define _SS_MAX_RX_BUFF 200

// RX-buffergrootte

// #stop als

//

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

Raadpleeg deze instructie om de ATMEGA328p op het breadboard te programmeren met behulp van een Arduino UNO.

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

Stap 4: De SMS-controller gebruiken

De SMS-controller gebruiken
De SMS-controller gebruiken

De SMS-controller gebruiken

De SMS-controller stuurt automatisch een sms naar uw telefoon als een van de vier ingangen wordt geactiveerd. De details van de trigger staan in de sms-tekst.

De SMS-berichten en commando's kunnen naar wens worden bewerkt in het INO-bestand.

De uitgangen van de SMS-controller testen

Stuur vanaf uw mobiele telefoon de volgende opdrachten naar uw SIM800L simkaartnummer:

o1:1, hierdoor wordt uitgang 1 ingeschakeld.

Op je telefoon ontvang je de volgende sms:

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

01:0, hierdoor wordt uitgang 1 uitgeschakeld.

Op je telefoon ontvang je de volgende sms:

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

01:p, hierdoor wordt uitgang 1 gedurende 1 seconde ingeschakeld en vervolgens wordt uitgang 1 weer uitgeschakeld (gepulseerd).

Op je telefoon ontvang je de volgende sms:

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

De ingangen van de SMS-controller testen

Druk op de SMS Controller kort op knop 1

Op je telefoon ontvang je automatisch de volgende sms:

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

Druk op de SMS Controller kort op knop 2

Op je telefoon ontvang je automatisch de volgende sms:

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

Druk op de SMS Controller kort op knop 3

Op je telefoon ontvang je automatisch de volgende sms:

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

Zoals te zien is op de ontvangen SMS, veranderen de uitgangen volgens de ontvangen commando's. De ingangen veranderen echter niet terug van een 1 naar een 0 nadat de knoppen zijn ingedrukt. Omdat ik eventuele wijzigingen op de ingangen wilde kunnen zien, besloot ik de ingangsstatus te verzegelen totdat een reset-commando naar de SMS-controller wordt verzonden.

Alarmen resetten

Stuur de volgende opdracht om de ingangsstatus te resetten:

####, hierdoor wordt de ingangsstatus gereset.

Op je telefoon ontvang je de volgende sms:

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

Status updates

U kunt de status ook op elk moment opvragen door het volgende commando te sturen:

????, dit zal een statusupdate van de I/O's vragen.

Op je telefoon ontvang je de volgende sms:

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

waarbij x de status aangeeft, 1 voor aan, 0 voor uit.

Stap 5: Android-applicatie

Android-applicatie
Android-applicatie
Android-applicatie
Android-applicatie
Android-applicatie
Android-applicatie

Met behulp van MIT App Inventor 2 (https://ai2.appinventor.mit.edu/) heb ik een eenvoudige gebruikersinterface gemaakt voor mijn mobiele Android-telefoon. Met deze app kun je de beschrijving van elke I/O aanpassen. Het maakt het ook mogelijk om het telefoonnummer in te voeren.

De vier knoppen worden gebruikt om de uitgangen te bedienen, terwijl de selectievakjes de ingangsstatus aangeven.

Om de app te bewerken, maakt u een MIT App Inventor 2-account aan en importeert u het AIA-bestand.

Om de app op uw telefoon te installeren, kopieert u het APK-bestand naar uw telefoon en installeert u het. U moet de installatie van apps van "Onbekende bronnen" inschakelen onder de beveiligingsinstellingen van uw telefoon.