{"id":265,"date":"2021-05-28T12:37:04","date_gmt":"2021-05-28T10:37:04","guid":{"rendered":"https:\/\/www.iot-embedded.de\/iot-2021\/?p=265"},"modified":"2021-05-28T13:35:56","modified_gmt":"2021-05-28T11:35:56","slug":"anbindung-raspberry-pi-an-einen-rfid-scanner","status":"publish","type":"post","link":"https:\/\/www.iot-embedded.de\/iot-2021\/beverage-monitoring\/anbindung-raspberry-pi-an-einen-rfid-scanner\/","title":{"rendered":"Anbindung Raspberry PI an einen RFID Scanner"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>Damit der smarte Bierdeckel das auf ihm stehende Getr\u00e4nk identifizieren kann, werden die Gl\u00e4ser mit zuvor beschriebenen RFID Sticker beklebt. Da jedes Glas in der Gastronomie theoretisch mit jedem Getr\u00e4nk gef\u00fcllt werden kann, wird vor Ausgabe des Getr\u00e4nkes auf jeden RFID Chip die entsprechende Information aufgespielt. Beispielhaft f\u00fcr ein Weizenbier w\u00e4re dies: \u201eWeizen 0,5l\u201c. Hierzu wird die Verbindung zu dem RFID Scanner (RC522) ben\u00f6tigt, welche nachfolgend beschrieben wird.<\/p>\n\n\n\n<p>Dieser Chip kann von dem im Bierdeckel verbauten Mikrocontroller ESP8266 ausgelesen und der prozentuelle F\u00fcllstand des Glases berechnet werden. Diese Anbindung wird in einem separaten Blogeintrag behandelt.<\/p>\n\n\n\n<p><strong>Verbindung mit dem Raspberry Pi 4:<\/strong><\/p>\n\n\n\n<p>Die Verbindung erfolgt \u00fcber die GPIO-Pins der Raspberry PIs. Das Pinlayout wird in der Anleitung aufgef\u00fchrt und kann genauso \u00fcbernommen werden. Die Verbindung erfolgt \u00fcber die sogenannten Jumperkabel.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/PI-RFID.png\" alt=\"\" class=\"wp-image-266\" width=\"612\" height=\"459\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/PI-RFID.png 964w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/PI-RFID-300x225.png 300w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/PI-RFID-768x576.png 768w\" sizes=\"(max-width: 612px) 100vw, 612px\" \/><\/figure><\/div>\n\n\n\n<p><strong>Codebeispiel mit Python:<\/strong><\/p>\n\n\n\n<p>Nach der Verbindung muss zun\u00e4chst einmal das SPI-Protokoll des PIs eingeschalten und der PI neugestartet (! -&gt; meine erste Fehlerquelle \ud83d\ude0a) werden.<\/p>\n\n\n\n<p>Anschlie\u00dfend m\u00fcssen mit Pip3 (einem Verwaltungssystem von Bibliotheken) die Bibliotheken <em>SpiDev<\/em> und <em>MFRC522<\/em> (spezifisch f\u00fcr das verwendete Board) installiert werden.&nbsp;<\/p>\n\n\n\n<p>Daraufhin k\u00f6nnen mit einem sehr simplen Pythonskript \u00fcber die Methoden read() und write() die Werte des RFID-Stickers ausgelesen und beschrieben werden. Insgesamt ist das Vorgehen recht selbsterkl\u00e4rend und einfach in Projekte integrierbar.<\/p>\n\n\n\n<p>Zun\u00e4chst werden hierzu die beiden Bibliotheken RPiO und MFRC \u00fcber einen Import eingebunden. Anschlie\u00dfend wird \u00fcber einen Konstruktor die Konfiguration des RFID-Scanners geladen.<\/p>\n\n\n\n<p>Nach diesem Schritt kann das Skript ausgef\u00fchrt werden und erf\u00fcllt dabei seine Funktion. Die Beschreibung ist in Form eines Strings m\u00f6glich, wodurch dieser Schritt sehr einfach umzusetzen ist.<\/p>\n\n\n\n<p>F\u00fcr den weiteren Projektverlauf ist es aus Gr\u00fcnden des Bedienungskomforts geplant, die Beschreibung der RFID-Sticker \u00fcber eine Webschnittstelle umzusetzen, welche den zugrundeliegenden Pythoncode aufruft.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"366\" height=\"367\" src=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/grafik-1.png\" alt=\"\" class=\"wp-image-268\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/grafik-1.png 366w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/grafik-1-300x300.png 300w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/grafik-1-150x150.png 150w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/grafik-1-270x270.png 270w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/grafik-1-230x230.png 230w\" sizes=\"(max-width: 366px) 100vw, 366px\" \/><figcaption>Python Programmcode<\/figcaption><\/figure><\/div>\n\n\n\n<p><strong><u>Alternatives Vorgehen:<\/u><\/strong><\/p>\n\n\n\n<p>Falls das Beschreiben des RFID-Sticker nicht m\u00f6glich gewesen w\u00e4re, h\u00e4tten die auf den Stickern hinterlegten Informationen zur Bestimmung des Getr\u00e4nks benutzt werden k\u00f6nnen.<\/p>\n\n\n\n<p>Diese w\u00e4ren in einer Datenbanktabelle mit einem Getr\u00e4nk z.B. \u201eWeizen 0,5l\u201c verkn\u00fcpft worden. Der ESP8266 h\u00e4tte die Informationen via MQTT an das Backend (Raspberry PI) versendet, wo sie f\u00fcr Auswertungen weiterverwendet w\u00fcrden.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Damit der smarte Bierdeckel das auf ihm stehende Getr\u00e4nk identifizieren kann, werden die Gl\u00e4ser mit zuvor beschriebenen RFID Sticker beklebt. Da jedes Glas in der Gastronomie theoretisch mit jedem Getr\u00e4nk gef\u00fcllt werden kann, wird vor Ausgabe des Getr\u00e4nkes auf jeden<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[],"_links":{"self":[{"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/posts\/265"}],"collection":[{"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/comments?post=265"}],"version-history":[{"count":2,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/posts\/265\/revisions"}],"predecessor-version":[{"id":270,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/posts\/265\/revisions\/270"}],"wp:attachment":[{"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/media?parent=265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/categories?post=265"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/tags?post=265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}