Differences

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

Link to this comparison view

pm:prj2023:amocanu:lampa-interactiva [2023/05/29 21:33]
vladislav.tiftilov [Rezultate Obţinute]
pm:prj2023:amocanu:lampa-interactiva [2023/05/29 21:55] (current)
vladislav.tiftilov [Concluzii]
Line 46: Line 46:
 ===== Software Design ===== ===== Software Design =====
  
 +Mediu de dezvoltare: Arduino IDE + VSCode
 +Librarii: ESP8266WiFi,​ PubSubClient,​ FastLED, LiquidCrystal_I2C,​ Wire
  
-<note tip> +Structuri folosit:
-Descrierea codului aplicaţiei (firmware): +
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) +
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate +
-</​note>​+
  
-===== Rezultate Obţinute =====+<code c++> 
 +// enum pentru modurile de efecte 
 +enum EffectMode { GREEN_STATIC,​ RED_STATIC, BLUE_STATIC,​ RAINBOW };
  
-<note tip+// structura pentru efectul de picaturi de ploaie 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+struct Raindrop { 
-</note>+  int position; 
 +  int intensity;​ 
 +}; 
 + 
 + 
 +// coada de mesaje 
 +String messageQueue[MAX_QUEUE_SIZE];​ 
 + 
 +void enqueueMessage(String message) { 
 +  ... 
 +
 + 
 +String dequeueMessage() { 
 +  ... 
 +
 + 
 +</code
 + 
 +Metode folosite: 
 +<code c++> 
 +// implementarea efectelor 
 +void normalModeEffects() { 
 +  FastLED.clear(); 
 + 
 +  if (currentEffectMode == GREEN_STATIC) { 
 +    fill_solid(leds,​ NUM_LEDS, CRGB(0, 255, 0)); // Green 
 +  } 
 + 
 +  if (currentEffectMode == RED_STATIC) { 
 +    fill_solid(leds,​ NUM_LEDS, CRGB(255, 0, 0)); // Red 
 +  } 
 + 
 +  if (currentEffectMode == BLUE_STATIC) { 
 +    fill_solid(leds,​ NUM_LEDS, CRGB(0, 0, 255)); // Blue 
 +  } 
 + 
 +  if (currentEffectMode == RAINBOW) { 
 +    static uint8_t hue = 0; 
 +    fill_rainbow(leds,​ NUM_LEDS, hue, 255 / NUM_LEDS);​ 
 +    hue+=3; 
 +  } 
 + 
 +  FastLED.show();​ 
 +
 + 
 + 
 +// bucla principala 
 +void loop() { 
 +  displayNextMessage();​ 
 + 
 +  if (isRaining()) { 
 +    rainEffect();​ 
 +  } else { 
 +    normalModeEffects();​ 
 +  } 
 + 
 +  if (!client.connected()) { 
 +    reconnect();​ 
 +  } 
 + 
 +  client.loop();​ 
 +
 + 
 +</code> 
 +===== Rezultate Obţinute =====
  
 {{:​pm:​prj2023:​amocanu:​lampa_poza_1.jpeg?​300|}} {{:​pm:​prj2023:​amocanu:​lampa_poza_1.jpeg?​300|}}
Line 68: Line 130:
 ===== Concluzii ===== ===== Concluzii =====
  
 +  - Pentru a alimenta banda LED si display-ul LCD am folosit iesirea de 5V de la un Arduino UNO.
 +  - Pentru server MQTT am folosit Mosquitto.
 +  - Pentru a trimite mesaje catre server am folosit un script bash care apeleaza comanda mosquitto_pub.
 +  - Placa NodeMCU cu ESP8266 se conecteaza la brokerul MQTT si asteapta mesaje.
 +  - In functie de mesajul primit lampa schimba culoarea LED-urilor.
 +  - Mesajele sunt afisate pe display-ul LCD folosind o coada de mesaje.
 ===== Download ===== ===== Download =====
  
-<note warning>​ +Codul sursa
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). +{{:pm:prj2023:amocanu:code.txt|}}
- +
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:​prj20??:​c?:​nume_student** (dacă este cazul)**Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +
-</​note>​+
  
 +Script pentru trimitere mesaje:
 +<code bash>
 +#!/bin/bash
 +mosquitto_pub -h 91.121.93.94 -p 1883 -t "​weather-project/​data"​ -m "​r"​
 +</​code>​
 ===== Jurnal ===== ===== Jurnal =====
  
pm/prj2023/amocanu/lampa-interactiva.1685385219.txt.gz · Last modified: 2023/05/29 21:33 by vladislav.tiftilov
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