/* SoftwareSerialExample_Sender
*/
#include <NewPing.h>
#include <HCSR04.h>
#include <SoftwareSerial.h>
#define SERIAL_RX 18
#define SERIAL_TX 19
#define ECHO_1 2
#define TRIG 3
SoftwareSerial mySerial(SERIAL_RX, SERIAL_TX);
int enviar;
long actMillis, antMillis=0;
int duration, distance;
void setup() {
pinMode(ECHO_1, INPUT);
pinMode(TRIG, OUTPUT);
Serial.begin(9600);
Serial.println("i send stuf");
mySerial.begin(4800);
}
void loop() {
digitalWrite(TRIG, HIGH);
delay(10);
digitalWrite(TRIG, LOW);
duration = pulseIn(ECHO_1, HIGH);
distance = (duration / 2) / 29.1;
actMillis = millis();
if(actMillis-antMillis>=1000){
antMillis = actMillis;
mySerial.print("Distancia: ");
mySerial.println(distance);
}
}
====================================================================================================================================================================================================================================================================================================================
//#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
#include <SPI.h>
#include <RFID.h>
#include <Servo.h>
#include <SoftwareSerial.h>
#define SERIAL_RX 18
#define SERIAL_TX 19
SoftwareSerial mySerial(SERIAL_RX, SERIAL_TX);
//Prototipos
void blinkblink(int x);
RFID rfid(10, 9); //PIN10 on SDA. PIN 9 on RST
unsigned char status;
unsigned char str[MAX_LEN];
String accesso [1] = {"1171281215114"};
int accessGrantedSize = 1;
Servo lockServo;
Servo lockServoOut;
int lockPos = 0;
int unlockPos = 90;
boolean locked = true;
int lockPosOut = 10;
int unlockPosOut = 90;
boolean lockedOut = true;
int redLEDPin = 16;
int greenLEDPin = 15;
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}, };
byte rowPins[ROWS] = {2, 3, 4, 5 };
byte colPins[COLS] = {6, 7, 8};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);
char receber;
String mensagerecibe;
void setup(){
pinMode(redLEDPin, OUTPUT);
pinMode(greenLEDPin, OUTPUT);
Serial.begin(9600);
Serial.println("show up card");
mySerial.begin(4800);
SPI.begin();
rfid.init();
//lcd.init;
//lcd.begin(16,2);
lockServo.attach(14);
lockServo.write(lockPos);
blinkblink(10);
}
void loop() {
if (mySerial.available()){
recibe = mySerial.read();
mensagerecibe = String(receber);
char mensage[mensagerecibe.length() + 1];
mensagerecibe.toCharArray(mensage, mensagerecibe.length() + 1);
Serial.print(mensage);
}
if (rfid.findCard(PICC_REQIDL, str) == MI_OK){
Serial.println("just the card");
String temp = "";
if (rfid.anticoll(str) == MI_OK){
Serial.print("The number of the card : ");
for (int i = 0; i < 4; i++){
temp = temp + (0x0F & (str[i] >> 4));
temp = temp + (0x0F & str[i]);
}
Serial.println("this is the variable ");
Serial.println (temp);
checkAccess (temp); //Check if the identified tag is an allowed to open tag
}
rfid.selectTag(str); //Lock card to prevent a redundant read, removing the line will make the sketch read cards continually
}
rfid.halt();
}
void checkAccess(String temp){
boolean granted = false;
for (int i=0; i <= (accessGrantedSize-1); i++){
if(accesso[i] == temp){
Serial.println("pin");
granted = true;
if (locked == true){
String passe = "";
for (int x = 0; x < 4; x++){
char Key = keypad.waitForKey();
passe = pass + Key;
Serial.println(Key);
}
Serial.println(pass);
if(passe == "1234"){
Serial.println(" CORRET");
lockServo.write(unlockPos);
locked = false;
digitalWrite(greenLEDPin, HIGH);
delay(200);
}
else{
Serial.println("PIN INCORRET");
}
}
else if (locked == false){
lockServo.write(lockPos);
locked = true;
}
}
}
if (granted == false){
Serial.println ("Acess denim");
digitalWrite(redLEDPin, HIGH);
delay(200);
digitalWrite(greenLEDPin, LOW);
}
}
void blinkblink(int x){
for(int i=0; i <= x; i++){
digitalWrite(redLEDPin, HIGH);
digitalWrite(greenLEDPin, LOW);
delay(100);
digitalWrite(redLEDPin, LOW);
digitalWrite(greenLEDPin, HIGH);
delay(100);
digitalWrite(redLEDPin, LOW);
digitalWrite(greenLEDPin, LOW);
}
}