• Erste Schritte
  • Hardware & GPIO
  • Projekte
  • Software
    • Webserver
  • Arduino & ESP8266
  • Hausautomatisierung
  • Sonstiges
    • News
Facebook Twitter YouTube
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
  • Einstieg
    • Erste Schritte
      • Raspberry Pi 3 Einstieg - Starter KitWas brauche und wie starte ich? – Raspberry Pi Einstieg
    • Einrichtung
      • microsd_karte_menuRaspbian Betriebssystem auf eine SD Karte flashen – Einfach & Schnell
      • wlanbluetooth_menuWLAN und Bluetooth einrichten – Raspberry Pi 4
      • wifi_menuWLAN Stick installieren und einrichten – Alternative
      • bash_menuSSH Zugriff einrichten via Putty – Kommandozeilen Zugriff
      • rdp_menuRemotedesktop Verbindung aufbauen – Fernsteuerung
    • Einsteiger Projekte
      • Sinnvolles Raspberry Pi Zubehör
      • 15 Raspberry Pi Projekte für Anfänger
      • Ampelschaltung mit GPIOs
      • GPIOs mit Port Expander erweitern
      • Elektronischer Würfel
      • 13 tolle Projekte für Kinder und Jugendliche
      • Roboter selber bauen
      • In Visual Studio Code mit C++ programmieren
      • Wünsch dir ein Tutorial
    • Programmieren lernen
      • Teil 1: Einführung
      • Teil 2: GPIOs steuern
      • Teil 3: GUI erstellen
      • Teil 4: PWM
      • C# GUI Apps entwickeln
  • Hardware & GPIO
    • 50 der wichtigsten Raspberry Pi Sensoren und Module – Aufgelistet mit Links zu den TutorialsRaspberry Pi Sensoren
    • Beliebte Tutorials
      • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
      • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
      • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Funksteckdosen (433MHz) steuern
      • Raspberry Pi Relais ModulRaspberry Pi: Relais-Schalter per GPIO steuern
      • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
      • Amazon-Alexa-deutsch-auf-dem-Raspberry-Pi-installierenAmazon Alexa (Deutsch) auf dem installieren
      • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
      • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren
      • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
      • Raspberry Pi USB Boot per Stick oder SSD Festplatte einrichtenUSB Boot per Stick oder SSD Festplatte
      • Analog
        • Raspberry Pi MCP3008 ADCMCP3008: Am Raspberry Pi analoge Signale auslesen
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
        • Raspberry Pi PulsmesserRaspberry Pi Pulsmesser: Herzfrequenz messen
        • Joystick am Raspberry Pi benutzen (mit MCP3008)Joystick am Raspberry Pi benutzen (mit MCP3008)
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Drehregler - Rotary EncoderKY040 Drehregler als Lautstärkeregler für den Raspberry Pi
        • Easpberry Pi Soil SensorBodenfeuchtigkeit mit dem Raspberry Pi messen
        • Raspberry Pi KeypadRaspberry Pi Keypad anschließen – Codeschloss
        • Raspberry Pi door sensorÜberwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
        • Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)
      • Funk
        • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren lassen
        • Remote Control Raspberry Pi 433Mhz Radio TransmitterRaspberry Pi mit 433Mhz Funksender fernsteuern
        • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433MHz) steuern
        • Raspberry Pi MiFlora - Xiaomi Pflanzensensor in OpenHAB einbindenMiFlora – Xiaomi Pflanzensensor ins Smart Home einbinden
        • Raspberry Pi RFID RC522 TüröffnerRaspberry Pi RFID RC522 Tags auslesen (NFC)
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation (2.4 GHz): Arduino & Raspberry Pi
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen
        • Raspberry Pi Xbox 360 Wireless ControllerRaspberry Pi mittels Xbox 360 Controller steuern
        • Raspberry Pi GSM Modul - Huawei Internet SticksRaspberry Pi GSM Modul – Mobiles Internet
        • Raspberry Pi Bluetooth DatentransferRaspberry Pi Bluetooth Datentransfer zum Smartphone
      • Infrarot & Laser
        • Raspberry Pi Infrarot FernbedienungRaspberry Pi: Per IR Remote Befehle ausführen
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Laser Lichtschranke für weite DistanzenRaspberry Pi Laser Lichtschranke für weite Distanzen
        • Infrarot Raspberry Pi FernbedienungInfrarot Steuerung einrichten
        • Raspberry Pi Infrarot Lichtschranke bauen und Geschwindigkeit messenRaspberry Pi Infrarot Lichtschranke bauen
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
      • Temperatur & Navigation
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorRaspberry Pi: Luftfeuchtigkeit und Temperatur messen
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Raspberry Pi RTC Real Time ClockReal Time Clock Modul steuern
        • Rotation und Beschleunigung mit dem Raspberry Pi messenRotation und Beschleunigung mit dem Raspberry Pi messen
        • Raspberry Pi GPS ModulRaspberry Pi GPS Ortungs- / Navigationsgerät bauen
        • Raspberry Pi Kompass selber bauenRaspberry Pi Kompass selber bauen (HMC5883L)
        • Kontaktlosen Infrarot-Temperatursensor MLX90614 am Raspberry Pi auslesenMLX90614 – Kontaktlos Temperaturen messen
      • Displays
        • Raspberrry Pi HD44780 I2CHD44780 LCD Display per I2C ansteuern
        • Raspbery Pi LCD DisplayRaspberry Pi LCD Display: 16×2 Zeichen anzeigen
        • DisplayTipps & Tricks zum offiziellen 7″ Raspberry Pi Touchscreen
        • Raspberry Pi TouchscreenTestbericht zum 7″ Raspberry Pi Touchscreen Display
        • LCD Touch Display (3.2″) am Raspberry PiLCD Touch Display (3.2″) am Raspberry Pi
        • tft lcd touch displayRaspberry Pi LCD Touch Display Teil 2 – Anpassungen
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtRaspberry Pi LED Matrix – Projektübersicht
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige mit MAX7219 am Raspberry Pi (Anode)
        • Raspberry Pi Tablet Raspad TestberichtRaspberry Pi Tablet „Sunfounder RasPad“ Testbericht
      • Motoren & Sonstige
        • Raspberry Pi Stepper Motor Control with L293D / ULN2003ARaspberry Pi Schrittmotor ansteuern
        • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
        • Raspberry Pi PCA9685 mehrere Servos gleichzeitig steuernMehrere Servo Motoren per Raspberry Pi steuern
        • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
        • How to use a Raspberry Pi Fingerprint Sensor for AuthenticationRaspberry Pi Fingerprint Sensor zur Authentifizierung nutzen
        • Raspberry Pi Akku AdapterRaspberry Pi mit Akkus/Batterien betreiben
        • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
        • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
        • Raspberry Pi WS2812 RGB LED StripWS2812 RGB LED Streifen per Raspberry Pi steuern
        • Raspberry Pi Überwachungskamera LivestreamÜberwachungskamera Livestream einrichten
        • NoIRAufnahmen mit dem offiziellen Kamera Modul
        • Raspberry Pi Zero - establishing an Ethernet connection (ENC28J60)Raspberry Pi Zero – Ethernet Verbindung
  • Software
    • Webserver Installation
      • apache2_menu25Teil 1 – Apache2
      • php_menu25Teil 2 – PHP 5
      • mysql_menu25Teil 3 – MySQL
      • phpmyadmin_menu25Teil 4 – phpMyAdmin
      • ftp_menu25Teil 5 – FTP Server
      • dns_menu25Teil 6 – DNS Server via No-IP
      • home_menu25Homeverzeichnis ändern
      • share_25Samba Server: Dateien im Netzwerk teilen
      • nodejs_menu25Node.js Webserver installieren und GPIOs schalten
      • ssl_menu25SSL Zertifikat kostenlos mit Let’s Encrypt
      • wordpress_25Eigenen WordPress-Server einrichten
      • cloud-25Nextcloud auf dem Raspberry Pi installieren
    • Entertainment
      • led_menu25Raspberry Pi Ambilight für alle Geräte mit OSMC selber bauen
      • amazon_menu25Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
      • controller_25Raspberry Pi RetroPie – Spielekonsole selber bauen
      • kodi_menu25Mediencenter Raspbmc als SmartTV mit dem Raspberry Pi
      • android_25Android TV Box zum selber bauen
      • apple-2316234_640Raspberry Pi als AirPlay-Empfänger
      • jukebox_menu25Raspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.)
      • steam_25Steam Spiele streamen
      • minecraft_menu25Raspberry Pi Minecraft Server
      • youtube_25YouTube Live Streaming einrichten
      • qr-code-tutorials-raspberrypi.de_25Raspberry Pi QR / Barcode Scanner
    • Fernsteuerung
      • rdp_menuRaspberry Pi Remotedesktop Verbindung
      • ssh_menu25SSH Zugriff einrichten via Putty (Windows)
      • vnc_menu25Raspberry Pi mittels VNC fernsteuern
      • welcome_menu25SSH Terminal Begrüßung ändern
      • telegram1_menu25Telegram Messenger auf dem RaspberryPi
      • telegram2_menu25Mit Telegram Messenger Raspberry Pi steuern
      • bluet_menu25Raspberry Pi Bluetooth Datentransfer zum Smartphone
      • alexa_voice_25Eigenen Raspberry Pi Alexa Skill bauen
      • microphone_25Sprachsteuerung selber bauen
      • mqtt_25MQTT Broker/Client Funkkommunikation
      • mail_25Vom Raspberry Pi Emails senden
      • twitter_25Per Twitter Bot Nachrichten posten
    • Weitere
      • loggen_menu25Sensordaten mit ThingSpeak loggen und auswerten
      • mysql_datalogger25Per lokaler MySQL Datenbank zum Raspberry Pi Datenlogger
      • opencv_menu25OpenCV auf dem Raspberry Pi installieren
      • arduino_menu30tWiringPi installieren & Pinbelegung (Raspberry Pi)
      • radio_menu25Raspberry Pi als Radio Sendestation
      • win10_menu25Windows 10 IoT auf dem Raspberry Pi installieren
      • printer_25Drucker einrichten und per Knopfdruck Bilder drucken
      • gsm_menu25Raspberry Pi GSM Modul – Mobiles Internet (LTE, 3G, UMTS)
      • autostart_menu25Autostart: Programm automatisch starten lassen
      • machine-learning-25Raspberry Pi Machine Learning erlernen
  • Projekte
      • roboter_menu30tRoboter
        • Raspberry Pi Roboter ProjektRaspberry Pi Roboter Projektübersicht
        • Raspberry Pi Roboter Bausatz fertigTeil 1: Zusammenbau
        • Raspberry Pi Roboter - Linien folgenTeil 2: Linien folgen lassen
        • Raspberry Pi Roboter per Infrarot Fernbedienung steuernTeil 3: Per Infrarot Fernbedienung steuern
        • Raspberry Pi Roboter: Ultraschall AutopilotTeil 4: Automatisch Hindernissen ausweichen
        • Raspberry Pi Roboter der eigenen Stimme folgen lassenTeil 5: Der eigenen Stimme folgen lassen
        • Raspberry Pi Roboter mit Xbox 360 Controller fernsteuernTeil 6: Mit Xbox 360 Controller Roboter fernsteuern
        • Raspberry Pi Robot Arm 6DOF6-Gelenkigen Roboter Arm am Raspberry Pi betreiben (6 DOF)
      • led_menu30LED Matrix
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtMAX7219 LED Matrix – Projektübersicht
        • 8×8 LED Dot Matrix Parts8×8 LED Matrix – Zusammenbau und Installation
        • Raspberry Pi Bibliothek für mehrzeilige m x n MAX7219 LED MatrizenBibliothek für mehrzeilige m x n MAX7219 LED Matrizen
        • Graphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnenGraphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnen
        • Pong auf MAX7219 Matrizen spielen (mit Joystick) – Raspberry PiPong auf MAX7219 Matrizen spielen (mit Joystick)
        • Snake auf Raspberry Pi MAX7219 Matrizen spielenSnake auf Raspberry Pi MAX7219 Matrizen spielen
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige (Anode) mit MAX7219/MAX7221
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
      • wetterstation_menu30Wetterstation
        • Raspberry Pi Wetterstation mit OpenHAB 2 bauenEigene Raspberry Pi Wetterstation mit OpenHAB 2 bauen
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
        • raspberry_pi_thingspeak_daten_loggenSensordaten mit ThingSpeak loggen und auswerten
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
      • arduino_menu30tArduino & ESP8266
        • ESP8266 Microcontroller BoardEinführung & Programmierung des ESP8266 NodeMCU Boards
        • Raspberry Pi + ESP8266 NodeMCU: Per WLAN Daten sendenRaspberry Pi + ESP8266 NodeMCU: Per WLAN Daten senden
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Mit dem NodeMCU ESP8266 433MHz Funksteckdosen steuernMit dem NodeMCU ESP8266 433MHz Funksteckdosen steuern
        • ESP8266 NodeMCU HD44780 LCD Display per I2C steuernNodeMCU ESP8266: HD44780 LCD Display per I2C steuern
        • ESP8266 Grafikdisplay: Am SSD1306 OLED per I2C Bilder & Text anzeigen
        • ESP8266 Google Maps API RoutenplanerESP8266 Google Maps API Routenplaner auf LCD anzeigen
        • 2000px-Arduino_Logo.svgRaspberry Pi und Arduino – Einführung
        • arduino unoArduino und Raspberry Pi miteinander kommunizieren lassen
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation zwischen Raspberry Pi’s und Arduinos (2.4 GHz)
        • NodeMCU: ESP8266 mit Solarpanel und Akku mit Strom versorgenNodeMCU: ESP8266 mit Solarzelle und Akku mit Strom versorgen
        • ESP8266 Access Point: Günstigen Wlan Repeater selber bauenESP8266 Access Point: Günstigen Wlan Repeater selber bauen
      • Mini Projekte
        • Raspberry Pi Gewächshaus automatisch selber bauenAutomatisches Raspberry Pi Gewächshaus selber bauen
        • Eigene Raspberry Pi Gartenbewässerung mit Webseite bauenEigene Gartenbewässerung mit Webseite bauen
        • Raspberry Pi Radio StationRaspberry Pi als Radio Sendestation verwenden
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen (Autoradio, Car PC)
        • spotify-logo-primary-horizontal-dark-background-rgbRaspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.) – Online Radio
        • Raspberry Pi RetroPie Guide - SNES Classic Spielekonsole selber bauenRaspberry Pi RetroPie Guide – SNES Spielekonsole bauen
        • Android + Raspberry Pi: Funksteckdosen App BedienungRaspberry Pi + Android/iOS: Funksteckdosen per App schalten
        • Indirekte Deckenbeleuchtung selber bauen mit farbigem LED LichtIndirekte Deckenbeleuchtung selber bauen mit farbigem LED Licht
  • Sonstiges
    • Wünsch dir ein Tutorial
    • News
    • Reviews
      • Pi Cap – Kapazitives Raspberry Pi Erweiterungsboard
      • Raspberry Pi Tablet „Sunfounder RasPad“ – Testbericht & Einrichtung
      • Testbericht zum 7″ Raspberry Pi Touchscreen Display
      • CrowPi 2 Testbericht: Laptop & Lern-Kit für Kinder
      • Daten auf dem Wio Terminal LCD Screen anzeigen
    • Raspberry Pi Zero
      • Offizielles 5$ Raspberry Pi Zero Modul vorgestellt
      • Raspberry Pi Zero – Ethernet Verbindung herstellen (ENC28J60)
      • Raspberry Pi: WS2801 RGB LED Streifen anschließen und steuern
  • Hausautomation
    • OpenHAB
      • steckdose_25Sonoff S20 Wifi Steckdose steuern
      • wireless_25Funksteckdosen (433 MHz) schalten
      • schalter_25Relais steuern (Rollladen, Lichter, etc.)
      • wetterstation_menu30Wetterstation mit OpenHAB 2 bauen
      • ws28_25WS28xx RGB LED Streifen steuern
      • touchscreen_25Touchscreen Panel bei Näherung aktivieren
      • mqtt_25MQTT Datenabfrage: Raspberry Pi an ESP8266
      • spotify_25Remote Spotify Player im Smart Home
      • heizung_25eQ-3 Thermostat im Smart Home
    • Einführung
      • Raspberry Pi Smart Home OpenHAB installierenOpenHAB installieren & konfigurieren
      • Home Assistant auf dem Raspberry Pi – Erste Schritte
    • ESP8266 NodeMCU
      • esp8266_25Einführung & Programmierung
      • arduino_25ESP8266: Arduino IDE installieren
      • lcd_25NodeMCU HD44780 LCD
      • battery_25Batteriebetrieb via Deep-Sleep
      • wifi_menuPer WLAN Daten senden
      • wetterstation_menu30Wetterstation Außenposten
      • maps_25Google Maps Routenplaner
      • wireless_25NodeMCU Funksteckdosen steuern
      • mail_25Vom NodeMCU Emails versenden
      • rgb_25WS2812B LEDs am Smartphone steuern
      • solar_25ESP8266 Stromversorgung mit Solarzelle
    • Überwachung
      • Aufnahmen mit dem offiziellen Kamera Modul des Raspberry Pi
      • Raspberry Pi: Überwachungskamera Livestream einrichten
      • mailbox_25Briefkasten Sensor – Email Benachrichtigung bei neuer Post
      • Raspberry Pi Überwachungskamera mit Webcam betreiben
      • Überwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
      • ESP32 Cam Livestream Tutorial für Kamera Modul
    • Raspberry Pi + Android: Benachrichtigungen von Bewegungsmelder
    • Raspberry Pi + Android/iOS: Funksteckdosen per App schalten
    • Raspberry Pi + Android: Schwenkbarer Kamera-Livestream
      • Smart Home
        • Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
        • Raspberry Pi Funksteckdosen (433MHz) steuern – Tutorial
        • Raspberry Pi Sprachsteuerung selber bauen (Hausautomatisierung)
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Hardware & GPIO»Raspberry Pi QR / Barcode Scanner mit Kamera selber bauen

