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:

  1. Pressing the button sends a signal to the Arduino MKR1010
  2. The arduino uses the MQTT protocol to send a signal to an AWS IoT topic
  3. The topic notifies a Node.js server that the button is pressed
  4. 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.
  5. The youtube-dl library is used to download the YouTube videos using the link
  6. The EchoAR api is used with a form data library to convert the YouTube videos into QR codes
  7. A PDF is created with the two QR codes using the pdfkit library
  8. Nodemailer is used to send the pdf as an attachment to the email address of the printer (for ePrint)
  9. The printer gets and prints the pdf
  10. You are able to see the YouTube videos with a phone by pointing it towards each QR code
  11. 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.

Built With

Share this project: