Differences

This shows you the differences between two versions of the page.

Link to this comparison view

iothings:proiecte:2023sric:smartled [2024/05/30 01:14]
dragos.petre [Software Architecture]
iothings:proiecte:2023sric:smartled [2024/05/30 01:56] (current)
dragos.petre [Software]
Line 3: Line 3:
   * Email: <​dragso.petre@stud.acs.pub.ro>​   * Email: <​dragso.petre@stud.acs.pub.ro>​
   * Master: SCPD   * Master: SCPD
 +  * Video link: [[https://​youtu.be/​PxzQ7asWBro]]
 +  * Source Code: {{:​iothings:​proiecte:​2023sric:​petredragos_sourcecode.zip|}}
  
 ===== Overview ===== ===== Overview =====
Line 23: Line 25:
   * **Arduino IDE** for code development and Serial Monitor   * **Arduino IDE** for code development and Serial Monitor
   * **BLE Scanner Android App** for connecting my phone to the ESP32 board via BLE   * **BLE Scanner Android App** for connecting my phone to the ESP32 board via BLE
 +
 +=== Libraries needed ===
 +  * Adafruit_BusIO
 +  * Adafruit_GFX_Library
 +  * Adafruit_NeoPixel
 +  * Adafruit_SSD1306
 +  * ArduinoBLE
  
 ===== Architecture ===== ===== Architecture =====
Line 275: Line 284:
   }   }
   strip.show();​   strip.show();​
 +}
 +</​code>​
 +
 +=== Display setup and printing ===
 +<code cpp>
 +// OLED display settings
 +#define SCREEN_WIDTH 128
 +#define SCREEN_HEIGHT 32
 +#define OLED_RESET -1
 +Adafruit_SSD1306 display(SCREEN_WIDTH,​ SCREEN_HEIGHT,​ &Wire, OLED_RESET);​
 +
 +void setup() {
 +  // Initialize the OLED display
 +  // Address 0x3C for 128x32 OLED display
 +  if(!display.begin(SSD1306_SWITCHCAPVCC,​ 0x3C)) {
 +    Serial.println(F("​SSD1306 allocation failed"​));​
 +    for(;;);
 +  }
 +  display.display();​
 +  delay(2000);​ // Pause for 2 seconds
 +  display.clearDisplay();​
 +}
 +
 +void loop() {
 +  // Update the display with the current status
 +  updateDisplay();​
 +}
 +
 +// Update the OLED display with the current status
 +void updateDisplay() {
 +  display.clearDisplay();​
 +  display.setTextSize(1);​
 +  display.setTextColor(SSD1306_WHITE);​
 +
 +  // Show if any device is connected
 +  display.setCursor(0,​ 0);
 +  display.print("​Device:​ ");
 +  display.print(deviceConnected ? "​Connected"​ : "​Disconnected"​);​
 +
 +  // Show if the lights are on or off
 +  display.setCursor(0,​ 10);
 +  display.print("​Lights:​ ");
 +  display.print(lightsOn ? "​On"​ : "​Off"​);​
 +
 +  // Show the current lighting mode
 +  display.setCursor(0,​ 20);
 +  display.print("​Mode:​ ");
 +  display.print(mode.c_str());​
 +
 +  display.display();​
 } }
 </​code>​ </​code>​
Line 303: Line 362:
 First of all, buy a better development board, one that has at leas a LTR308 module on it. First of all, buy a better development board, one that has at leas a LTR308 module on it.
 After that, I will implement the automatic light detection function and have the lights start automatically when it becomes dark in the room. After that, I will implement the automatic light detection function and have the lights start automatically when it becomes dark in the room.
 +I also have to actually fix the connection that I screwed up and had to glue together.
 +Lastly, I have to find a way to mount this thing.
  
 ===== Resources ===== ===== Resources =====
 +  * IoT Laboratories 
 +  * Lots of sites, especially StackOverflow (for debugging ;-))
iothings/proiecte/2023sric/smartled.1717020890.txt.gz · Last modified: 2024/05/30 01:14 by dragos.petre
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0