IoT Bluetooth and Aouto Control Car
Thi make Very advance. Downlod library..
Components and supplies
Arduino Nano R3
DC motor (generic)
OLED Display 0.96" Blue Yellow 128X64 OLED LCD LED IIC I2C DC 3V-5V SPI
IR Sensor
Ultrasonic Sensor - HC-SR04 (Generic)
Arduino MotorShield Rev3
Apps and platforms
Arduino IDE
Processing
Project description
Code
Line follow CODE
arduino
1#include <AFMotor.h> 2 3#include <Wire.h> 4#include <Adafruit_GFX.h> 5#include <Adafruit_SSD1306.h> 6 7#define OLED_RESET 4 8Adafruit_SSD1306 display(OLED_RESET); 9 10#define NUMFLAKES 10 11#define XPOS 0 12#define YPOS 1 13#define DELTAY 2 14 15#define LOGO16_GLCD_HEIGHT 16 16#define LOGO16_GLCD_WIDTH 16 17 18 19int leftInput=A1; 20int rightInput=A0; 21 22 23int leftValue = 0; 24int rightValue = 0; 25AF_DCMotor motor(4); 26AF_DCMotor motor1(3); 27void setup() 28{ 29 30display.begin(SSD1306_SWITCHCAPVCC, 0x3C); 31 32} 33void loop() 34{ 35 leftValue = analogRead (leftInput); 36 rightValue= analogRead (rightInput); 37 38 if 39 ( leftValue < 100 && rightValue <100) 40 {display.clearDisplay(); 41 display.setTextSize(2); 42 display.setTextColor(WHITE); 43 display.setCursor(20,9); 44 45 display.println("Foward"); 46 motor1.run(FORWARD); 47 motor.run(FORWARD); 48 motor1.setSpeed(150); 49 motor.setSpeed(150); 50 51 } 52 else 53 { 54 55 if 56 ( leftValue > 100 && rightValue < 100) 57 { 58 motor1.run(FORWARD); 59 motor.run(FORWARD); 60 motor1.setSpeed(0); 61 motor.setSpeed(150); 62 63 } 64 else { 65 if (leftValue < 100 && rightValue > 100) 66 { 67 display.clearDisplay(); 68 display.setTextSize(2); 69 display.setTextColor(WHITE); 70 display.setCursor(30,9); 71 72 display.println("Right"); 73 motor1.run(FORWARD); 74 motor.run(FORWARD); 75 motor1.setSpeed(150); 76 motor.setSpeed(0); 77 } 78 else 79 { display.clearDisplay(); 80 display.setTextSize(2); 81 display.setTextColor(WHITE); 82 display.setCursor(30,9); 83 84 display.println("Left"); 85 if (leftValue > 100 && rightValue > 100) 86 {motor1.run(FORWARD); 87 motor.run(FORWARD); 88 motor1.setSpeed(0); 89 motor.setSpeed(0); 90 }} 91 } 92 }} 93
Line follow CODE
arduino
1#include <AFMotor.h> 2 3#include <Wire.h> 4#include <Adafruit_GFX.h> 5#include <Adafruit_SSD1306.h> 6 7#define OLED_RESET 4 8Adafruit_SSD1306 display(OLED_RESET); 9 10#define NUMFLAKES 10 11#define XPOS 0 12#define YPOS 1 13#define DELTAY 2 14 15#define LOGO16_GLCD_HEIGHT 16 16#define LOGO16_GLCD_WIDTH 16 17 18 19int leftInput=A1; 20int rightInput=A0; 21 22 23int leftValue = 0; 24int rightValue = 0; 25AF_DCMotor motor(4); 26AF_DCMotor motor1(3); 27void setup() 28{ 29 30display.begin(SSD1306_SWITCHCAPVCC, 0x3C); 31 32} 33void loop() 34{ 35 leftValue = analogRead (leftInput); 36 rightValue= analogRead (rightInput); 37 38 if 39 ( leftValue < 100 && rightValue <100) 40 {display.clearDisplay(); 41 display.setTextSize(2); 42 display.setTextColor(WHITE); 43 display.setCursor(20,9); 44 45 display.println("Foward"); 46 motor1.run(FORWARD); 47 motor.run(FORWARD); 48 motor1.setSpeed(150); 49 motor.setSpeed(150); 50 51 } 52 else 53 { 54 55 if 56 ( leftValue > 100 && rightValue < 100) 57 { 58 motor1.run(FORWARD); 59 motor.run(FORWARD); 60 motor1.setSpeed(0); 61 motor.setSpeed(150); 62 63 } 64 else { 65 if (leftValue < 100 && rightValue > 100) 66 { 67 display.clearDisplay(); 68 display.setTextSize(2); 69 display.setTextColor(WHITE); 70 display.setCursor(30,9); 71 72 display.println("Right"); 73 motor1.run(FORWARD); 74 motor.run(FORWARD); 75 motor1.setSpeed(150); 76 motor.setSpeed(0); 77 } 78 else 79 { display.clearDisplay(); 80 display.setTextSize(2); 81 display.setTextColor(WHITE); 82 display.setCursor(30,9); 83 84 display.println("Left"); 85 if (leftValue > 100 && rightValue > 100) 86 {motor1.run(FORWARD); 87 motor.run(FORWARD); 88 motor1.setSpeed(0); 89 motor.setSpeed(0); 90 }} 91 } 92 }} 93
Final Robat CODE
arduino
1 2 3 4#include <RedBot.h> 5#include <AFMotor.h> 6#include <Wire.h> 7#include <Adafruit_GFX.h> 8#include <Adafruit_SSD1306.h> 9#include<dht.h> 10dht N; 11#define OLED_RESET 4 12Adafruit_SSD1306 display(OLED_RESET); 13 14#define NUMFLAKES 10 15#define XPOS 0 16#define YPOS 1 17#define DELTAY 2 18 19#define LOGO16_GLCD_HEIGHT 16 20#define LOGO16_GLCD_WIDTH 16 21 22AF_DCMotor motor(4); 23AF_DCMotor motor1(3); 24int leftInput=A1; 25int rightInput=A0; 26 27int leftValue = 0; 28int rightValue = 0; 29char val; 30/////////////////////////////////////////////////////////////// 31int trigPin = 10; //Trig - green Jumper 32int echoPin = 9; //Echo - yellow Jumper 33long duration, cm, inches; 34//////////////////////////////////////////////////////////////// 35 36int state = 0; 37//////////////////////////////////// 38 39 40void setup() { 41display.begin(SSD1306_SWITCHCAPVCC, 0x3C); 42 motor1.run(RELEASE); 43 motor.run(RELEASE); 44 45 pinMode(trigPin, OUTPUT); 46 pinMode(echoPin, INPUT); 47 digitalWrite(trigPin, LOW); 48 delayMicroseconds(5); 49 50 display.clearDisplay(); 51 52 display.setTextSize(2); 53 display.setTextColor(WHITE); 54 display.setCursor(36,8); 55 for (int16_t i=0; i<display.height()/2; i+=2) { 56 display.drawRect(i, i, display.width()-2*i, display.height()-2*i, WHITE); 57 display.display(); 58 delay(30); 59 } 60 61display.setTextSize(2); 62 display.setTextColor(WHITE); 63 display.setCursor(35,9); 64 display.clearDisplay(); 65 display.println("Hello"); 66 display.display(); 67 68 display.setTextSize(1); 69 display.setTextColor(WHITE); 70 display.setCursor(0,0); 71 72 display.println("IOT Arduoino Mono car"); 73 display.display(); 74 display.setTextSize(1); 75 display.setTextColor(WHITE); 76 display.setCursor(5,25); 77 78 display.println("Powerd 2018 Arduoino"); 79 display.display(); 80 delay(2000); 81 display.setCursor(0,0); 82 display.setTextSize(1); 83 display.setTextColor(WHITE); 84 display.clearDisplay(); 85 display.println("This IOT Car Feature"); 86 display.display(); 87 88 display.setTextSize(1); 89 display.setTextColor(WHITE); 90 display.setCursor(7,8); 91 92 display.println("1.Bluetooth control"); 93 display.display(); 94 display.setCursor(7,17); 95 display.println("2.Wether Sosility"); 96 display.display(); 97 display.setCursor(7,25); 98 display.println("3.Line Follower"); 99 display.display(); 100 delay(1000); 101 102 Serial.begin(38400); // Default communication rate of the Bluetooth module 103} 104void loop() { 105 106 107 digitalWrite(trigPin, HIGH); 108 delayMicroseconds(10); 109 digitalWrite(trigPin, LOW); 110 duration = pulseIn(echoPin, HIGH); 111 112 cm = (duration / 2) / 29.1; 113 114 if (cm < 30) { 115 display.clearDisplay(); 116 display.setCursor(18,0); 117 display.setTextSize(1); 118 display.setTextColor(WHITE); 119 120 display.println("Ultrasonic HUB"); 121 122 display.setTextSize(2); 123 display.setTextColor(WHITE); 124 display.setCursor(10,9); 125 126 display.println("Area Warn"); 127 display.setTextSize(1); 128 display.setTextColor(WHITE); 129 display.setCursor(55,25); 130 131 display.println(cm); 132 display.setCursor(70,25); 133 display.println("Cm"); 134 135 136 137 display.display(); 138 139 motor1.run(FORWARD); 140 motor.run(FORWARD); 141 motor1.setSpeed(0); 142 motor.setSpeed(0); 143 } 144 145 146 147 148 149//////////////////////////////////////////////////////////////////// 150 if (Serial.available() > 0) { // Checks whether data is comming from the serial port 151 state = Serial.read(); // Reads the data from the serial port 152 } 153 154 155 //Engien by////////////////////////////////////////////////////////////////////////////// 156 if (state == 'F') { 157 display.clearDisplay(); 158 display.setTextSize(2); 159 display.setTextColor(WHITE); 160 display.setCursor(20,9); 161 162 display.println("Foward"); 163 motor1.run(FORWARD); 164 motor.run(FORWARD); 165 motor1.setSpeed(255); 166 motor.setSpeed(255); 167 168 display.display(); 169 state = 0; 170 } 171 if (state == 'S') { 172 display.clearDisplay(); 173 display.setTextSize(2); 174 display.setTextColor(WHITE); 175 display.setCursor(30,9); 176 177 display.println("STOP"); 178 motor1.run(FORWARD); 179 motor.run(FORWARD); 180 motor1.setSpeed(0); 181 motor.setSpeed(0); 182 183 display.display(); 184 state = 0; 185 } 186 if (state == 'R') { 187 display.clearDisplay(); 188 display.setTextSize(2); 189 display.setTextColor(WHITE); 190 display.setCursor(30,9); 191 192 display.println("Right"); 193 motor1.run(FORWARD); 194 motor.run(FORWARD); 195 motor1.setSpeed(255); 196 motor.setSpeed(0); 197 198 display.display(); 199 200 state = 0; 201 202 203 } 204 205 if (state == 'L') { 206 display.clearDisplay(); 207 display.setTextSize(2); 208 display.setTextColor(WHITE); 209 display.setCursor(30,9); 210 211 display.println("Left"); 212 motor1.run(FORWARD); 213 motor.run(FORWARD); 214 motor1.setSpeed(0); 215 motor.setSpeed(255); 216 217 display.display(); 218 219 state = 0; 220 221 222 } 223 if (state == 'B') { 224 display.clearDisplay(); 225 display.setTextSize(2); 226 display.setTextColor(WHITE); 227 display.setCursor(18,9); 228 229 display.println("Backward"); 230 motor1.run(BACKWARD); 231 motor.run(BACKWARD); 232 motor1.setSpeed(255); 233 motor.setSpeed(255); 234 235 display.display(); 236 237 state = 0; 238 239 240 } 241 if (state == 'W') { 242 ollow(); 243 244 state = 0; 245 //////////////////////////////////////////////////////////////////////////// 246 } 247 if (state == 'a') { 248 Wether(); 249 250 state = 0; 251 252 253 254 255 } 256} 257 void ollow() {leftValue = analogRead (leftInput); 258 rightValue= analogRead (rightInput); 259 if 260 ( leftValue < 100 && rightValue <100) 261 { 262 motor1.run(FORWARD); 263 motor.run(FORWARD); 264 motor1.setSpeed(200); 265 motor.setSpeed(200); 266 267 } 268 else 269 { 270 271 if 272 ( leftValue > 100 && rightValue < 100) 273 { 274 motor1.run(FORWARD); 275 motor.run(FORWARD); 276 motor1.setSpeed(0); 277 motor.setSpeed(200); 278 279 } 280 else { 281 if (leftValue < 100 && rightValue > 100) 282 { 283 motor1.run(FORWARD); 284 motor.run(FORWARD); 285 motor1.setSpeed(200); 286 motor.setSpeed(0); 287 } 288 else 289 { 290 if (leftValue > 100 && rightValue > 100) 291 {motor1.run(FORWARD); 292 motor.run(FORWARD); 293 motor1.setSpeed(0); 294 motor.setSpeed(0); 295 }} 296 } 297 } 298 } 299 300 void Wether() { int val = N.read11(2); 301 display.clearDisplay(); 302 display.setTextColor(WHITE); 303 display.setTextSize(2); 304 display.setCursor(0, 0); 305 display.print("Temp:"); 306 display.println(N.temperature); 307 308 309 display.setTextSize(1); 310 display.setTextColor(WHITE); 311 display.setCursor(30, 20); 312 display.print("Humi:"); 313 display.println(N.humidity); 314 display.display(); 315 delay(2000); 316 } 317
Final Robat CODE
arduino
1 2 3 4#include <RedBot.h> 5#include <AFMotor.h> 6#include <Wire.h> 7#include <Adafruit_GFX.h> 8#include <Adafruit_SSD1306.h> 9#include<dht.h> 10dht N; 11#define OLED_RESET 4 12Adafruit_SSD1306 display(OLED_RESET); 13 14#define NUMFLAKES 10 15#define XPOS 0 16#define YPOS 1 17#define DELTAY 2 18 19#define LOGO16_GLCD_HEIGHT 16 20#define LOGO16_GLCD_WIDTH 16 21 22AF_DCMotor motor(4); 23AF_DCMotor motor1(3); 24int leftInput=A1; 25int rightInput=A0; 26 27int leftValue = 0; 28int rightValue = 0; 29char val; 30/////////////////////////////////////////////////////////////// 31int trigPin = 10; //Trig - green Jumper 32int echoPin = 9; //Echo - yellow Jumper 33long duration, cm, inches; 34//////////////////////////////////////////////////////////////// 35 36int state = 0; 37//////////////////////////////////// 38 39 40void setup() { 41display.begin(SSD1306_SWITCHCAPVCC, 0x3C); 42 motor1.run(RELEASE); 43 motor.run(RELEASE); 44 45 pinMode(trigPin, OUTPUT); 46 pinMode(echoPin, INPUT); 47 digitalWrite(trigPin, LOW); 48 delayMicroseconds(5); 49 50 display.clearDisplay(); 51 52 display.setTextSize(2); 53 display.setTextColor(WHITE); 54 display.setCursor(36,8); 55 for (int16_t i=0; i<display.height()/2; i+=2) { 56 display.drawRect(i, i, display.width()-2*i, display.height()-2*i, WHITE); 57 display.display(); 58 delay(30); 59 } 60 61display.setTextSize(2); 62 display.setTextColor(WHITE); 63 display.setCursor(35,9); 64 display.clearDisplay(); 65 display.println("Hello"); 66 display.display(); 67 68 display.setTextSize(1); 69 display.setTextColor(WHITE); 70 display.setCursor(0,0); 71 72 display.println("IOT Arduoino Mono car"); 73 display.display(); 74 display.setTextSize(1); 75 display.setTextColor(WHITE); 76 display.setCursor(5,25); 77 78 display.println("Powerd 2018 Arduoino"); 79 display.display(); 80 delay(2000); 81 display.setCursor(0,0); 82 display.setTextSize(1); 83 display.setTextColor(WHITE); 84 display.clearDisplay(); 85 display.println("This IOT Car Feature"); 86 display.display(); 87 88 display.setTextSize(1); 89 display.setTextColor(WHITE); 90 display.setCursor(7,8); 91 92 display.println("1.Bluetooth control"); 93 display.display(); 94 display.setCursor(7,17); 95 display.println("2.Wether Sosility"); 96 display.display(); 97 display.setCursor(7,25); 98 display.println("3.Line Follower"); 99 display.display(); 100 delay(1000); 101 102 Serial.begin(38400); // Default communication rate of the Bluetooth module 103} 104void loop() { 105 106 107 digitalWrite(trigPin, HIGH); 108 delayMicroseconds(10); 109 digitalWrite(trigPin, LOW); 110 duration = pulseIn(echoPin, HIGH); 111 112 cm = (duration / 2) / 29.1; 113 114 if (cm < 30) { 115 display.clearDisplay(); 116 display.setCursor(18,0); 117 display.setTextSize(1); 118 display.setTextColor(WHITE); 119 120 display.println("Ultrasonic HUB"); 121 122 display.setTextSize(2); 123 display.setTextColor(WHITE); 124 display.setCursor(10,9); 125 126 display.println("Area Warn"); 127 display.setTextSize(1); 128 display.setTextColor(WHITE); 129 display.setCursor(55,25); 130 131 display.println(cm); 132 display.setCursor(70,25); 133 display.println("Cm"); 134 135 136 137 display.display(); 138 139 motor1.run(FORWARD); 140 motor.run(FORWARD); 141 motor1.setSpeed(0); 142 motor.setSpeed(0); 143 } 144 145 146 147 148 149//////////////////////////////////////////////////////////////////// 150 if (Serial.available() > 0) { // Checks whether data is comming from the serial port 151 state = Serial.read(); // Reads the data from the serial port 152 } 153 154 155 //Engien by////////////////////////////////////////////////////////////////////////////// 156 if (state == 'F') { 157 display.clearDisplay(); 158 display.setTextSize(2); 159 display.setTextColor(WHITE); 160 display.setCursor(20,9); 161 162 display.println("Foward"); 163 motor1.run(FORWARD); 164 motor.run(FORWARD); 165 motor1.setSpeed(255); 166 motor.setSpeed(255); 167 168 display.display(); 169 state = 0; 170 } 171 if (state == 'S') { 172 display.clearDisplay(); 173 display.setTextSize(2); 174 display.setTextColor(WHITE); 175 display.setCursor(30,9); 176 177 display.println("STOP"); 178 motor1.run(FORWARD); 179 motor.run(FORWARD); 180 motor1.setSpeed(0); 181 motor.setSpeed(0); 182 183 display.display(); 184 state = 0; 185 } 186 if (state == 'R') { 187 display.clearDisplay(); 188 display.setTextSize(2); 189 display.setTextColor(WHITE); 190 display.setCursor(30,9); 191 192 display.println("Right"); 193 motor1.run(FORWARD); 194 motor.run(FORWARD); 195 motor1.setSpeed(255); 196 motor.setSpeed(0); 197 198 display.display(); 199 200 state = 0; 201 202 203 } 204 205 if (state == 'L') { 206 display.clearDisplay(); 207 display.setTextSize(2); 208 display.setTextColor(WHITE); 209 display.setCursor(30,9); 210 211 display.println("Left"); 212 motor1.run(FORWARD); 213 motor.run(FORWARD); 214 motor1.setSpeed(0); 215 motor.setSpeed(255); 216 217 display.display(); 218 219 state = 0; 220 221 222 } 223 if (state == 'B') { 224 display.clearDisplay(); 225 display.setTextSize(2); 226 display.setTextColor(WHITE); 227 display.setCursor(18,9); 228 229 display.println("Backward"); 230 motor1.run(BACKWARD); 231 motor.run(BACKWARD); 232 motor1.setSpeed(255); 233 motor.setSpeed(255); 234 235 display.display(); 236 237 state = 0; 238 239 240 } 241 if (state == 'W') { 242 ollow(); 243 244 state = 0; 245 //////////////////////////////////////////////////////////////////////////// 246 } 247 if (state == 'a') { 248 Wether(); 249 250 state = 0; 251 252 253 254 255 } 256} 257 void ollow() {leftValue = analogRead (leftInput); 258 rightValue= analogRead (rightInput); 259 if 260 ( leftValue < 100 && rightValue <100) 261 { 262 motor1.run(FORWARD); 263 motor.run(FORWARD); 264 motor1.setSpeed(200); 265 motor.setSpeed(200); 266 267 } 268 else 269 { 270 271 if 272 ( leftValue > 100 && rightValue < 100) 273 { 274 motor1.run(FORWARD); 275 motor.run(FORWARD); 276 motor1.setSpeed(0); 277 motor.setSpeed(200); 278 279 } 280 else { 281 if (leftValue < 100 && rightValue > 100) 282 { 283 motor1.run(FORWARD); 284 motor.run(FORWARD); 285 motor1.setSpeed(200); 286 motor.setSpeed(0); 287 } 288 else 289 { 290 if (leftValue > 100 && rightValue > 100) 291 {motor1.run(FORWARD); 292 motor.run(FORWARD); 293 motor1.setSpeed(0); 294 motor.setSpeed(0); 295 }} 296 } 297 } 298 } 299 300 void Wether() { int val = N.read11(2); 301 display.clearDisplay(); 302 display.setTextColor(WHITE); 303 display.setTextSize(2); 304 display.setCursor(0, 0); 305 display.print("Temp:"); 306 display.println(N.temperature); 307 308 309 display.setTextSize(1); 310 display.setTextColor(WHITE); 311 display.setCursor(30, 20); 312 display.print("Humi:"); 313 display.println(N.humidity); 314 display.display(); 315 delay(2000); 316 } 317
Downloadable files
(only )Bluetooth car Diagram
(only )Bluetooth car Diagram

Line follower diagram
Line follower diagram

Oled diagram
Oled diagram

Line follower diagram
Line follower diagram

Oled diagram
Oled diagram

(only )Bluetooth car Diagram
(only )Bluetooth car Diagram

Car control PC softwer proccecing ide CODE
This code run Proccesin IDE and com port MADE
Car control PC softwer proccecing ide CODE
Comments
Only logged in users can leave comments