Motorcykel/PushBike larmsystem (5 / 7 steg)
Steg 5: Skicka koden
Hittills har vi bara utformat hälften av systemet, sändaren.
Låt oss titta på några av koden:
#include < EEPROM.h > / / läsa och skriva PICCS UID: er från/till EEPROM
#include < SPI.h > / / MFRC522 och NRF24L01 använder SPI-protokollet
ställa in MFRC522 RFID-läsare
#include < MFRC522.h >
#define SS_PIN 7
#define RST_PIN 8
MFRC522 mfrc522 (SS_PIN, RST_PIN); skapa MFRC522 förekomst
Huvudfilen EEPROM.h är nödvändigt eftersom vi kommer att använda ATmega328p s EEPROM att lagra RFID-tagg unikt ID koder så att om makt tas bort koderna bevaras i minnet.
Huvudfilen SPI.h krävs som MFRC522 och NRF24L01 båda kommunicera via SPI bussen.
Båda dessa bibliotek ingår med programvaran Arduino IDE.
MFRC522.h biblioteket kan laddas ner här. Det finns gott om guider online för att installera nya bibliotek i Arduino IDE så kommer inte att diskutera det här.
Därefter kan vi se att vi måste skapa en instans av MFRC522 RFID-läsare kallas mfrc522 och definiera SS pin och RST pins som digital stift 7 och 8.
ställa in NRF24L01 transceiver
#include "nRF24L01.h"
#include "RF24.h"
#define CHIP_ENABLE 9
#define CHIP_SELECT 10
RF24 radio (CHIP_ENABLE, CHIP_SELECT); skapa NRF24L01 förekomst
CONST uint64_t rör [2] = {0xF0F0F0F0E2LL 0xF0F0F0F0D3LL}; och förklara pipe adresser
Sedan följer vi upp med att skapa en instans av NRF24L01 sändtagaren. Detta använder header-filer från RF24 biblioteket som kan laddas ner från här. Igen, kan vi se hur vi har definierat digital stift 9 och 10 som Chip aktiverar och Chip Välj stiften. Här kan vi se hur man deklarerar pipe adresserna för radiokommunikation. Så länge den mottagande skissen använder samma adresser som rör kommer sedan de två enheterna att kunna kommunicera med varandra. (Mer om detta senare)
ställa in MPU6050 accelerometer/gyro
#include "I2Cdev.h"
#include "MPU6050.h"
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
#include "Wire.h"
#endif
MPU6050 accelgyro; skapa MPU6050 förekomst
MPU6050 accelgyro(0x69); <--använda för AD0 hög
int16_t axPrev, ayPrev, azPrev;
int16_t gxPrev, gyPrev, gzPrev;
int16_t ax, ay, az;
int16_t gx, gy, gz;
#define ACCEL_SENSITIVITY 7000
#define GYRO_SENSITIVITY 3000
Som tidigare måste vi ställa in MPU6050. Den I2Cdev.h och MPU6050.h biblioteket ingår båda i denna nedladdning. MPU6050 är en stor enhet som kan så mycket mer än hur jag har genomfört det i detta projekt. ACCEL_SENSITIVITY och GYRO_SENSITIVITY värdena kan ändras för att göra enheten mer eller mindre känsliga för rörelser beroende på din situation, du kan behöva experimentera med dessa värden.
Systemkonfigurationen koden som följer är bara pin definitioner och olika variabeldeklarationer för skissen.