Raspberry Pi QR / Barcode Scanner mit Kamera selber bauen

Facebook Twitter LinkedIn Tumblr Email Reddit
Raspberry Pi Barcode Scanner mit Kamera selber bauen
Teilen
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

Barcodes sowie QR Codes sind heute überall zu finden, ob auf Produkten oder gar auf Visitenkarten. Die enthaltenen Informationen sind nicht mit dem Auge zu entziffern, dafür aber von Maschinen lesbar. De Raspberry Pi ist dafür also optimal geeignet. In diesem Tutorial bauen wir mittels einer einfachen Kamera unseren eigenen Raspberry Pi Barcode Scanner, der ebenfalls QR Codes lesen kann. Hierfür nutzen wir unter anderem OpenCV.

Die daraus gewonnene Funktionalität kann in verschiedenen Projekten verwendet werden. So können QR / Barcodes z.B. zur Identifikation genutzt werden, oder bspw. eine eigene Raspberry Pi Lagerverwaltung damit aufgebaut werden.

Raspberry Pi Tutorials QR Code
Beispielhafter QR Code mit wenigen Zeichen.

Barcodes / QR Codes sind ein- bzw. zweidimensionale Codes, in denen Textinformationen in Form von Bits gespeichert werden. Um diese anschließend zu entziffern, wird ein QR / Barcode Lesegerät benötigt. Dies besteht aus einer Kamera (dem Scanner), welche ein Bild des Codes macht und anschließend von einem PC / Mikrocontroller umgewandelt wird. Der Vorteil des QR Codes ist dabei, dass auch teilweise falsch gelesene Informationen (Bits) mittels Prüfsummen „repariert“ werden können und somit das Ergebnis trotzdem richtig ausgelesen wird.

 

