/BadgeHub

Raspberry Pi, Dymo Turbo Writer 450 badge printing service that logs user information such as name and email and prints a name badge and QR code associated with that information.

Primary LanguageJavaScriptMIT LicenseMIT

Code For San Jose Login System

The Code For San Jose Login System prints out name tags which contain the guest's name and email address as a QR code, name in plain text, and the Code For San Jose Brigade logo. The guest information is recorded in a .csv file and automatically uploaded to Google sheets when the Sheets API is turned on.

creating a name tag

Pre-requisites

  • Raspberry Pi 2 or 3 running Raspbian in desktop mode.
  • DYMO LabelWriter 450 printer connected to the Raspberry Pi via USB.
  • Internet access for the Raspberry Pi.

The Bill of Materials provides the complete list of equipments, pricing, and links to recommended products.

**Bill of Materials (click to open)**

Item No. Description Quantity Price Link
1 Raspberry Pi 3 Model B 1 $38.31 Amazon link
2 Raspberry Pi 7" Touchscreen Display 1 $66.99 Amazon link
3 Power Adapter 1 $9.99 Amazon link
4 Keyboard 1 $14.99 Amazon link
5 Micro SD Card 1 $15.95 Amazon link
6 DYMO LabelWriter 450 1 $66.95 Amazon link
7 DYMO 2-1/4" x 4" labels (30857) 1 $10.00 Amazon link

Total Cost: $223.18

Setting up your Raspberry Pi as a name tag kiosk

Setting up your Raspberry Pi as a name tag kiosk involves two steps:

  1. Installing the login system
  2. Adding the DYMO LabelWriter 450 printer

Optional step:

  1. Uploading to Google sheets
  1. Open a terminal and create a new folder called "GitHub". Run: mkdir ~/GitHub

    NOTE: Ensure that the folder name is "GitHub" since the folder name is referenced in the install script.

  2. Clone the git repository from GitHub. Run:

    cd ~/GitHub
    git clone https://github.com/codeforsanjose/CFSJ-Login-System.git
    cd CFSJ-Login-System/
    
  3. Run the install script: ./install/install.sh

The installation process may take several minutes to complete. The script installs all the dependencies required for the program including the driver for the DYMO LabelWriter 450 printer. The script also configures the Raspberry Pi to start Chromium automatically on startup.

  1. Open Chromium and browse to http://localhost:631/.
  2. Click the Administration tab at the top and click Add Printer under Printers.
  3. In the Authentication Required dialog box, enter pi as the user name and raspberry as the password.
  4. Click Log In.
  5. In the Add Printer page, select DYMO LabelWriter 450 (DYMO LabelWriter 450) and click Continue.
  6. Review the Name and Description and click Continue.
  7. Select DYMO LabelWriter 450 (en) from the Model list.
  8. Click Add Printer.
  9. In the Set Default Options for DYMO_LabelWriter_450 page, set the following:
    • Media size: 30857 Badge Label
    • Output Resolution: 300x600 DPI
    • Halftoning: Error Diffusion
    • Print Density: Normal
    • Print Quality: Barcodes and Graphics
  10. Click Set Default Options. You will be redirected to the Printers tab.
  11. Click the Administration drop-down and select Set As Server Default.
  12. Finally, close the browser and reboot the device.

After rebooting, the Raspberry Pi will automatically start Chromium in kiosk mode and display the login system.

  1. Open Chromium and browse to https://developers.google.com/sheets/api/quickstart/python.
  2. Follow the instructions under "Step 1: Turn on the Google Sheets API" to create and download client_secret.json.
  3. Copy the file into the CFSJ-Login-System folder.

The uploder.py copies the user name and email address of the guest from the .csv file into Google sheets. After a successful update, the .csv file is deleted. If the update fails, the user information is retained in the .csv file until a successful retry.