Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
/********* Pleasedontcode.com ********** Pleasedontcode thanks you for automatic code generation! Enjoy your code! - Terms and Conditions: You have a non-exclusive, revocable, worldwide, royalty-free license for personal and commercial use. Attribution is optional; modifications are allowed, but you're responsible for code maintenance. We're not liable for any loss or damage. For full terms, please visit pleasedontcode.com/termsandconditions. - Project: TrafficLights - Source Code compiled for: ESP32 DevKit V1 - Source Code created on: 2024-02-26 10:45:15 - Source Code generated by: Mercy ********* Pleasedontcode.com **********/ /****** SYSTEM REQUIREMENTS *****/ /****** SYSTEM REQUIREMENT 1 *****/ /* Ultrasonic sensor measures distance. If distance */ /* is less than 30 cm run the high density function, */ /* if distance is less than 30 cm run the low density */ /* function */ /****** SYSTEM REQUIREMENT 2 *****/ /* High-density function - turn on green1, and red2, */ /* the rest stay off. Do this for 20 seconds. Then */ /* turn off everything and turn on yellow1 and */ /* yellow2 for 5 seconds. then turn off everything. */ /* Afterwads turn on red 1 and green 1 for 20 sec and */ /* turn of */ /****** SYSTEM REQUIREMENT 3 *****/ /* Low-density function - turn on green1, and red2, */ /* the rest stay off. Do this for 10 seconds. Then */ /* turn off everything and turn on yellow1 and */ /* yellow2 for 5 seconds. then turn off everything. */ /* Afterwads turn on red 1 and green 1 for 10 sec and */ /* turn of */ /****** SYSTEM REQUIREMENT 4 *****/ /* High density -The seven segment should count down */ /* from 9 to 0 with a delay of 2 seconds */ /****** SYSTEM REQUIREMENT 5 *****/ /* High density -The seven segment should count down */ /* from 9 to 0 with a delay of 1 seconds */ /****** END SYSTEM REQUIREMENTS *****/ #include
#include
#include "AdafruitIO_WiFi.h" #include
#include
#define SEVEN_SEG_A 22 #define SEVEN_SEG_B 23 #define SEVEN_SEG_C 32 #define SEVEN_SEG_D 25 #define SEVEN_SEG_E 26 #define SEVEN_SEG_F 27 #define SEVEN_SEG_G 33 #define GREEN_1 4 #define GREEN_2 16 #define RED_1 17 #define RED_2 5 #define YELLOW_1 18 #define YELLOW_2 19 #define PUSH_BUTTON 15 #define TRIGGER_PIN 12 #define ECHO_PIN 14 #define WIFI_SSID "Sheila" #define WIFI_PASS "123456789" #define MQTT_SERVER "io.adafruit.com" #define MQTT_PORT 1883 #define MQTT_USERNAME "shei2000" #define MQTT_KEY "xxx" #define ADAFRUIT_IO_USERNAME "shei2000" #define ADAFRUIT_IO_KEY "xxx" WiFiClient espClient; Adafruit_MQTT_Client mqtt(&espClient, MQTT_SERVER, MQTT_PORT, MQTT_USERNAME, MQTT_KEY); Adafruit_MQTT_Publish green1_feed = Adafruit_MQTT_Publish(&mqtt, MQTT_USERNAME "/feeds/green1"); Adafruit_MQTT_Publish green2_feed = Adafruit_MQTT_Publish(&mqtt, MQTT_USERNAME "/feeds/green2"); Adafruit_MQTT_Publish red1_feed = Adafruit_MQTT_Publish(&mqtt, MQTT_USERNAME "/feeds/red1"); Adafruit_MQTT_Publish red2_feed = Adafruit_MQTT_Publish(&mqtt, MQTT_USERNAME "/feeds/red2"); Adafruit_MQTT_Publish yellow1_feed = Adafruit_MQTT_Publish(&mqtt, MQTT_USERNAME "/feeds/yellow1"); Adafruit_MQTT_Publish yellow2_feed = Adafruit_MQTT_Publish(&mqtt, MQTT_USERNAME "/feeds/yellow2"); Adafruit_MQTT_Publish pushbutton_feed = Adafruit_MQTT_Publish(&mqtt, MQTT_USERNAME "/feeds/pushbutton"); Adafruit_MQTT_Publish ultrasonic_feed = Adafruit_MQTT_Publish(&mqtt, MQTT_USERNAME "/feeds/ultrasonic"); AdafruitIO_WiFi io(ADAFRUIT_IO_USERNAME, ADAFRUIT_IO_KEY, WIFI_SSID, WIFI_PASS); int distance = 0; int countdown = 0; bool push_button_state = false; bool push_button_pressed = false; void setup() { Serial.begin(115200); delay(10); pinMode(SEVEN_SEG_A, OUTPUT); pinMode(SEVEN_SEG_B, OUTPUT); pinMode(SEVEN_SEG_C, OUTPUT); pinMode(SEVEN_SEG_D, OUTPUT); pinMode(SEVEN_SEG_E, OUTPUT); pinMode(SEVEN_SEG_F, OUTPUT); pinMode(SEVEN_SEG_G, OUTPUT); pinMode(GREEN_1, OUTPUT); pinMode(GREEN_2, OUTPUT); pinMode(RED_1, OUTPUT); pinMode(RED_2, OUTPUT); pinMode(YELLOW_1, OUTPUT); pinMode(YELLOW_2, OUTPUT); pinMode(PUSH_BUTTON, INPUT_PULLUP); pinMode(TRIGGER_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); // connectToWiFi(); Serial.println("Connecting to Wi-Fi"); io.connect(); while(io.status() < AIO_CONNECTED) { delay(500); Serial.print("."); } Serial.println(); Serial.println("Connected to Adafruit IO"); } void loop() { // Read ultrasonic sensor distance = getUltrasonicDistance(); //ultrasonic_feed.publish(distance); // Send data to Adafruit IO AdafruitIO_Feed *ultrasonicFeed = io.feed("distance"); ultrasonicFeed->save(distance); // Check push button state if (digitalRead(PUSH_BUTTON) == LOW && !push_button_pressed) { push_button_state = !push_button_state; pushbutton_feed.publish(push_button_state ? "ON" : "OFF"); push_button_pressed = true; countdown = 10; displayCountdown(); } else if (digitalRead(PUSH_BUTTON) == HIGH) { push_button_pressed = false; } if (push_button_state) { if (countdown > 0) { countdown--; displayCountdown(); } else { push_button_state = false; pushbutton_feed.publish("OFF"); // Resume based on ultrasonic readings resumeTrafficLights(); } } else { // Control traffic lights based on ultrasonic readings controlTrafficLights(); } } void controlTrafficLights() { if (distance >= 30) { // Turn on green1 and red2 digitalWrite(GREEN_1, HIGH); digitalWrite(RED_2, HIGH); delay(6000); // 6 seconds AdafruitIO_Feed *green1Feed = io.feed("ON"); AdafruitIO_Feed *humidityFeed = io.feed("humidity"); temperatureFeed->save(temperature); humidityFeed->save(humidity); } else { // Turn on green1 and red2 digitalWrite(GREEN_1, HIGH); digitalWrite(RED_2, HIGH); delay(10000); // 10 seconds } digitalWrite(GREEN_1, LOW); digitalWrite(RED_2, LOW); // Turn on yellow1 and yellow2 digitalWrite(YELLOW_1, HIGH); digitalWrite(YELLOW_2, HIGH); delay(3000); // 3 seconds digitalWrite(YELLOW_1, LOW); digitalWrite(YELLOW_2, LOW); // Turn on red1 and green2 if (distance >= 30) { // Turn on red1 and green2 digitalWrite(RED_1, HIGH); digitalWrite(GREEN_2, HIGH); delay(6000); // 6 seconds } else { // Turn on red1 and green2 digitalWrite(RED_1, HIGH); digitalWrite(GREEN_2, HIGH); delay(10000); // 10 seconds } digitalWrite(RED_1, LOW); digitalWrite(GREEN_2, LOW); } void resumeTrafficLights() { if (distance >= 30) { digitalWrite(GREEN_1, HIGH); digitalWrite(RED_2, HIGH); } else { digitalWrite(GREEN_1, HIGH); digitalWrite(RED_2, HIGH); } } int getUltrasonicDistance() { digitalWrite(TRIGGER_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIGGER_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIGGER_PIN, LOW); long duration = pulseIn(ECHO_PIN, HIGH); int distance_cm = duration * 0.034 / 2; serial.print(distance_cm) return distance_cm; } void displayCountdown() { digitalWrite(SEVEN_SEG_A, LOW); digitalWrite(SEVEN_SEG_B, LOW); digitalWrite(SEVEN_SEG_C, LOW); digitalWrite(SEVEN_SEG_D, LOW); digitalWrite(SEVEN_SEG_E, LOW); digitalWrite(SEVEN_SEG_F, LOW); digitalWrite(SEVEN_SEG_G, LOW); switch(countdown) { case 0: digitalWrite(SEVEN_SEG_A, HIGH); digitalWrite(SEVEN_SEG_B, HIGH); digitalWrite(SEVEN_SEG_C, HIGH); digitalWrite(SEVEN_SEG_D, HIGH); digitalWrite(SEVEN_SEG_E, HIGH); digitalWrite(SEVEN_SEG_F, HIGH); break; case 1: digitalWrite(SEVEN_SEG_B, HIGH); digitalWrite(SEVEN_SEG_C, HIGH); break; case 2: digitalWrite(SEVEN_SEG_A, HIGH); digitalWrite(SEVEN_SEG_B, HIGH); digitalWrite(SEVEN_SEG_D, HIGH); digitalWrite(SEVEN_SEG_E, HIGH); digitalWrite(SEVEN_SEG_G, HIGH); break; case 3: digitalWrite(SEVEN_SEG_A, HIGH); digitalWrite(SEVEN_SEG_B, HIGH); digitalWrite(SEVEN_SEG_C, HIGH); digitalWrite(SEVEN_SEG_D, HIGH); digitalWrite(SEVEN_SEG_G, HIGH); break; case 4: digitalWrite(SEVEN_SEG_B, HIGH); digitalWrite(SEVEN_SEG_C, HIGH); digitalWrite(SEVEN_SEG_F, HIGH); digitalWrite(SEVEN_SEG_G, HIGH); break; case 5: digitalWrite(SEVEN_SEG_A, HIGH); digitalWrite(SEVEN_SEG_C, HIGH); digitalWrite(SEVEN_SEG_D, HIGH); digitalWrite(SEVEN_SEG_F, HIGH); digitalWrite(SEVEN_SEG_G, HIGH); break; case 6: digitalWrite(SEVEN_SEG_A, HIGH); digitalWrite(SEVEN_SEG_C, HIGH); digitalWrite(SEVEN_SEG_D, HIGH); digitalWrite(SEVEN_SEG_E, HIGH); digitalWrite(SEVEN_SEG_F, HIGH); digitalWrite(SEVEN_SEG_G, HIGH); break; case 7: digitalWrite(SEVEN_SEG_A, HIGH); digitalWrite(SEVEN_SEG_B, HIGH); digitalWrite(SEVEN_SEG_C, HIGH); break; case 8: digitalWrite(SEVEN_SEG_A, HIGH); digitalWrite(SEVEN_SEG_B, HIGH); digitalWrite(SEVEN_SEG_C, HIGH); digitalWrite(SEVEN_SEG_D, HIGH); digitalWrite(SEVEN_SEG_E, HIGH); digitalWrite(SEVEN_SEG_F, HIGH); digitalWrite(SEVEN_SEG_G, HIGH); break; case 9: digitalWrite(SEVEN_SEG_A, HIGH); digitalWrite(SEVEN_SEG_B, HIGH); digitalWrite(SEVEN_SEG_C, HIGH); digitalWrite(SEVEN_SEG_D, HIGH); digitalWrite(SEVEN_SEG_F, HIGH); digitalWrite(SEVEN_SEG_G, HIGH); break; } } void connectToWiFi() { Serial.print("Connecting to Wi-Fi"); WiFi.begin(WIFI_SSID, WIFI_PASS); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("Connected!"); } void MQTT_connect() { int8_t ret; if (mqtt.connected()) { return; } Serial.print("Connecting to MQTT..."); while ((ret = mqtt.connect()) != 0) { Serial.println(mqtt.connectErrorString(ret)); Serial.println("Retrying MQTT connection in 5 seconds..."); mqtt.disconnect(); delay(5000); } Serial.println("MQTT Connected!"); }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)