Zubehör für den Raspberry Pi Barcode Scanner

In diesem Tutorial wird folgendes Zubehör verwendet:

  • Raspberry Pi
  • entsprechendes Zubehör (Micro SD Karte, Stromversorgung)
  • Raspberry Pi Kamera
  • alternativ: USB Webcam (gute Auflösung vorausgesetzt)
  • ggf. ausgedruckten QR / Barcode, der gescannt wird.
  • optional: Touchscreen

Des weiteren werden wir Python Codeschnipsel nutzen. Es empfiehlt sich also, wenn du bereits grundlegende Python Programmierkenntnisse hast. Falls du neu einsteigst oder deine Kenntnisse auffrischen willst, gibt es hier ein gutes Tutorial zum Einstieg.

 

Vorbereitung: Benötigte Tools zum Lesen von QR / Barcodes

Zunächst einmal benötigen wir eine Linux Distribution als Betriebssystem des Raspberry Pi’s. Hierbei bietet sich vor allem Raspbian oder ein darauf basierendes Betriebssystem (OpenHAB, KODI, OpenELEC, etc.) an. Falls du noch kein Betriebssystem auf deiner Micro SD Karte installiert hast, so findest du hier eine kurze Anleitung, wie du das Betriebssystem auf eine SD Karte flashst.

