Motorcykel/PushBike larmsystem (7 / 7 steg)

Steg 7: Mottagarenhet



Min mottagarenhet är inte en färdig enhet för detta system, det är snarare ett tidigare projekt som jag har ändrat för att fungera som en mottagarenhet. Enheten består av en hake Arduino ATmega328p monterad i plastkapsling med en I2C 16 x 2 Liquid Crystal Display, en 240 VAC 10A relä, en RGB-LED, en Summer och en NRF24L01 transceiver. Tanken här är att när en larmsignal mottas LCD-skärmen visas ett meddelande och blinkar tillsammans med en RGB LED, Summer ljud och reläet kopplar på en säkerhet strålkastare eller något liknande hög driv.

Min mottagarenhet innehåller även en annan Arduino Uno med Ethernet Shield som är programmerad att få tillgång till en online-tjänst som kallas Twilio som kommer att skicka ett SMS-meddelande till min mobiltelefon. Men jag kommer att koncentrera sig bara på ATmega328p mottagare krets, om du vill inkludera denna funktion i din enhet då chef över till här att lära sig hur. Min kod visar hur jag har skickat en digital utsignal från ATmega328p mottagare kretsen till Arduino Uno att utlösa skicka SMS koden. Också att märka att min mottagarenhet hus en 4-vägs relay board, men min kod endast använder en av dessa reläer.

Om vi tar en titt på koden:

Ställ in I2C 16 x 2 LCD uppvisning
#include < Wire.h >
#include < FastIO.h >
#include < I2CIO.h >
#include < LCD.h >
#include < LiquidCrystal.h >
#include < LiquidCrystal_I2C.h >

LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, positiv); ställa in LCD-I2C adress

Här sätter vi en instans för LCD-skärmen kallas "lcd". Header-filer ingår är alla en del av LiquidCrystal_I2C biblioteket hittade här.

ställa in NRF24L01 transceiver
#include < SPI.h >
#include "nRF24L01.h"
#include "RF24.h"
#define CHIP_ENABLE 9
#define CHIP_SELECT 10
RF24 radio (CHIP_ENABLE, CHIP_SELECT);
CONST uint64_t rör [2] = {0xF0F0F0F0E2LL 0xF0F0F0F0D3LL};

Nästa, vi sätter upp den NRF24L01 instansen med samma metod som sändare enhet se till att vi använder samma adresser som röret.

