Table of Contents

Wifi enabled alarm clock

Autor

Introducere

Apariția tehnologiei Internet of Things (IoT) a revoluționat modul în care interacționăm cu obiectele de zi cu zi. Acest proiect valorifică potențialul IoT folosind Arduino Uno R4 Wi-Fi, o placă de microcontroler cu capacități Wi-Fi încorporate, pentru a crea un ceas deșteptător inteligent. Obiectivul acestui proiect este de a proiecta un ceas deșteptător care să fie nu numai precis, ci și flexibil și interactiv prin conectivitate web. Ceasurile deșteptătoare tradiționale se limitează la setările disponibile pe dispozitivul în sine. Acest lucru duce adesea la o experiență de utilizare este mai puțin optimă, utilizatorii fiind nevoiți să seteze manual alarmele pe dispozitive. Acest proiect își propune să rezolve această problemă, permițând utilizatorilor să își seteze alarma de la distanță, prin intermediul unei interfețe web.

Descriere generală

Acesastă pagină prezintă dezvoltarea și implementarea unui ceas deșteptător cu Wi-Fi, utilizând placa de microcontroler Arduino Uno R4 Wi-Fi. Scopul proiectului este de a proiecta un ceas deșteptător programabil care poate fi setat și ajustat de la distanță prin intermediul unei interfețe de server web. Funcționalitatea dispozitivului include afișarea orei curente pe un afișaj OLED, setarea unei alarme prin intermediul unui formular web și declanșarea unei melodii prin intermediul unei sonerii la ora stabilită. Ora ceasului este sincronizată cu un server NTP pentru a asigura acuratețea. Caracteristicile adiționale includ gestionarea conectivității Wi-Fi și a răspunsurilor serverului web pentru a crea o interfață ușor de utilizat pentru gestionarea alarmelor. Proiectul integrează interfațarea hardware, programarea software și comunicarea în rețea pentru a demonstra capacitățile platformei Arduino în crearea de dispozitive IoT.

Hardware design

Software design

Implementarea software-ului pentru ceasul cu alarmă Wi-Fi pe Arduino Uno R4 implică mai multe componente esențiale care interacționează pentru a oferi funcționalitatea dorită. Codul este structurat pentru a gestiona conexiunea Wi-Fi, afișajul OLED, setarea alarmei printr-o interfață web și redarea unei melodii atunci când alarma este activată.

Conexiunea Wi-Fi și Sincronizarea Timpului

Una dintre primele funcționalități implementate este conexiunea Wi-Fi. Utilizând biblioteca WiFiS3.h, placa Arduino încearcă să se conecteze la rețeaua specificată prin SSID și parolă. Când conexiunea nu reușește, codul intră într-un ciclu de reîncercare până când conexiunea este stabilită. Odată conectată la Wi-Fi, placa începe un server web pe portul 80 și afișează informațiile rețelei (SSID și adresa IP) în Serial Monitor pentru debugging.

Pentru sincronizarea orei, codul folosește un client NTP (NTPClient.h). La inițializare, clientul NTP preia ora curentă de la un server de timp, iar aceasta este ajustată pentru fusul orar local și setată în ceasul de timp real (RTC) al Arduino. Acest lucru asigură că ceasul afișează întotdeauna ora corectă și precisă.

Interfața Web pentru Setarea Alarmei

O altă componentă importantă este serverul web care permite utilizatorilor să seteze alarma. Atunci când un client se conectează la serverul web al plăcii Arduino, codul HTML pentru o pagină simplă este trimis înapoi. Această pagină include un formular în care utilizatorii pot introduce ora pentru alarmă. Datele introduse sunt preluate de Arduino din antetul cererii HTTP și folosite pentru a seta ora alarmei.

Codul pentru serverul web gestionează cererile HTTP prin analiza antetului pentru a găsi parametrii alarmHours și alarmMinutes. Acestea sunt convertite în șiruri de caractere și folosite pentru a seta variabila alarmString, care păstrează ora la care alarma trebuie să sune. Informațiile sunt apoi afișate pe display-ul OLED.

Afișajul OLED și Alarma

Pentru afișajul OLED, codul folosește bibliotecile Adafruit_GFX.h și Adafruit_SSD1306.h. La inițializare, afișajul este configurat și un mesaj de întâmpinare este afișat timp de câteva secunde. În bucla principală, ora curentă este citită din RTC și afișată pe ecran. Dacă alarma este setată, ora acesteia este afișată de asemenea.

Când ora curentă coincide cu ora setată pentru alarmă, funcția alarm() este apelată pentru a reda o melodie prin buzzer. Melodia este definită ca un array de note și durate, iar codul iterează prin acest array pentru a reda fiecare notă la momentul potrivit. În timpul redării melodiei, utilizatorul poate opri alarma prin apăsarea unui buton conectat la un pin digital configurat cu un întrerupător extern.

Rezultate și concluzii

Proiectul integrează cu succes componentele hardware și software pentru a atinge funcționalitatea dorită. Placa Arduino Uno R4 Wi-Fi se conectează la rețeaua Wi-Fi specificată, sincronizează ora cu acuratețe folosind un server NTP și găzduiește o interfață web receptivă pentru setarea alarmelor. Display-ul OLED afișează clar ora curentă și timpul următoarei alarme, în timp ce buzzer-ul piezo redă melodia programată la ora setată pentru alarmă. Interacțiunea utilizatorului prin intermediul interfeței web și butonul fizic pentru controlul alarmei funcționează fără probleme, demonstrând implementarea eficientă a unui ceas cu alarmă activat prin Wifi.

Download

project_1_.zip

Jurnal

Bibliografie