Wir loggen uns nun z.B. per SSH ein und installieren die nötigen Tools (unter Python 3):

sudo apt-get update
sudo apt-get install python3 python3-pip libzbar0 
sudo pip3 install opencv-python pyzbar imutils
sudo apt-get install libcblas-dev libhdf5-dev libhdf5-serial-dev libatlas-base-dev libjasper-dev libqtgui4 libqt4-test

Die Installation sollte ohne weitere Fehler verlaufen.

Die Kamera kannst du auch bereits anschließen. Dabei spielt es keine Rolle, ob du eine offizielle Raspberry Pi Kamera nutzt, die über den CSI Anschluss direkt am Pi betrieben wird, oder eine Webcam über USB. Wichtig ist lediglich, dass die Webcam am Raspberry Pi und über OpenCV unterstützt wird. Bei aktuellen Kameras ist dies jedoch fast immer der Fall.

 

 

Erster Test: Mit dem Raspberry Pi QR / Barcodes lesen

Nun wollen wir auf einem einfachen Bild unsere QR und Barcodes mittels zbar erkennen und in lesbaren Text umwandeln. Dafür benötigen wir eine Datei eines solchen Codes.

Um schnell einen einfachen QR bzw. Barcode zu erstellen, gibt es dutzende Webseiten im Internet. Eine kurze Google Suche nach „Barcode Generator“ bzw. „QR Code Generator“ ergibt verschiedene Seiten. Ich habe hiermit bzw. hiermit folgenden Barcode und QR Code erstellt, welche „https://tutorials-raspberrypi.de/“ beinhalten.

