Right now just infrared 4 it's works.
// transmitter
#include <VirtualWire.h>
#define ir_car1 5
#define ir_car2 6
#define ir_car3 7
#define ir_car4 8
int S1=0, S2=0, S3=0, S4=0;
int flag1=0, flag2=0;
int slot = 4;
void setup()
{
Serial.begin(9600);
vw_setup(2000);
vw_set_tx_pin(12);
pinMode(ir_car1, INPUT);
pinMode(ir_car2, INPUT);
pinMode(ir_car3, INPUT);
pinMode(ir_car4, INPUT);
int total = S1+S2+S3+S4;
slot = slot-total;
}
void loop()
{
S1 = digitalRead(ir_car1);
S2 = digitalRead(ir_car2);
S3 = digitalRead(ir_car3);
S4 = digitalRead(ir_car4);
if(S1==1)
{
const char *msg = "Empty1";
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx();
Serial.println("S1:Empty");
}
else {
const char *msg = "Fill1";
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx();
Serial.println("S1:Fill");
}
if(S2==1)
{
const char *msg = "Empty2";
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx();
Serial.println("S2:Empty");
}
else {
const char *msg = "Fill2";
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx();
Serial.println("S2:Fill");
}
if(S3==1)
{
const char *msg = "Empty3";
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx();
Serial.println("S3:Empty");
}
else {
const char *msg = "Fill3";
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx();
Serial.println("S3:Fill");
}
if(S4==1)
{
const char *msg = "Empty4";
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx();
Serial.println("S4:Empty");
}
else {
const char *msg = "Fill4";
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx();
Serial.println("S4:Fill");
}
delay(1000);
}
//receiver
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <VirtualWire.h>
LiquidCrystal_I2C lcd(0x27,16,2);
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
int i;
void setup()
{
Serial.begin(9600);
vw_setup(2000);
vw_set_rx_pin(11);
vw_rx_start();
lcd.init(); // initialize the lcd
lcd.init();
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor (0,0);
lcd.print(" Car parking ");
lcd.setCursor (0,1);
lcd.print(" System ");
delay (2000);
lcd.clear();
lcd.setCursor (0,0);
lcd.print(" Have Slot: ");
lcd.print(4);
lcd.print(" ");
delay (2000);
lcd.clear();
}
void loop()
{
Serial.println("test_sent");
if (vw_get_message(buf, &buflen))
{
lcd.setCursor(0,0);
if(strcmp("Empty1", (char*)buf) == 0)
{lcd.print("S1:Empty");
Serial.println("S1:0");
}
else{
lcd.print("S1:Fill");
Serial.println("S1:1");
}
lcd.setCursor(8,0);
if(strcmp("Empty2", (char*)buf) == 0)
{lcd.print("S2:Empty");
Serial.println("S2:0");
}
else{
lcd.print("S2:Fill");
Serial.println("S2:1");
}
lcd.setCursor(0,1);
if(strcmp("Empty3", (char*)buf) == 0)
{lcd.print("S3:Empty");
Serial.println("S3:0");
}
else{
lcd.print("S3:Fill");
Serial.println("S3:1");
}
lcd.setCursor(8,1);
if(strcmp("Empty4", (char*)buf) == 0)
{lcd.print("S4:Empty");
Serial.println("S4:0");
}
else{
lcd.print("S4:Fill");
Serial.println("S4:1");
}
for (i = 0; i < buflen; i++)
{
lcd.write(buf[i]);
}
}
delay(1000);
}