This shows you the differences between two versions of the page.
pm:prj2024:iotelea:robert.stoica2205 [2024/05/26 13:06] robert.stoica2205 [Hardware Design] |
pm:prj2024:iotelea:robert.stoica2205 [2024/05/26 15:49] (current) robert.stoica2205 [Final Product] |
||
---|---|---|---|
Line 132: | Line 132: | ||
Semnalul mov este PWM-ul generat de microcontroler si amplificat inainte de transmisie. Semnalul galben este cel receptionat. Acesta este un semnal sinusoidal analogic care a fost trecut prin 2 amplificaoare operationale, rezultand un semnal digital. Se poate observa ca acesta creste treptat, si nu este constant la inceput, avand nevoie de o perioada pentru a se stabiliza. | Semnalul mov este PWM-ul generat de microcontroler si amplificat inainte de transmisie. Semnalul galben este cel receptionat. Acesta este un semnal sinusoidal analogic care a fost trecut prin 2 amplificaoare operationale, rezultand un semnal digital. Se poate observa ca acesta creste treptat, si nu este constant la inceput, avand nevoie de o perioada pentru a se stabiliza. | ||
+ | |||
+ | |||
+ | ==== Final Product ==== | ||
+ | ---- | ||
+ | |||
+ | === Suport === | ||
+ | |||
+ | Suportul pentru senzori a fost realizat din brate subtiri si inalte de lemn, pentru a nu modifica foarte mult vantul care trece printre acestea. Distanta dintre senzori este de 11cm. | ||
+ | |||
+ | {{pm:prj2024:iotelea:anemometru_final.jpeg?600}} | ||
+ | |||
+ | === Aplicatie === | ||
+ | Pentru a prelucra datele obtinute de la timer, am realizat o aplicatie in Python care are rolul de a interpreta valoarie si a le afisa. | ||
+ | |||
+ | Graficul este unul pe 2 axe, reprezentand viteza atat pe OX cat si pe OY. Acesta consta intr-un vector a carui lungime si orientare se schimba in functie de viteza vantului si directia din care bate acesta. Aplicatia citeste de la USB valorile timerului si calculeaza viteza, stocand valorile intr-un buffer de 100 de elemente. Pentru reprezentarea pe grafic am ales sa fac media acestor 100 de elemente pentru a obtine o eroare cat mai mica, fiind nevoie de o modificare vizibila pe termen lung pentru a se actualiza graficul. | ||
+ | |||
+ | |||
+ | === Calibrare === | ||
+ | Pentru procesul de calibrare am folosit un anemometru real si am masurat cu el viteza vantului generat de feonul meu pentru 2 trepte de viteza: | ||
+ | |||
+ | {{pm:prj2024:iotelea:anem2.jpeg?600}} | ||
+ | |||
+ | {{pm:prj2024:iotelea:anem1.jpeg?600}} | ||
+ | |||
+ | Dupa teste repetate am observat ca viteza inregistrata de anemometru tinde sa fie de 1.3 ori mai mare decat cea inregistrata de dispozitivul meu. Modificand valorilor calculate, rezultatele obtinute tind sa fie foarte apropiate de cele reale. | ||
+ | |||
+ | Un videoclip demonstrativ poate fi vazut [[https://drive.google.com/file/d/1mQSsCN8R6oDgNeSaw6AFfXIIetQnqaTP/view?|aici]]. | ||
+ | |||
+ | ==== Concluzii ==== | ||
+ | ---- | ||
+ | |||
+ | In concluzie, aparatul s-a dovedit a fi un succes, fiind capabil sa inregistreze cu acuratete ridicata viteze de pana la aproximativ 13.5 m/s. Planuiesc ca acesta sa fie imbunatatit pe viitor, folosind o modulatie in frecventa pentru a determina exact momentul receptionarii semnalului. In acest fel, nu am mai fi limitati la o singura perioada de 25us, putand masura cu precizie viteze mult mai mari. | ||
+ | |||
+ | |||
+ | ==== Resurse ==== | ||
+ | ---- | ||
+ | |||
+ | [[https://github.com/majianjia/QingStation/blob/main/doc/anemometer.md|Anemometer1]] | ||
+ | |||
+ | [[https://www.dl1glh.de/ultrasonic-anemometer.html#advancement|Anemometer2]] | ||
+ | |||
+ | [[https://www.st.com/en/microcontrollers-microprocessors/stm32g431kb.html|STM32]] | ||
+ | |||
+ | |||