Raspberry Pi Tutorials BarcodeRaspberry Pi Tutorials QR CodeJetzt wollen wir einen oder beide dieser Codes lesen lassen. Dazu laden wir die Bilddateien zunächst auf dem Raspberry Pi herunter:

wget https://tutorials-raspberrypi.de/wp-content/uploads/barcode-tutorials-raspberrypi.de_.jpg
wget https://tutorials-raspberrypi.de/wp-content/uploads/qr-code-tutorials-raspberrypi.de_.png

Nun erstellen wir eine neue Python Datei, in der wir den Code zum Auslesen der Bilder hinein kopieren:

sudo nano barcode-scanner.py

Folgenden Inhalt fügen wir ein (falls du eine andere Datei auslesen willst, kannst du den Namen und Pfad entsprechend in Zeile 6 anpassen):

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# import packages
import cv2
from pyzbar import pyzbar
 
# define path
path = "barcode-tutorials-raspberrypi.de_.jpg"
 
# load image
image = cv2.imread(path)
# find QR and barcodes within the image
barcodes = pyzbar.decode(image)
 
for barcode in barcodes:
    print(barcode.data)

Zunächst importieren wir die benötigten Pakete. In Zeile 11 lesen wir alle QR und Barcodes aus dem Bild aus – hierbei bekommen wir ein Array zurück, das folgende Werte beinhaltet:

  • data: Der dekodierte Text, welcher sich durch den Code repräsentiert wurde.
  • type: Der Typ des Codes (z.B. CODE128 oder QRCODE).
  • rect: Ein Objekt, welches die Koordinaten des Punkt oben links (left + top) und die Breite/Höhe (width/height) angeben.
  • polygon: Array an Punkten (mit x und y-Wert), die das Polygon kennzeichnen, in dem der Code enthalten ist.

