This shows you the differences between two versions of the page.
pm:prj2024:mdinica:andrei.anghelescu [2024/05/17 01:58] andrei.anghelescu |
pm:prj2024:mdinica:andrei.anghelescu [2024/05/30 01:30] (current) andrei.anghelescu |
||
---|---|---|---|
Line 19: | Line 19: | ||
padding: 0; | padding: 0; | ||
} | } | ||
+ | .github-link { | ||
+ | display: flex; | ||
+ | align-items: center; | ||
+ | text-decoration: none; | ||
+ | color: #0366d6; | ||
+ | font-size: 1.2em; | ||
+ | border: 2px solid #0366d6; | ||
+ | padding: 10px 20px; | ||
+ | border-radius: 5px; | ||
+ | transition: background-color 0.3s, color 0.3s; | ||
+ | } | ||
+ | |||
+ | .github-link:hover { | ||
+ | background-color: #0366d6; | ||
+ | color: white; | ||
+ | } | ||
+ | |||
+ | .github-logo { | ||
+ | width: 32px; | ||
+ | height: 32px; | ||
+ | margin-right: 10px; | ||
+ | } | ||
h1, h2, h3 { | h1, h2, h3 { | ||
Line 138: | Line 160: | ||
.intro { | .intro { | ||
- | background: linear-gradient(to right, red, orange, yellow, green, blue, indigo, violet); | + | background: linear-gradient(270deg, red, orange, yellow, green, blue, indigo, violet); |
+ | background-size: 1400% 1400%; | ||
color: white; | color: white; | ||
padding: 2em; | padding: 2em; | ||
Line 144: | Line 167: | ||
margin-bottom: 2em; | margin-bottom: 2em; | ||
border-radius: 8px; | border-radius: 8px; | ||
- | animation: fadeIn 2s ease-in-out; | + | animation: gradientAnimation 10s ease infinite; |
+ | animation: fadeIn 2s ease-in-out, gradientAnimation 10s ease infinite; | ||
} | } | ||
- | .intro h1 { | + | .intro ceva { |
font-size: 2.5em; | font-size: 2.5em; | ||
margin-bottom: 0.5em; | margin-bottom: 0.5em; | ||
Line 160: | Line 184: | ||
from { opacity: 0; } | from { opacity: 0; } | ||
to { opacity: 1; } | to { opacity: 1; } | ||
+ | } | ||
+ | |||
+ | @keyframes gradientAnimation { | ||
+ | 0% { background-position: 0% 50%; } | ||
+ | 50% { background-position: 100% 50%; } | ||
+ | 100% { background-position: 0% 50%; } | ||
} | } | ||
Line 194: | Line 224: | ||
padding: 2em; | padding: 2em; | ||
} | } | ||
- | .intro h1 { | + | .intro ceva { |
font-size: 2em; | font-size: 2em; | ||
} | } | ||
Line 207: | Line 237: | ||
<div class="content"> | <div class="content"> | ||
<div class="intro"> | <div class="intro"> | ||
- | <h1>Swarm Adaptive Network</h1> | + | <ceva>Swarm Adaptive Network</ceva> |
<p>Autor: <strong>Andrei Anghelescu</strong></p> | <p>Autor: <strong>Andrei Anghelescu</strong></p> | ||
<p>Grupa: <strong>332CA</strong></p> | <p>Grupa: <strong>332CA</strong></p> | ||
Line 259: | Line 289: | ||
<h2 id="software-design">Software Design</h2> | <h2 id="software-design">Software Design</h2> | ||
- | <div class="note tip"> | + | <div class="section"> |
- | <p>Descrierea codului aplicației (firmware):</p> | + | <p><strong>Motivati alegerea bibliotecilor folosite in cadrul proiectului</strong> |
- | <ul> | + | * ESP8266HTTPClient - pentru a putea face request-uri HTTP catre serverul de baza |
- | <li>Mediu de dezvoltare (e.g. AVR Studio, CodeVisionAVR)</li> | + | * ESP8266WiFi - pentru a putea conecta placa la un router WiFi |
- | <li>Librării și surse 3rd-party (e.g. Procyon AVRlib)</li> | + | * ESP8266WebServer - pentru a putea crea un server, pentru setup-ul initial al placi |
- | <li>Algoritmi și structuri implementate</li> | + | * U8g2lib - pentru a putea controla display-ul OLED, mai eficienta decat libraria Adafruit din punct de vedere al gestionarii memoriei |
- | <li>(Etapa 3) Surse și funcții implementate</li> | + | * ESP8266mDNS si ArduinOTA - pentru a putea face update-uri Over The Air |
- | </ul> | + | * espnow - pentru a putea comunica intre placi fara a avea nevoie de un router WiFi |
+ | * ArduinoJson - pentru a putea manipula JSON-uri | ||
+ | |||
+ | </p> | ||
+ | <p><strong>Evidentiati elementul de noutate al proiectului</strong> | ||
+ | Comunicarea intre un Network de placi fara a avea nevoie de un router WiFi, folosind ESP-NOW. (Exemplu de utilizare: sistem de monitorizare a unui camp de panouri solare) | ||
+ | Esp-now are o distanta de acoperire de 3 ori mai mare ca WIFI-ul. | ||
+ | |||
+ | Utilizarea foarte simpla a unui sistem de 100 de dispozitive fara a fi nevoie de configurare manuala a fiecarei placi. | ||
+ | </p> | ||
+ | <p><strong>Justificati utilizarea functionalitatilor din laborator in cadrul proiectului.</strong> | ||
+ | Am folosit notiunile din laborator mai mult ca si o baza, proiectul fiind axact foart mult pe partea de sofware.</p> | ||
+ | <p><strong>Explicati scheletul proiectului, interactiunea dintre functionalitati si modul in care a fost validat ca acestea functioneaza conform</strong> | ||
+ | Scheletul implementeaza un cod universal care se afla pe fiecare placa, placile pot intra in mai multe moduri pentru a asigurare o extindere si o asigurare a transmiterii informatiei.</p> | ||
+ | <p><strong>Explicati cum, de ce si unde ati realizat optimizari</strong> | ||
+ | Am realizat optimizari in ceea ce priveste consumul de energie, am folosit ESP-NOW pentru a comunica intre placi, fara a avea nevoie de un router WiFi, astfel consumul de energie este mult mai mic. | ||
+ | Am incercat ca nodurile finale sa intre in sleep mode cat mai des posibil, pentru a economisi cat mai multa energie. | ||
+ | </p> | ||
</div> | </div> | ||
+ | | ||
+ | <a href="https://github.com/GemDeKaise/Swarm-Adaptive-Network" class="github-link"> | ||
+ | <img src="https://imgur.com/D87ugoP.png" alt="GitHub Logo" class="github-logo"> | ||
+ | GitHub cu codul sursa | ||
+ | </a> | ||
+ | | ||
+ | <p><img class="custom-img" src="https://i.imgur.com/WsTXQMV.png" alt="Schematicul"></p> | ||
+ | | ||
+ | <p><img class="custom-img" src="https://i.imgur.com/8mVh6K6.png" alt="Schematicul"></p> | ||
+ | | ||
+ | <a href="https://youtu.be/Hn-F_uv3Nug" class="github-link"> | ||
+ | <img src="https://imgur.com/QGi9FAo.png" alt="GitHubasLogo" class="github-logo"> | ||
+ | DEMO! | ||
+ | </a> | ||
+ | | ||
<h2 id="rezultate-obtinute">Rezultate Obținute</h2> | <h2 id="rezultate-obtinute">Rezultate Obținute</h2> |