I noticed that fake news is very rampant in this country, with organizations like QAnon having a large influence despite their theories being unsubstantiated by any credible evidence. I wanted to make a way to reduce the impact of fake news.
What it does
After you press a button and wait about 90 seconds, a printer prints a sheet with 2 qr codes. By looking at the QR codes with a camera, you see the latest videos from two news sources - NBC and CDC - on their YouTube channels with EchoAR.
How I built it
More broadly, I used hardware, AWS IoT, EchoAR, Node.js, and the Eprint function of my printer to do this. Specifically, it works like this:
- Pressing the button sends a signal to the Arduino MKR1010
- The arduino uses the MQTT protocol to send a signal to an AWS IoT topic
- The topic notifies a Node.js server that the button is pressed
- The YouTube API with Axios is used to find the two most recent short videos (EchoAR wasn't able to download videos longer than around 4 minutes) from NBC and CDC.
- The youtube-dl library is used to download the YouTube videos using the link
- The EchoAR api is used with a form data library to convert the YouTube videos into QR codes
- A PDF is created with the two QR codes using the pdfkit library
- Nodemailer is used to send the pdf as an attachment to the email address of the printer (for ePrint)
- The printer gets and prints the pdf
- You are able to see the YouTube videos with a phone by pointing it towards each QR code
- Hang the sheet in your home, school, or work so the people in each area have easy access to credible news
Challenges I ran into
Sending the video data to EchoAR was a lot more complicated than expected since I wasn't able to just send a link to the YouTube video. Instead, the video had to be downloaded and sent as form data.
Accomplishments that I'm proud of
I did my first completely back end project! Additionally, this project may help solve a real world problem.
What I learned
I learned to setup and ePrinter and use ePrint since I never used that printer before (its not my printer). Additionally, I learned how to connect a node.js server to AWS IoT and a ton of node.js libraries including nodemailer, pdf-kit, YouTube-dl, and form data.
What's next for News Printer
I want to make the news channels you choose customizable with a front end part.
I accidentally hard coded Latest news from BBC instead of Latest news from NBC, so on the printed sheet, it's slightly wrong. Though, I fixed this on the GitHub.