This shows you the differences between two versions of the page.
pm:prj2024:mdinica:andrei.anghelescu [2024/05/17 01:41] andrei.anghelescu |
pm:prj2024:mdinica:andrei.anghelescu [2024/05/30 01:30] (current) andrei.anghelescu |
||
---|---|---|---|
Line 13: | Line 13: | ||
body { | body { | ||
font-family: 'Roboto', sans-serif; | font-family: 'Roboto', sans-serif; | ||
- | background-color: #f9f9f9; | + | background-color: #fff; |
color: #333; | color: #333; | ||
line-height: 1.6; | line-height: 1.6; | ||
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 135: | Line 157: | ||
border-color: #ff5722; | border-color: #ff5722; | ||
background: #ffebee; | background: #ffebee; | ||
+ | } | ||
+ | |||
+ | .intro { | ||
+ | background: linear-gradient(270deg, red, orange, yellow, green, blue, indigo, violet); | ||
+ | background-size: 1400% 1400%; | ||
+ | color: white; | ||
+ | padding: 2em; | ||
+ | text-align: center; | ||
+ | margin-bottom: 2em; | ||
+ | border-radius: 8px; | ||
+ | animation: gradientAnimation 10s ease infinite; | ||
+ | animation: fadeIn 2s ease-in-out, gradientAnimation 10s ease infinite; | ||
+ | } | ||
+ | |||
+ | .intro ceva { | ||
+ | font-size: 2.5em; | ||
+ | margin-bottom: 0.5em; | ||
+ | color: #fff; | ||
+ | } | ||
+ | |||
+ | .intro p { | ||
+ | font-size: 1.2em; | ||
+ | } | ||
+ | |||
+ | @keyframes fadeIn { | ||
+ | from { opacity: 0; } | ||
+ | to { opacity: 1; } | ||
+ | } | ||
+ | |||
+ | @keyframes gradientAnimation { | ||
+ | 0% { background-position: 0% 50%; } | ||
+ | 50% { background-position: 100% 50%; } | ||
+ | 100% { background-position: 0% 50%; } | ||
+ | } | ||
+ | |||
+ | .ripple { | ||
+ | position: relative; | ||
+ | overflow: hidden; | ||
+ | } | ||
+ | |||
+ | .ripple::after { | ||
+ | content: ''; | ||
+ | display: block; | ||
+ | position: absolute; | ||
+ | width: 100%; | ||
+ | height: 100%; | ||
+ | top: 0; | ||
+ | left: 0; | ||
+ | pointer-events: none; | ||
+ | background-image: radial-gradient(circle, #000000 10%, transparent 10%); | ||
+ | background-repeat: no-repeat; | ||
+ | background-position: 50%; | ||
+ | transform: scale(10, 10); | ||
+ | opacity: 0; | ||
+ | transition: transform 0.5s, opacity 1s; | ||
+ | } | ||
+ | |||
+ | .ripple:active::after { | ||
+ | transform: scale(0, 0); | ||
+ | opacity: 0.3; | ||
+ | transition: 0s; | ||
} | } | ||
Line 140: | Line 223: | ||
.content { | .content { | ||
padding: 2em; | padding: 2em; | ||
+ | } | ||
+ | .intro ceva { | ||
+ | font-size: 2em; | ||
+ | } | ||
+ | .intro p { | ||
+ | font-size: 1em; | ||
} | } | ||
} | } | ||
Line 147: | Line 236: | ||
<body> | <body> | ||
<div class="content"> | <div class="content"> | ||
- | <h2 id="introducere">Introducere</h2> | + | <div class="intro"> |
- | <p>Autor: <strong>Andrei Anghelescu</strong></p> | + | <ceva>Swarm Adaptive Network</ceva> |
- | <p>Grupa: <strong>332CA</strong></p> | + | <p>Autor: <strong>Andrei Anghelescu</strong></p> |
+ | <p>Grupa: <strong>332CA</strong></p> | ||
+ | </div> | ||
<div class="section"> | <div class="section"> | ||
Line 158: | Line 249: | ||
<p><strong>Utilitate?</strong> Demonstrarea utilității sistemului prin dezvoltarea unei aplicații practice: un sistem de urmărire și răcire pentru zone vaste fără acoperire WiFi completă, cum ar fi un câmp de panouri solare.</p> | <p><strong>Utilitate?</strong> Demonstrarea utilității sistemului prin dezvoltarea unei aplicații practice: un sistem de urmărire și răcire pentru zone vaste fără acoperire WiFi completă, cum ar fi un câmp de panouri solare.</p> | ||
</div> | </div> | ||
+ | |||
<p><img class="custom-img" src="https://i.imgur.com/RohBySY.png" alt="Schematicul"></p> | <p><img class="custom-img" src="https://i.imgur.com/RohBySY.png" alt="Schematicul"></p> | ||
Line 197: | 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> | ||
Line 231: | Line 355: | ||
<p><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></p> | <p><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></p> | ||
+ | <div class="ripple" style="width: 200px; height: 200px; background: #ff6347; margin: 20px auto; border-radius: 50%;"></div> | ||
</div> | </div> | ||
| |