Components and supplies
Male/Female Jumper Wires
Arduino Oplà IoT Kit
GPS Module (Generic)
Ultrasonic Sensor - HC-SR04 (Generic)
Tools and machines
Soldering iron (generic)
Tape, Electrical
Apps and platforms
Arduino IoT Cloud
Arduino Web Editor
Project description
Code
Code
arduino
1#include <ArduinoIoTCloud.h> 2#include <Arduino_ConnectionHandler.h> 3#include <Arduino_MKRIoTCarrier.h> 4#include <TinyGPSPlus.h> 5MKRIoTCarrier carrier; 6TinyGPSPlus gps; 7#define echoPin 4 8#define trigPin 5 9 10long duration; 11bool sensor = false; 12 13const char SSID[] = SECRET_SSID; 14const char PASS[] = SECRET_PASS; 15 16void onPressureChange(); 17 18float humidity; 19float pressure; 20float temperature; 21int distance; 22int light; 23int speed; 24 25void initProperties(){ 26 27 ArduinoCloud.addProperty(humidity, READ, 1 * SECONDS, NULL); 28 ArduinoCloud.addProperty(pressure, READ, 1 * SECONDS, NULL); 29 ArduinoCloud.addProperty(temperature, READ, 1 * SECONDS, NULL); 30 ArduinoCloud.addProperty(distance, READ, ON_CHANGE, NULL); 31 ArduinoCloud.addProperty(light, READ, 1 * SECONDS, NULL); 32 ArduinoCloud.addProperty(speed, READ, 1 * SECONDS, NULL); 33 34} 35 36WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, PASS); 37 38 39void setup() { 40 Serial.begin(9600); 41 Serial1.begin(9600); 42 pinMode(trigPin, OUTPUT); 43 pinMode(echoPin, INPUT); 44 delay(500); 45 CARRIER_CASE = false; 46 carrier.begin(); 47 carrier.display.setRotation(0); 48 delay(1500); 49 50 51 initProperties(); 52 ArduinoCloud.addProperty(speed, READ, 1 * SECONDS, NULL); 53 ArduinoCloud.begin(ArduinoIoTPreferredConnection); 54 55 56 setDebugMessageLevel(4); 57 ArduinoCloud.printDebugInfo(); 58} 59 60void loop() { 61 ArduinoCloud.update(); 62 carrier.Buttons.update(); 63 64 digitalWrite(trigPin, LOW); 65 delayMicroseconds(2); 66 digitalWrite(trigPin, HIGH); 67 delayMicroseconds(10); 68 digitalWrite(trigPin, LOW); 69 duration = pulseIn(echoPin, HIGH); 70 distance = duration * 0.034 / 2; 71 Serial.print(distance); 72 Serial.println(gps.speed.kmph()); 73 74 75 76 temperature = carrier.Env.readTemperature(); 77 humidity = carrier.Env.readHumidity(); 78 pressure = carrier.Pressure.readPressure(); 79 80 if (carrier.Buttons.onTouchDown(TOUCH0)) { 81 carrier.display.fillScreen(ST77XX_BLACK); 82 carrier.display.setTextColor(ST77XX_WHITE); 83 carrier.display.setTextSize(2); 84 85 carrier.display.setCursor(35, 90); 86 carrier.display.print("TEMP: "); 87 carrier.display.print(temperature); 88 carrier.display.print(" C"); 89 90 carrier.display.setCursor(35, 110); 91 carrier.display.print("HUMI: "); 92 carrier.display.print(humidity); 93 carrier.display.print(" %"); 94 95 carrier.display.setCursor(35, 130); 96 carrier.display.print("PRESSURE: "); 97 carrier.display.print(pressure); 98 delay(10); 99 } 100 101 while (distance < 600) { 102 digitalWrite(trigPin, LOW); 103 delayMicroseconds(2); 104 digitalWrite(trigPin, HIGH); 105 delayMicroseconds(10); 106 digitalWrite(trigPin, LOW); 107 duration = pulseIn(echoPin, HIGH); 108 distance = duration * 0.034 / 2; 109 Serial.print(distance); 110 carrier.display.fillScreen(ST77XX_BLACK); 111 carrier.display.setTextColor(ST77XX_WHITE); 112 carrier.display.setTextSize(4); 113 carrier.display.setCursor(80, 100); 114 carrier.display.print("D:"); 115 carrier.display.print(distance); 116 } 117 118 119 if (carrier.Buttons.onTouchDown(TOUCH1)) { 120 carrier.display.fillScreen(ST77XX_BLACK); 121 carrier.display.setTextColor(ST77XX_WHITE); 122 carrier.display.setTextSize(4); 123 carrier.display.setCursor(65, 100); 124 carrier.display.print("D:"); 125 carrier.display.print(distance); 126 delay(10); 127 128 129 } 130 131 if (carrier.Buttons.onTouchDown(TOUCH2)) { 132 carrier.display.fillScreen(ST77XX_BLACK); 133 carrier.display.setTextColor(ST77XX_WHITE); 134 carrier.display.setTextSize(3); 135 carrier.display.setCursor(50, 100); 136 carrier.display.print("Sp:"); 137 carrier.display.print(speed); 138 delay(10); 139 140 141 } 142 143} 144 145
Code
arduino
1#include <ArduinoIoTCloud.h> 2#include <Arduino_ConnectionHandler.h> 3#include 4 <Arduino_MKRIoTCarrier.h> 5#include <TinyGPSPlus.h> 6MKRIoTCarrier carrier; 7TinyGPSPlus 8 gps; 9#define echoPin 4 10#define trigPin 5 11 12long duration; 13bool sensor 14 = false; 15 16const char SSID[] = SECRET_SSID; 17const char PASS[] = 18 SECRET_PASS; 19 20void onPressureChange(); 21 22float humidity; 23float pressure; 24float 25 temperature; 26int distance; 27int light; 28int speed; 29 30void initProperties(){ 31 32 33 ArduinoCloud.addProperty(humidity, READ, 1 * SECONDS, NULL); 34 ArduinoCloud.addProperty(pressure, 35 READ, 1 * SECONDS, NULL); 36 ArduinoCloud.addProperty(temperature, READ, 1 * SECONDS, 37 NULL); 38 ArduinoCloud.addProperty(distance, READ, ON_CHANGE, NULL); 39 ArduinoCloud.addProperty(light, 40 READ, 1 * SECONDS, NULL); 41 ArduinoCloud.addProperty(speed, READ, 1 * SECONDS, 42 NULL); 43 44} 45 46WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, 47 PASS); 48 49 50void setup() { 51 Serial.begin(9600); 52 Serial1.begin(9600); 53 54 pinMode(trigPin, OUTPUT); 55 pinMode(echoPin, INPUT); 56 delay(500); 57 58 CARRIER_CASE = false; 59 carrier.begin(); 60 carrier.display.setRotation(0); 61 62 delay(1500); 63 64 65 initProperties(); 66 ArduinoCloud.addProperty(speed, 67 READ, 1 * SECONDS, NULL); 68 ArduinoCloud.begin(ArduinoIoTPreferredConnection); 69 70 71 72 setDebugMessageLevel(4); 73 ArduinoCloud.printDebugInfo(); 74} 75 76void 77 loop() { 78 ArduinoCloud.update(); 79 carrier.Buttons.update(); 80 81 digitalWrite(trigPin, 82 LOW); 83 delayMicroseconds(2); 84 digitalWrite(trigPin, HIGH); 85 delayMicroseconds(10); 86 87 digitalWrite(trigPin, LOW); 88 duration = pulseIn(echoPin, HIGH); 89 distance 90 = duration * 0.034 / 2; 91 Serial.print(distance); 92 Serial.println(gps.speed.kmph()); 93 94 95 96 97 temperature = carrier.Env.readTemperature(); 98 humidity = carrier.Env.readHumidity(); 99 100 pressure = carrier.Pressure.readPressure(); 101 102 if (carrier.Buttons.onTouchDown(TOUCH0)) 103 { 104 carrier.display.fillScreen(ST77XX_BLACK); 105 carrier.display.setTextColor(ST77XX_WHITE); 106 107 carrier.display.setTextSize(2); 108 109 carrier.display.setCursor(35, 90); 110 111 carrier.display.print("TEMP: "); 112 carrier.display.print(temperature); 113 114 carrier.display.print(" C"); 115 116 carrier.display.setCursor(35, 117 110); 118 carrier.display.print("HUMI: "); 119 carrier.display.print(humidity); 120 121 carrier.display.print(" %"); 122 123 carrier.display.setCursor(35, 124 130); 125 carrier.display.print("PRESSURE: "); 126 carrier.display.print(pressure); 127 128 delay(10); 129 } 130 131 while (distance < 600) { 132 digitalWrite(trigPin, 133 LOW); 134 delayMicroseconds(2); 135 digitalWrite(trigPin, HIGH); 136 delayMicroseconds(10); 137 138 digitalWrite(trigPin, LOW); 139 duration = pulseIn(echoPin, HIGH); 140 distance 141 = duration * 0.034 / 2; 142 Serial.print(distance); 143 carrier.display.fillScreen(ST77XX_BLACK); 144 145 carrier.display.setTextColor(ST77XX_WHITE); 146 carrier.display.setTextSize(4); 147 148 carrier.display.setCursor(80, 100); 149 carrier.display.print("D:"); 150 151 carrier.display.print(distance); 152 } 153 154 155 if (carrier.Buttons.onTouchDown(TOUCH1)) 156 { 157 carrier.display.fillScreen(ST77XX_BLACK); 158 carrier.display.setTextColor(ST77XX_WHITE); 159 160 carrier.display.setTextSize(4); 161 carrier.display.setCursor(65, 100); 162 163 carrier.display.print("D:"); 164 carrier.display.print(distance); 165 delay(10); 166 167 168 169 } 170 171 if (carrier.Buttons.onTouchDown(TOUCH2)) { 172 carrier.display.fillScreen(ST77XX_BLACK); 173 174 carrier.display.setTextColor(ST77XX_WHITE); 175 carrier.display.setTextSize(3); 176 177 carrier.display.setCursor(50, 100); 178 carrier.display.print("Sp:"); 179 180 carrier.display.print(speed); 181 delay(10); 182 183 184 } 185 186} 187 188
Downloadable files
Schematic
Schematic
Comments
Only logged in users can leave comments