Speichere das Skript (STRG + O), schließe die Datei (STRG + X) und führe sie aus (Abbrechen mit STRG+C):

sudo python3 barcode-scanner.py

Insgesamt sehen die Daten meines Bildes so aus:

Decoded(data=b'https://tutorials-raspberrypi.de/', type='CODE128', rect=Rect(left=4, top=0, width=786, height=75), polygon=[Point(x=4, y=1), Point(x=4, y=75), Point(x=790,y=74), Point(x=790, y=0)])

Für den Anfang nicht schlecht, oder?

 

Raspberry Pi Barcode Scanner: Einbinden des Kamera-Streams

Raspberry Pi Überwachungskamera Livestream NoIR
Offizielle Raspberry Pi Kamera.

Wir haben bisher gesehen, dass das Auslesen von Barcodes mittels Raspberry Pi sehr einfach ist! Was uns jetzt noch fehlt, ist dies live (in Echtzeit) per Kamera Stream / Videoauszulesen. Dadurch können wir direkt reagieren, wenn ein bestimmter Code vor die Kamera gehalten wird. Dazu kommt, dass Echtzeit-Bilder nicht immer den perfekten Winkel etc. haben.

Sofern du eine offizielle Raspberry Pi Kamer nutzt, muss diese erst aktiviert werden. Wir rufen dafür folgenden Befehl auf:

sudo raspi-config

Unter Interfacing Options -> Camera lässt sie sich aktivieren. Danach muss neu gestartet werden.

Wir erstellen nun eine weitere neue Datei:

sudo python3 barcode-scanner-live.py

Ähnlich zur vorherigen Datei, bekommt diese folgenden Inhalt (falls du keine Raspberry Pi Kamera verwendest, so kannst du in Zeile 9 usePiCamera = False setzen):

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# import packages
import cv2
from pyzbar import pyzbar
import imutils
from imutils.video import VideoStream
import time
 
# initialize video stream and wait
vs = VideoStream( usePiCamera = True ).start()
time.sleep(2.0)
 
# loop over frames
while True:
    frame = vs.read()
    # for better performance, resize the image
    frame = imutils.resize(frame, width=400)
    # find and decode all barcodes in this frame
    barcodes = pyzbar.decode(frame)
    for barcode in barcodes:
        # do anything with that data
        print( barcode.data.decode("utf-8") )

Nachdem speichern und schließen (Strg+O, Strg+X) starten wir auch diese Datei:

sudo python3 barcode-scanner-live.py

Lasse nun die Kamera z.B. auf deinen Bildschirm oder auf einen ausgedruckten QR Code zeigen. Der dechiffrierte Text wird sofort angezeigt.

In diesem Beispiel geben wir den Text einfach nur aus, was relativ unspektakulär ist. Hier ist nun deine Kreativität gefragt, was damit angestellt werden soll. Ein paar Ideen wären folgende:

  • Öffne ein Schloss beim Zeigen eines bestimmten Codes  (mittels Relais)
  • Jeder Nutzer bekommt einen Code, mit dem er sich authentifizieren kann. Beim Scannen des QR Codes werden seine Daten nach einer Datenbankanfrage angezeigt.
  • Markiere Objekte anhand Codes und lasse diese vom Raspberry Pi erkennen.
  • Füttere deinen Twitter Bot.
  • Frage Produktdetails mittels Barcode-Datenbanken ab.
  • Versende Mails.
  • Lagerverwaltung: Speichere Informationen zur Lagerung eines Produkts mittels des Barcodes – so findest du es einfacher wieder.

Gerne kannst du weitere Ideen (idealerweise mit Skripten) in den Kommentaren posten.

 

Barcode Scanner Fazit

Der Raspberry Pi ist hervorragend als Barcode Scanner geeignet. Mittels Bibliotheken wie zlib und OpenCV lässt sich in nur wenigen Minuten ein kompletter Raspberry Pi Barcode Scanner selber bauen. Das Auslesen eines QR bzw. Barcodes kann in vielen anderen Projekten zum Einsatz kommen. Die möglichen Einsatzorte sind groß.

Außerdem ist unser Scanner enorm schnell. Das ermöglicht einen Betrieb in Echtzeit. Dazu haben wir gesehen, dass wir sowohl einzelne Bilder, als auch Videostreams mittels Python verarbeiten können.

Authentifizierung Barcode Image Processing Internet der Dinge Internet of Things IoT OpenCV opencv 3.0.0 QR Code
Teilen Facebook Twitter Pinterest LinkedIn Tumblr Email
Vorheriger BeitragRaspberry Pi and Arduino – Introduction
Nächster Beitrag Use Raspberry Pi as a Radio Receiver (FM Car Radio, Car PC)

Ähnliche Beiträge

