coloitu_
Published © MIT

IOT Bicycle Radar

Make a car detecting radar with GPS and IOT.

BeginnerFull instructions provided5,894
IOT Bicycle Radar

Things used in this project

Hardware components

GPS Module (Generic)
×1
Ultrasonic Sensor - HC-SR04 (Generic)
Ultrasonic Sensor - HC-SR04 (Generic)
×1
Arduino Oplà IoT Kit
Arduino Oplà IoT Kit
×1
Male/Female Jumper Wires
Male/Female Jumper Wires
×1

Software apps and online services

Arduino Web Editor
Arduino Web Editor
Arduino IoT Cloud
Arduino IoT Cloud

Hand tools and fabrication machines

Tape, Electrical
Tape, Electrical
Soldering iron (generic)
Soldering iron (generic)

Story

Read more

Schematics

Schematic

Code

Code

Arduino
#include <ArduinoIoTCloud.h>
#include <Arduino_ConnectionHandler.h>
#include <Arduino_MKRIoTCarrier.h>
#include <TinyGPSPlus.h>
MKRIoTCarrier carrier;
TinyGPSPlus gps;
#define echoPin 4 
#define trigPin 5

long duration; 
bool sensor = false;

const char SSID[]     = SECRET_SSID;   
const char PASS[]     = SECRET_PASS;  

void onPressureChange();

float humidity;
float pressure;
float temperature;
int distance;
int light;
int speed;

void initProperties(){

  ArduinoCloud.addProperty(humidity, READ, 1 * SECONDS, NULL);
  ArduinoCloud.addProperty(pressure, READ, 1 * SECONDS, NULL);
  ArduinoCloud.addProperty(temperature, READ, 1 * SECONDS, NULL);
  ArduinoCloud.addProperty(distance, READ, ON_CHANGE, NULL);
  ArduinoCloud.addProperty(light, READ, 1 * SECONDS, NULL);
  ArduinoCloud.addProperty(speed, READ, 1 * SECONDS, NULL);

}

WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, PASS);


void setup() {
  Serial.begin(9600);
  Serial1.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT); 
  delay(500);
  CARRIER_CASE = false;
  carrier.begin();
  carrier.display.setRotation(0);
  delay(1500);


  initProperties();
  ArduinoCloud.addProperty(speed, READ, 1 * SECONDS, NULL);
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
  

  setDebugMessageLevel(4);
  ArduinoCloud.printDebugInfo();
}

void loop() {
  ArduinoCloud.update();
  carrier.Buttons.update();
   
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2; 
  Serial.print(distance);
  Serial.println(gps.speed.kmph());



  temperature = carrier.Env.readTemperature();
  humidity = carrier.Env.readHumidity();
  pressure = carrier.Pressure.readPressure();
 
  if (carrier.Buttons.onTouchDown(TOUCH0)) {
    carrier.display.fillScreen(ST77XX_BLACK);
    carrier.display.setTextColor(ST77XX_WHITE);
    carrier.display.setTextSize(2);
 
    carrier.display.setCursor(35, 90);
    carrier.display.print("TEMP: ");
    carrier.display.print(temperature);
    carrier.display.print(" C");
    
    carrier.display.setCursor(35, 110);
    carrier.display.print("HUMI: ");
    carrier.display.print(humidity);
    carrier.display.print(" %");
    
    carrier.display.setCursor(35, 130);
    carrier.display.print("PRESSURE: ");
    carrier.display.print(pressure);
    delay(10);
  }
  
  while (distance < 600) {
    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    duration = pulseIn(echoPin, HIGH);
    distance = duration * 0.034 / 2; 
    Serial.print(distance);
    carrier.display.fillScreen(ST77XX_BLACK);
    carrier.display.setTextColor(ST77XX_WHITE);
    carrier.display.setTextSize(4);
    carrier.display.setCursor(80, 100);
    carrier.display.print("D:");
    carrier.display.print(distance);
  }


  if (carrier.Buttons.onTouchDown(TOUCH1)) {
    carrier.display.fillScreen(ST77XX_BLACK);
    carrier.display.setTextColor(ST77XX_WHITE);
    carrier.display.setTextSize(4);
    carrier.display.setCursor(65, 100);
    carrier.display.print("D:");
    carrier.display.print(distance);
    delay(10);
    
    
  }
  
  if (carrier.Buttons.onTouchDown(TOUCH2)) {
    carrier.display.fillScreen(ST77XX_BLACK);
    carrier.display.setTextColor(ST77XX_WHITE);
    carrier.display.setTextSize(3);
    carrier.display.setCursor(50, 100);
    carrier.display.print("Sp:");
    carrier.display.print(speed);
    delay(10);
    
    
  }

}

Credits

coloitu_
19 projects • 3 followers

Comments