Differences

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

Link to this comparison view

pm:prj2022:sionescu:petfeeder [2022/05/27 16:43]
iuliana.mihaila [Software Design]
pm:prj2022:sionescu:petfeeder [2022/06/01 23:40] (current)
iuliana.mihaila [Software Design]
Line 25: Line 25:
 === Schema bloc: === === Schema bloc: ===
  
-{{:​pm:​prj2022:​sionescu:​image_2022-05-11_213416038.png?600|}}+{{:​pm:​prj2022:​sionescu:​image_2022-05-27_171307161.png?600|}}
  
  
Line 57: Line 57:
 Așadar, va fi necesar un router care se va conecta prin intermediul unui cablu de ethernet la modulul ​ Așadar, va fi necesar un router care se va conecta prin intermediul unui cablu de ethernet la modulul ​
 Wi-Fi, conexiunea cu laptopul fiind posibilă și prin wireless. Wi-Fi, conexiunea cu laptopul fiind posibilă și prin wireless.
 +Totodată, codul de Arduino conține o funcție de reconectare automată, reconnect(),​ în cazul în care nu se mai face conexiunea la master server, prevenind astfel comportamentul imprevizibil generat de potențialele erori sau de fluctuații ale vitezei cu care se transmit datele prin internet.
  
-Inițializare botului de Telegram se face prin intermediul unui BotFather cu comanda /newbot, astfel că, utilizatorul trimite nițte comenzi pe această aplicație pentru a-și configura propriul chatbot care, va căpăta sens + utilitate practică in momentul in care va fi programat pe calculator.+{{:​pm:​prj2022:​sionescu:​image_2022-05-27_164642205.png?​500|}} 
 + 
 +Inițializare botului de Telegram se face prin intermediul unui BotFather cu comanda /newbot, astfel că, utilizatorul trimite niște comenzi pe această aplicație pentru a-și configura propriul chatbot care, va căpăta sens + utilitate practică in momentul in care va fi programat pe calculator.
 Odată ce botul de Telegram a fost inițializat,​ vom folosi biblioteca Telegraf împreună cu NodeJS care este un framework pentru siteuri, servicii și aplicații scrise in Javascript. Odată ce botul de Telegram a fost inițializat,​ vom folosi biblioteca Telegraf împreună cu NodeJS care este un framework pentru siteuri, servicii și aplicații scrise in Javascript.
  
Line 68: Line 71:
 Atunci când feederul primește un byte, acționează servo motorul, iar când serverul primește un byte de la feeder, știm că pisica a apăsat pe butonul fizic, hrăndindu-se singură. Atunci când feederul primește un byte, acționează servo motorul, iar când serverul primește un byte de la feeder, știm că pisica a apăsat pe butonul fizic, hrăndindu-se singură.
 Pentru pornirea efectiva a serverului se dă comanda node index.js. Pentru pornirea efectiva a serverului se dă comanda node index.js.
-Codul de pe placa de dezvoltare Arduino presupune conectarea la server cu ajutorul IP-ului local al laptopului si al adresei MAC precum și implementarea celor două scenari.+Codul de pe placa de dezvoltare Arduino presupune conectarea la server cu ajutorul IP-ului local al laptopului si al adresei MAC precum și implementarea celor două scenarii. 
 Pentru implementarea functionalitatii camerei ESP32 CAM, ce presupune conectarea acesteia la bot-ul de Telegram, am folosit biblioteca Universal Arduino-Telegram Bot. Pentru implementarea functionalitatii camerei ESP32 CAM, ce presupune conectarea acesteia la bot-ul de Telegram, am folosit biblioteca Universal Arduino-Telegram Bot.
  
Line 88: Line 92:
  
 {{:​pm:​prj2022:​sionescu:​image_2022-05-27_163300189.png?​500|}} {{:​pm:​prj2022:​sionescu:​image_2022-05-27_163300189.png?​500|}}
 +
 +În prima instanță, s-a verificat funcționalitatea de acționare prin apăsare pe buton, eveniment ce produce transmiterea unui anumit tip de date (un byte) către server, ca mai apoi să fie preluat si transformat într-o comandă ce prevede evacuarea mâncării.
 +
 +{{:​pm:​prj2022:​sionescu:​image_2022-05-27_164350668.png?​500|}}
 +
 +Funcționalitatea ce are ca subiect conectarea la aplicația de Telegram prin intermediul API-ului open source, a fost testată, cu serverul pornit, comunicând cu botul pe care l-am creat. Astfel, după ce am setat lista de comenzi (/​setcommands) prin BotFather si după ce le-am atribuit câte o semantică (primirea unui mesaj text ca raspuns), am testat comanda /feed ce acționează motorul în mod instant.
 +Codul ce presupune redarea pozei a fost implementat in fisierul TelegramCamera. Acesta primeste token-ul corespunzator bot-ului de Telegram, informatii despre conexiunea Wi-Fi si se foloseste de un client TCP pentru a transmite reda poza, respectiv pentru a porni flash-ul camerei.
 +
  
  
Line 93: Line 105:
 ===== Concluzii ===== ===== Concluzii =====
  
 +Proiectul a fost o experiență plăcută și interesantă în care am aprofundat mai bine anumite noțiuni, am întâmpinat probleme și am încercat să găsesc soluții. Printre problemele pe care le-am întâmpinat,​ montarea shieldului de Ethernet a prezentat dificultăți deoarece nu am putut folosi o bibliotecă standard. Având în vedere faptul că s-a folosit un shield care nu este original Arduino, am folosit biblioteca UIPEthernet.h de pe github: https://​github.com/​UIPEthernet/​UIPEthernet. În ceea ce privește implementarea camerei ESP-32, nu am reușit să programez pe aceeași plăcuță și partea care ține de feeder și transmiterea pozei prin Telegram, motivul fiind insuficiența pinilor.
 ===== Download ===== ===== Download =====
 +{{:​pm:​prj2022:​sionescu:​feeder-bot.zip|}}
 ===== Jurnal ===== ===== Jurnal =====
   * 18.04.2022 - Alegerea temei proiectului   * 18.04.2022 - Alegerea temei proiectului
 +  * 21.04.2022 - 20.05.2022 - Realizarea proiectului
 +  * 26.06.2021 - Intocmirea documentatiei
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
Line 110: Line 125:
  
 https://​www.chatcompose.com/​ro/​telegram.html https://​www.chatcompose.com/​ro/​telegram.html
 +
 +https://​randomnerdtutorials.com/​telegram-esp32-cam-photo-arduino/​
  
 </​note>​ </​note>​
pm/prj2022/sionescu/petfeeder.1653658996.txt.gz · Last modified: 2022/05/27 16:43 by iuliana.mihaila
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