ESP32 TDS Sensor: Wasserqualität im Smart Home messen

ESP32 pH-Sensor – Automatische pH-Messung für Pool und Hydroponik

Home Assistant auf dem Raspberry Pi – Erste Schritte

How-To: Bluetooth Verbindung Zwischen ESP32 und Raspberry Pi’s

18 Kommentare

  1. Cornelis am 14. Juli 2019 15:25

    Dank dafür, ist sehr gut an zu wenden für usere mäh robotter

    Antworten
  2. Norbert am 15. Juli 2019 13:12

    auf einem neuen 2019-06-20-raspian-buster.img führe ich den Befehl „sudo pip3 install opencv-python pyzbar imutils“ aus und erhalte „Could not find a version that satisfies the requirement opencv-python (from versions: )
    No matching distribution found for opencv-python“
    Was muss ich tun?

    Antworten
  3. Otto Choquet am 20. Juli 2019 12:09

    Hallo,

    Super Erklärung und genau das was ich suche. Ich habe gerade ein Projekt laufen (allerdings in der Windows-Welt) bei dem diese Anleitung mir weiterhelfen könnte. Allerdings bräuchte ich die Ausgabe des Barcodewertes als „Tastatureingabe“ für den PC. Gibt es eine Möglichkeit den Raspberry quasi als HID für einen Windows-PC zu nutzen? Der sich vielleicht nicht direkt erschließende Sinn hinter der Frage ist folgender. Ich nutze für ein bestehendes Erfassungstool aktuell Barcodescanner (Bluetooth und kabelgebunden). Der Wunsch ist nun quasi wie eine Supermarktkasse einen fest installierten Scanner zu nutzen, der einfach den Barcodewert an den PC übermittelt. Dafür wäre das oben beschriebene Projekt super.

    Antworten
    • wesp am 12. April 2021 9:28

      googel mal nach „inputstick“

      Antworten
  4. Frank am 26. August 2019 16:57

    Hallo, super Tutorial und genau das was ich gesucht habe.
    Leider bekomme ich immer einen Fehler wenn ich die barcode-scanner.py ausprobieren will.
    Alles hat installiert was fehlt hier? Irgendwie bin ich ratlos. liblmath finde ich auch gar nicht im pip3
    sudo python3 barcode-scanner.py
    Traceback (most recent call last):
    File „barcode-scanner.py“, line 2, in
    import cv2
    File „/usr/local/lib/python3.5/dist-packages/cv2/__init__.py“, line 3, in
    from .cv2 import *
    ImportError: libImath-2_2.so.12: cannot open shared object file: No such file or directory

    Ich habe hier noch was dazu gefunden: https://github.com/Homebrew/homebrew-science/issues/2209 das könnte auf ein Problem im opencv hindeuten.
    Welche Versionen hast du eigentlich per pip installiert?

    Antworten
  5. Frank am 26. August 2019 17:09

    Hallo, es geht noch weiter:
    https://github.com/EdjeElectronics/TensorFlow-Object-Detection-on-the-Raspberry-Pi/issues/18
    Wenn ich die Pakete nachziehe geht zwar der eine Error kommt aber ein anderer:
    sudo aptitude install libilmbase-dev
    sudo aptitude install libopenexr-dev
    sudo aptitude install libgstreamer1.0-dev

    python3.5
    Python 3.5.3 (default, Sep 27 2018, 17:25:39)
    [GCC 6.3.0 20170516] on linux
    Type „help“, „copyright“, „credits“ or „license“ for more information.
    >>> import cv2
    ImportError: numpy.core.multiarray failed to import
    Traceback (most recent call last):
    File „“, line 1, in
    File „/usr/local/lib/python3.5/dist-packages/cv2/__init__.py“, line 3, in
    from .cv2 import *
    ImportError: numpy.core.multiarray failed to import

    Kann das jemand nachvollziehen, oder hat den selben Fehler /das gleiche Problem?

    Antworten
  6. Frank am 26. August 2019 17:17

    So Leute ich habs:
    https://jaredrhodes.com/2019/07/22/numpy-core-_multiarray_umath-cpython-35m-arm-linux-gnueabihf-so-undefined-symbol-cblas_sgemm-raspberry-pi/
    Also alles raus und das raspi-numpy installiert
    sudo pip3 uninstall numpy
    sudo apt-get install python3-numpy
    dann funktionierts:
    sudo python3 barcode-scanner.py
    b’https://tutorials-raspberrypi.de/‘

    Antworten
  7. Frank am 27. August 2019 14:19

    Hier noch der Rest der zum Stream scannen benötigt wird.
    https://cvisiondemy.com/barcode-reader-with-python-opencv-and-pyzbar/
    Die DISPLAY Variable lenkt man vorher auf den eigenen Rechner um (xhost +) nicht vergessen und dann öffnet (wenn man keine Oberfläche auf dem pi hat) ein lokales xwindows Fenster und ich seh direkt den Code der gescannt wird.

    Antworten
    • josh12 am 3. November 2019 9:29

      Wie hast du das implementiert?! Kannst du mir bitte auf die Sprünge helfen.

      Antworten
  8. Jon11 am 2. November 2019 12:56

    Bei mir kommt bei

    „sudo pip3 install opencv-python pyzbar imutils“ folgendes: „sudo: pip3: Befehl nicht gefunden“

    Was kann ich tun?

    Antworten
    • Felix am 2. November 2019 12:58

      sudo apt-get update
      sudo apt-get -y install python3-pip

      Antworten
  9. hodor21 am 2. November 2019 18:33

    Beim ersten Test mit den Matrizen wird mir nur folgendes ausgegeben:

    b’https://tutorials-raspberrypi.de/‘

    was kann ich machen, damit mir der decodierte Text angezeigt wird?

    Antworten
  10. Andreas am 6. Dezember 2019 19:05

    Hallo, ich suche eine Anwendung, die einfach nur die bewegten Bilder einer (USB-) Kamera auf dem Bildschirm anzeigt. Kann jemand helfen? Vielen Dank im Voraus

    Antworten
  11. Ruben am 31. Dezember 2019 10:58

    Hi,
    Ich möchte bei mir ein simples Lagerverwaltungssystem aufbauen. Finde aber kein gutes Turtorial dazu (habe noch keine grossen Erfahrungen mit Raspberry). Kann mir da jemand weiterhelfen?
    Es geht mir rein um das anlegen der Datenbank, sowie deren Verwaltung. Das Scannen der Produkte wurde hier ja bestens erklärt 🙂

    Antworten
  12. Netsy am 21. Juli 2020 22:35

    You will need to start like this:

    LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1.2.0 thonny

    To not run into issues with import cv2 and the error undefined symbol: __atomic_fetch_add_8
    I did try to compile from opencv both ways, but with no luck to get it working.

    Antworten
  13. Alex am 28. Juli 2020 11:42

    Wäre es vielleicht möglich mal konkret dieses Tutorial zu aktualisieren , irgendwie komme ich auf keinen Nenner . Vielen Dank wenn sich dies jemand annehmen würde.

    Antworten
  14. Harald Roth am 9. August 2021 10:59

    Auch nach Neuinstallation von Numby kommt immer noch der gleiche Fehler.

    sudo python3 barcode-scanner.py
    Traceback (most recent call last):
    File „barcode-scanner.py“, line 2, in
    import cv2
    File „/usr/local/lib/python3.7/dist-packages/cv2/__init__.py“, line 5, in
    from .cv2 import *
    ImportError: libgtk-3.so.0: cannot open shared object file: No such file or directory

    Kann mir da bitte einer helfen?

    Antworten
  15. Lucas am 14. Dezember 2021 11:48

    Hallo,

    ich versuche mich zur Zeit an dem Code oben mit Einbindung der Kamera. Ich habe die oben genannten Installationen durchgeführt, bekomme jedoch bei folgender Installation diese Meldung:

    sudo apt-get install libcblas-dev libhdf5-dev libhdf5-serial-dev libatlas-base-dev libjasper-dev libqtgui4 libqt4-test
    Paketlisten werden gelesen… Fertig
    Abhängigkeitsbaum wird aufgebaut.
    Statusinformationen werden eingelesen…. Fertig
    Hinweis: »libhdf5-dev« wird an Stelle von »libhdf5-serial-dev« gewählt.
    Paket libcblas-dev ist nicht verfügbar, wird aber von einem anderen Paket
    referenziert. Das kann heißen, dass das Paket fehlt, dass es abgelöst
    wurde oder nur aus einer anderen Quelle verfügbar ist.
    Doch die folgenden Pakete ersetzen es:
    libatlas-base-dev

    E: Für Paket »libcblas-dev« existiert kein Installationskandidat.

    Wenn ich nun einen QR-Code scanne erhalte ich nicht den gewünschten Output.

    Liegt das an der Meldung oder hat das einen anderen Grund? Ich würde mich freuen, wenn mir wer weiterhelfen kann.
    Danke im Voraus.

    MfG
    Lucas

    Antworten

Hinterlasse einen Kommentar Antwort abbrechen

Raspberry Pi Webserver Installation Teil 5 – FTP Server

Arduino und Raspberry Pi miteinander kommunizieren lassen

Raspberry Pi Pico: Programmieren mit dem günstigen Mikrocontroller

Rotation und Beschleunigung mit dem Raspberry Pi messen

Raspberry Pi GSM Modul – Mobiles Internet (LTE, 3G, UMTS)

Raspberry Pi: Relais-Schalter per GPIO steuern

Blog abonnieren

Abboniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!

Tutorials for Raspberry Pi
Facebook Twitter YouTube
  • Kontakt & Impressum
  • Unterstützen
  • Datenschutz

Tippe den Suchbegriff oben ein und drücke Enter, um danach zu suchen. Drücke Esc, um abzubrechen.