/*********************************************************/
/ *** Systemkonfiguration *** /
/*********************************************************
/ definiera utgångsstift
#define SMS_OUTPUT 2
#define SUMMERN 4
#define GREEN_LED 5
#define RED_LED 6
#define BLUE_LED 7
#define FLOOD_LIGHT 8
definiera varaktigheter
#define ALARM_DURATION 10000 / / tid i millisekunder som aktiverar larmet
#define BUZZER_DURATION 0000 / / tid i millisekunder som Summer ljud
#define DISABLE_DURATION 30 / / tid i minuter som alarmet ska inaktiveras
deklarera globala variabler
osignerade långa lastReading;
unsigned int count = 0;

Nästa del av koden definierar olika variabler för skissen. Alarm varaktighet och summern varaktighet kan konfigureras här - jag har Summer varaktighet anges till 0 vid denna tid som driver min fru galen varje gång jag testa det :)

void setup(void)
{
Serial.BEGIN(38400);
pinMode (SMS_OUTPUT, OUTPUT);
pinMode (Summer, OUTPUT);
pinMode (GREEN_LED, OUTPUT);
pinMode (RED_LED, OUTPUT);
pinMode (BLUE_LED, OUTPUT);
pinMode (FLOOD_LIGHT, OUTPUT);
digitalWrite (SMS_OUTPUT, hög); Skicka inte SMS tills utlöste
LCD.BEGIN(16,2);
LCD.Clear();
LCD.backlight();
lcd.setCursor(0,0);
LCD.Print ("System Status:");
lcd.setCursor(0,1);
LCD.Print ("väpnade");

Flash grön LED att ange system reset
för (int jag = 0; jag < 10; i ++) {
digitalWrite (GREEN_LED, hög);
Delay(50);
digitalWrite (GREEN_LED, låg);
Delay(50);
}
lämna grön ledde på att ange system power
digitalWrite (GREEN_LED, hög);
installera och konfigurera RF radio
SPI.begin();
radio.setPALevel(RF24_PA_MAX);
radio.setDataRate(RF24_250KBPS);
radio.setChannel(108);
radio.BEGIN();
radio.setRetries (15, 15); fördröjning mellan försöken, antal återförsök
radio.setPayloadSize (8). att minska Nyttolaststorlek förbättra reliabiliteten
radio.openWritingPipe(pipes[1]);
radio.openReadingPipe(1,pipes[0]);
radio.startListening();
radio.printDetails(); dumpa RF-konfigurationen för felsökning
} / / SLUTET AV INSTALLATIONEN

Åtkomstkoden konfigurerar GPIO stiften, skriver ut ett meddelande till LCD-skärmen och blinkar den gröna lysdioden tio gånger. Sedan konfigurerar NRF24L01 med samma datahastighet och kanal som sändare och börjar lyssna för inkommande överföringar.

Stora slingan helt enkelt anropar funktionen checkRadio() om och om igen.

void checkRadio(void)
{
om det finns data redo
om (radio.available())
{
dumpa nyttolasterna tills vi har allt
unsigned int befalla;
bool = false;
medan (! gjort)
{
Hämta nyttolasten, och se om det är den sista
klart = radio.read (& kommando, sizeof kommandot);
om (kommandot == 1)
{
larm
greve ++;
Serial.Print(Count);
Serial.println ("-kommando tas emot");
triggerAlarm();
} / / end av if(command == 1)
} / / end läsa nyttolasten
} / / end av tillgängliga data
} / / end av checkRadio

Funktionen checkRadio() fungerar helt enkelt genom att kontrollera alla uppgifter som inkommit och om dessa data är lika med 1 sedan hoppa till funktionen triggerAlarm().

void triggerAlarm(void)
{
osignerade långa startTime = millis(); Markera början av funktionen
osignerade långa previousBuzzerMillis; används för Summer sekvens
byte buzzerState; används för Summer sekvens
CONST byte buzzer_interval = 100; används för Summer sekvens
osignerade långa previousLedMillis; används för LED flash sekvens
CONST byte led_interval = 100; används för LED flash sekvens
byte redState; används för LED flash sekvens
byte blueState; används för LED flash sekvens

digitalWrite (SMS_OUTPUT, låg); Skicka ett SMS
Delay(500); Temboo SMS skicka koden har delay(150) i loop
digitalWrite (SMS_OUTPUT, hög);
göra
{
slå på strålkastare och stäng av den gröna lysdioden
digitalWrite (FLOOD_LIGHT, hög);
digitalWrite (GREEN_LED, låg);
Starta summern ordning
om (millis() - startTime < BUZZER_DURATION)
{
suppleant summern på/av för hela summern sekvensen
om (millis() - previousBuzzerMillis > = buzzer_interval)
{
previousBuzzerMillis = millis();
om (buzzerState == låg)
{
buzzerState = hög; slå på
} annat
{
buzzerState = låg; byta OFF
}
digitalWrite (Summer, buzzerState);
}
}
om (millis() - startTime > BUZZER_DURATION)
{
se till att summern är avstängd i slutet av summern sekvens
digitalWrite (Summer, låg);
} / / end av summern sekvens
Starta lysdioden blinkar sekvensen
om (millis() - previousLedMillis > = led_interval)
{
previousLedMillis = millis();
om (redState == låg)
{
skriva ut ett meddelande på LCD-skärm
lcd.setCursor(0,0);
LCD.Print ("ALERT!");
lcd.setCursor(0,1);
LCD.Print("");
redState = hög;
blueState = låg;
lcd.noBacklight(); Flash LCD-skärm
} annat
{
redState = låg;
blueState = hög;
LCD.backlight(); Flash LCD-skärm
}
digitalWrite (RED_LED, redState);
digitalWrite (BLUE_LED, blueState);
}
} medan (millis() - startTime < ALARM_DURATION);
återställa systemet "Väpnade" konfiguration
digitalWrite (FLOOD_LIGHT, låg);
digitalWrite (Summer, låg);
digitalWrite (RED_LED, låg);
digitalWrite (BLUE_LED, låg);
digitalWrite (GREEN_LED, hög);
LCD.backlight();
lcd.setCursor(0,0);
LCD.Print ("System Status:");
lcd.setCursor(0,1);
LCD.Print ("väpnade");

} / / end av triggerAlarm()

Funktionen triggerAlarm() för det första signal en text meddelande till min andra Arduino (ingår inte i detta Instructable). Sedan resten är vad som kallas icke-blockerande koden för att tillåta oss att arbeta med tidsfördröjningar och i princip låter alarmet under en förutbestämd tid (ALARM_DURATION) innan du återvänder systemet till en "beväpnade" stat.

Ha det så kul!

Se Steg
Relaterade Ämnen

Motorcykel usb och lättare port / tillbehör laddare

pågick en 30 dagars motorcykel resa med mina söner och behövs för att ladda våra prylar så jag gjorde den här kontaktenEfter gör en sökning här fann jag detta men min var lite annorlunda i göra upp och använda. Så jag postat min. Jag har ett batteri...

Arduino - Laser Tripwire larmsystem

Hej alla,I detta instructable, vi kommer att bygga en laser guidade tripwire larmsystem med en utveckling styrelse.YouTube-versionen:Steg 1: delar Komponenter som används i projektet:Development board - SainSmart Leonardo R3Låda - kopplingsdosaTrip w...

Bygga din egen elektrisk motorcykel

ÖversiktDet färdiga projektet är en 1981 Kawasaki KZ440, omvandlas till elektriska. Den drivs av fyra Optima gul topp förseglade (AGM) bly-syra batterier, som driver en Briggs & Stratton Etek elmotor. Hastigheten på motorn styrs av en Alltrax varumär...

Bygga en elektrisk motorcykel på en budget

Målet med detta projekt var att konvertera en klassisk motorcykel i en ren, tyst, elektriska dagliga drivrutin som skulle minska den bil förorening genom mitt kort till mid-range drivande resor.Kostnad: $1.000Område: 40 MilesHastighet: 40 mph med nuv...

Enkel DIY elektrisk motorcykel konvertering

vi började med en Honda Rebel junker och en dröm - att göra en praktisk, noll utsläpp fordon för pendling i San Francisco. Efter samråd med några planer tillgängliga online som krävde hugga ramen betydligt, beslutade vi att räkna ut det själva. Beväp...

Elektrisk motorcykel

Projektet började med en gratis Razor Pocket Mod Scooter hittade på sidan av vägen. Även om det inte körs, var ramen i god form. Jag beslutade att använda oavsett delar jag kunde rädda och kombinera dem med en mountainbike och anpassade kroppen att b...

Elektrisk motorcykel på Instructables/hantverkare erfarenhet Webcast

det senaste fredag fick jag gå till Chicago för att möta upp med andra Instructables författare för en direktsänd webbsändning på hantverkare upplevelsen att visa upp våra DIY projekt! Jag tog ut min DIY elektrisk motorcykel!...

Ingenjör egna elektrisk motorcykel!

Konvertera en motorcykel till en elbil är inte så svårt som du kanske tror. En EV konvertering kan göras med 100% off hyllan delarna med hjälp av olika byggandeanvisningar tillgängliga gratis på internet. Massor av människor har byggt dessa saker inn...

Hur man bygger en 24 Volt elektrisk motorcykel

Jag har tittat på några elektriska fordon (EV) bygger för motorcyklar på Instructables och de alla var mycket hjälpsamma. Jag hoppas att lägga till dem som har gått vidare och byggt, delade och motiverade mig att bygga en. Detta är hur jag gick om at...

Hur man bygger en 72 Volt elektrisk motorcykel

till salu - http://www.ben.cbccinc.com/BEM/forsale.htmIngen gas, ingen olja och nästan tyst. 72 volt, 70 km/h ren roligt. Detta är hur jag byggde en elektrisk motorcykel.Steg 1: Varför och hur jag bara arbeta 3 miles hemifrån men med gaspriserna tapp...

Hur man bygger en 96-Volt elektrisk motorcykel

som många andra jag beslutat att sluta vänta på att en anständig elektrisk väg cykel till ett rimligt pris, så jag byggde en ut en ledig cykel jag köpte på eBay för ca $700. Jag bygger min på en 82 Yamaha turbo eftersom 1) jag har ICE version (därav...

DIY motorcykel mobiltelefon Mount

Detta projekt bygger på min andra "lätt DIY motorcykel kamerafäste" instructable. Du hittar den här:...

10mm LED motorcykel Instrument ljus konvertering

jag trodde det skulle vara en cool idé att ersätta gamla instrument belysningen på min cykel med lysdioderInte bara vore de motstå vibrationer, men de skulle också avger mindre värme och dränera mycket lite strömSteg 1: Komponenter som behövs• 10mm s...

12V uttag - motorcykel

Steg 1: Lägga till ett eluttag på motorcykel...Mitt första som... Inte alltför snyggt men fungerar...Fortfarande på egen risk.Element, som krävs:EluttagMultimeter (att göra saker lättare)Extra tråd (för att ansluta till växlade punkt i sele)PVC-rör (...

50 gallon Whiskey fat motorcykel Trailer byggplaner

en av de tidigaste motorcykeln släp för bogsering bakom min motorcykel var 50 Gallon Whiskey fat motorcykel Trailer. Det var mycket roligt att bygga och får mycket uppmärksamhet på vägen....

Lägga till Bluetooth till en motorcykel hjälm

ridning min motorcykel för långa perioder utan slag eller radio fick tråkig quick. Jag började att bära min bluetooth hörsnäcka inuti min hjälm, men det var allt annat än bekväm. Så jag bestämde mig att lägga till bluetooth i min hjälm, men hjälm kit...

Ammo kan motorcykel sadelväskor

Min kompis och jag beslutade att ta dessa ammo kan sadelväskor till nästa nivå genom att konsumera stora mängder whisky och göra dem lite flashier, men ändå hålla som "Holy crap, är dessa sadel väskor ammo burkar?" känns. De kom ut mycket svalar...

Bygga ett släp bakom en motorcykel eller liten bil Trailer

Detta är min första "vänners kompatibla så låt mig veta om allt fungerar eller du vill ha info jag glömde eller inte täckte!HUR MAN BYGGER ETT SLÄP BAKOM EN MOTORCYKEL ELLER BIL LITEN SLÄPVAGNVi byggde denna lilla dra bakom 3 år sedan så jag har inte...

Bygga en motorcykel plats

målen för det här projektet var:* Göra en plats för min Honda 100 av material som jag hade liggande* Enkelt modifierbara* Har detta säte vara bekväm nog för rock and roll* Har plats utseende "professional" nog att vara stolt över* Vara lätt avta...