RFID-basierte Lagerort-Ortung für Raspberry Pi, Arduino & Komponenten
Komponenten
| Bauteil | Menge |
|---|---|
| Raspberry Pi 2 Model B | 1 |
| Arduino UNO | 1 |
| JT2850 UHF RFID Reader Modul | 1 |
| JT606 UHF RFID Antenne | 1 |
Werkzeuge
- Windows 10 PC mit Visual Studio 2015
- Android-Smartphone
Software & Cloud
- Windows 10 IoT Core (auf Pi)
- Microsoft Azure (Web App, SQL Database, Notification Hub)
- Visual Studio 2015
Projektidee
Wer kennt es nicht: Man sucht ein Bauteil ewig und findet es nicht. Mit UHF-RFID lässt sich jedes Teil per Tag eindeutig identifizieren und lokalisieren. Mehrere RFID-Reader im Haus (je Raum einer) melden gefundene Tags an ein zentrales System. Per Smartphone-App sucht man nach einem Artikel und erhält sofort den Raum, in dem er liegt.
Systemarchitektur
- Registrierung: Neues Teil → RFID-Tag aufkleben → Artikeldaten + Tag-ID in Azure SQL DB speichern (via Web API).
- Suche: App sendet Suchanfrage an Pi (WLAN).
- Abfrage: Pi fordert alle angeschlossenen Arduinos auf, ihre Reader abzufragen.
- Antwort: Reader, der Tag detektiert, sendet Tag-ID + Reader-Standort (Raum) zurück.
- Anzeige: Pi verarbeitet Ergebnis, sendet Raum an App.
Entwicklungsumgebung einrichten (Windows 10 IoT Core)
- Pi 2 per Netzwerkkabel mit PC verbinden → IoT Core Watcher zeigt IP-Adresse.
- Visual Studio 2015: Neues Projekt → „Background Application (IoT)“ (C#).
- Debug-Einstellungen: Platform ARM, Target Remote Machine, IP aus Watcher, Authentifizierung aus.
- Code in
StartupTask.csschreiben, Remote Debugging starten.
Azure Web API erstellen (ASP.NET MVC, Entity Framework)
- ASP.NET Web Application → MVC, No Auth, „Host in the cloud“ (Azure Free Trial).
- Entity Framework per NuGet installieren.
- Modellklasse
MyThing(Id, Status, RFID, Image, Name, Type, Location, Timestamps). - Scaffolded Web API 2 Controller mit EF → CRUD-Endpunkte (GET, POST, PUT, DELETE).
- Migrationen:
Enable-Migrations,Add-Migration Initial,Update-Database. - In Azure Web App veröffentlichen (Publish-Profil, Connection Strings, Code First Migration).
- Testen z. B. mit „Advanced REST Client“ (Chrome).
Windows Universal App (Client)
- Universal Windows Project in VS2015 anlegen.
- XAML/CS aus GitHub-Repo übernehmen.
- Debugging lokal (x64) oder auf Pi (ARM).
- Push-Benachrichtigungen via Azure Notification Hub: Bei neuem Tag Toast anzeigen, App öffnet Eintragsformular.
Arduino-Code (RFID-Reader Abfrage)
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
Serial.begin(9600);
while (!Serial);
mySerial.begin(9600);
}
void loop() {
if (mySerial.available()) {
// Read-Command an JT2850 senden
byte cmd[] = {0xA0,0x06,0x80,0x00,0x01,0x02,0x01,0xD6};
mySerial.write(cmd, sizeof(cmd));
// Antwort an Pi weiterleiten
if (Serial.available()) Serial.write(mySerial.read());
}
}
Quellcode & Ressourcen
- Gesamtes Projekt (Pi, Arduino, Azure, App): GitHub
- Fritzing-Schaltplan: Arduino ↔ JT2850 (SoftwareSerial Pins 10/11)
- CAD:
uhf_reader_jt2850.svg(Reader-Modul)
Weiterführende Links
- Windows 10 IoT Core Setup: MS-IoT Guide
- Azure Notification Hubs: Tutorial
- Entity Framework Migrations: MSDN
Herstellungsprozess
- Microsoft Azure Cheat Sheet 2020 – Der definitive Guide zu Azure Services & Architektur
- FDM-3D-Druck heute: Status Quo, Meilensteine & Zukunftsausblick
- Den Edge definieren: Wo Edge Computing wirklich stattfindet
- Industrie 4.0 heute: Aktuelle Landschaft und Ausblick 2017
- 4 fortschrittliche Alternativen zu Passiv-RFID für präzises Asset-Tracking
- Integriertes QR-, RFID- und Temperatur-Verifikations-Zugangskontrollsystem
- Ursprung der Metalle: Von Sternen zur Industrie
- Den richtigen Entwicklungsstandort wählen: Makerspaces, Acceleratoren, Fertigungspartner
- Ursprünge des Sägekonzepts: Von antiken Werkzeugen zu modernen Maschinen
- Wo Druckluft alltägliche Prozesse antreibt