Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Wo ist mein Ding?

Komponenten und Verbrauchsmaterialien

Raspberry Pi 2 Model B
× 1
Arduino UNO
× 1
JT2850 RFID-Modul
× 1
JT606 RFID-Antenne
× 1

Notwendige Werkzeuge und Maschinen

Microsoft-PC mit Windows10 und installiertem Visual Studio 2015
Android-Telefon

Apps und Onlinedienste

Microsoft Windows 10 IoT Core
Microsoft Azure
Microsoft Visual Studio 2015

Über dieses Projekt

Hintergrund

Geraten Sie manchmal in eine Situation, in der Sie versuchen, etwas zu suchen, aber sehr lange danach suchen und es immer noch nicht finden können? Durch die Nutzung der RFID-Technologie, die Verwendung von RFID-Lesegeräten und mehreren am Artikel angebrachten RFID-Tags können wir den von uns gelagerten Artikel leicht lokalisieren. Immer wenn wir einen neuen Artikel gekauft haben, kleben Sie einfach einen RFID-Tag darauf und registrieren Sie die Artikeldetails im System. Wenn wir den Gegenstand suchen müssen, uns aber nicht mehr erinnern können, wo er sich befindet, führen Sie einfach eine Suche in der mobilen Anwendung durch und Sie wissen, in welchem ​​​​Raum Ihres Hauses es sich derzeit befindet.

Die ganze Idee

Die Komponenten dieses Projekts bestehen aus einem UHF-RFID-Lesemodul, einer UHF-RFID-Antenne, einem Arduino UNO, einem Raspberry Pi2 mit Windows10 IoT-Kern (Sie können sich hier beziehen http://ms-iot.github.io/content/en -US/GetStarted.htm, wenn Sie nicht sicher sind, wie Sie Windows10 IoT Core installieren sollen), eine mobile Anwendung und einen Azure-Webdienst für die Datenspeicherung. Es wird mehrere UHF-RFID-Module im Haus geben, und jedes UHF-RFID-Modul wird mit Arduino UNO verbunden, wobei Arduino dann mit Raspberry Pi2 verbunden wird. Immer wenn ein Artikel vom System verfolgt werden soll, wird ein RFID-Tag angebracht. Die Details des Artikels und der RFID-Wert sind für die Registrierung im System erforderlich. Die Daten jedes Datensatzes werden über die Azure-Web-API in der Azure SQL-Datenbank gespeichert. Immer wenn der Benutzer zu Hause nach einem Artikel sucht, aber nicht sicher ist, ob sich der Artikel in welchem ​​Zimmer seines Hauses befindet. Er/sie kann seine mobile Anwendung einschalten. Die mobile Anwendung sendet die Suchanfrage über das Wifi-Netzwerk an Raspberry Pi2. Sobald Raspberry Pi2 die Suchanfrage erhalten hat, wird die Anfrage an alle damit verbundenen Arduino Uno gesendet. Arduino UNO sendet einen Lesebefehl an das UHF-RFID-Modul. Sobald es einem der UHF-RFID-Lesegeräte an einem anderen Standort gelingt, die erforderliche RFID zu erfassen, wird ein Wert an Arduino UNO zurückgegeben. Arduino UNO gibt den Standort des RFID-Lesegeräts an Raspberry Pi2 zurück und RaspberryPi2 verarbeitet das Suchergebnis weiter und kehrt zur mobilen Anwendung zurück.
wenn du

Wie geht's?

Ich werde eine Hintergrund-App entwickeln, die auf dem Windows 10 IoT-Kern ausgeführt wird. Möglicherweise müssen wir die IP-Adresse von Raspberry Pi 2 kennen. Ein Display ist nicht erforderlich. Dank des allmächtigen Windows IoT Core Watcher. Sie müssen lediglich Ihr Raspberry Pi2 Modell B wie unten gezeigt anschließen:

Durch die Verbindung von PC und Raspberry PI2 über ein Netzwerkkabel kann Ihnen der allmächtige Windows IoT Core Watcher die IP-Adresse Ihres Raspberry Pi2 mitteilen:

Erstellen Sie ein Projekt in Visual Studio 2015

Dann können Sie mit der Entwicklung mit Visual Studio 2015 beginnen. Laden Sie einfach die Codes herunter, die ich hier freigegeben habe, und führen Sie sie mit Visual Studio 2015 aus.

Laden Sie den Code von github herunter und Sie können das Projekt direkt ausführen. Wenn Sie versuchen, ein neues Projekt zu erstellen, können Sie es folgendermaßen versuchen:

1. Gehen Sie zu Datei -> Neu -> Projekt

2. Suchen Sie unter Visual C#-Vorlagen nach "Hintergrundanwendung (IoT)". Geben Sie Ihren Projektnamen ein Ihr Projekt wird erstellt.

3. Nachdem das Projekt erstellt wurde, müssen Sie als Nächstes die Debug-Einstellungen konfigurieren. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie "Eigenschaften"

4. Klicken Sie im Eigenschaftenfenster des Projekts auf die Registerkarte Debug und nehmen Sie die folgende Einstellung vor:

  1. Plattform:ARM
  2. Zielgerät:Remote-Computer
  3. Remote-Computer:
  4. Deaktiviere "Authentifizierung verwenden"

Speichern Sie die Konfiguration und Sie können jetzt mit der Codierung in die Datei StartupTask.cs in Ihrem neu erstellten Projekt beginnen.


Debuggen in Visual Studio 2015

Nachdem Sie die Codierung abgeschlossen haben und mit dem Debuggen beginnen möchten, können Sie die folgenden Schritte und Screenshots ausführen:

1. Klicken Sie auf die graue Leiste auf der linken Seite, um einen Breakpoint an der Codezeile zu setzen, die untersucht werden soll:

2. Klicken Sie als nächstes auf die grüne Schaltfläche "Remote-Computer", um das Debugging zu starten:

3. Nach dem Aufrufen des Debug-Modus ändert sich die grüne Schaltfläche "Remote Machine" in "Weiter" und gleichzeitig werden die Schrittschaltflächen aktiviert:

  • Weiter – Nächste Aussage anzeigen
  • Eintreten – Treten Sie in die Funktion ein und sehen Sie sich die Codes in der Funktion an
  • Überschreiten – Überschreiten Sie die aktuelle Zeile und sehen Sie sich die nächste Codezeile an
  • Step Out – Beenden Sie die Funktion und fahren Sie mit dem Debuggen mit dem vorherigen Code fort.


Schaltfläche "Weiter" mit "Weiter", "Eintreten", "Übertreten" und "Aussteigen"

Während Sie Debug ausführen, können Sie entweder den Mauszeiger bewegen, um einen bestimmten Wert der Variablen zu überprüfen, oder markieren und mit der rechten Maustaste auf die Variable klicken und "Überwachung hinzufügen" auswählen, um die Variable zur Überwachungsliste hinzuzufügen:

Erstellen Sie eine Web-API in Azure, um IoT- und mobile App-Transaktionen bereitzustellen

Asp.NET-Webanwendungsprojekt erstellen

1. Erstellen Sie eine ASP.NET-Webanwendung, geben Sie den Projektnamen ein und klicken Sie unten auf die Schaltfläche OK

2. Klicken Sie auf dem nächsten Bildschirm auf MVC auswählen unter ASP.NET 4.5.2-Vorlage (wenn Sie abenteuerlustig sind, können Sie die ASP.NET 5-Vorschauvorlage mit MVC6-Framework ausprobieren. Der Schritt ist der gleiche)

3. Stellen Sie als nächstes die Authentifizierungsmethode auf "Keine Authentifizierung"

4. Beachten Sie auch, dass Sie die Option "In der Cloud hosten" wie unten gezeigt aktivieren können, wenn Sie diese Web-API auf einem Cloud-Server hosten möchten:

Wenn Sie kein Microsoft Azure-Konto haben, können Sie sich für eine kostenlose Testversion anmelden und ein kostenloses Guthaben von 200 USD erhalten. Klicken Sie einfach hier:  https://azure.microsoft.com/en-us/pricing/free-trial/

5. Wenn Sie Ihre Web-API in der Azure Web App hosten möchten, müssen Sie sich nach dem Klicken auf „OK“ auf dem nächsten Bildschirm bei Microsoft Azure anmelden.

6. Sobald Sie sich erfolgreich angemeldet haben, geben Sie einfach Ihren Web-App-Namen und die nachfolgenden Details ein, wie im Formular angezeigt:

Nachdem Sie alle Informationen eingegeben haben, klicken Sie auf OK und warten Sie eine Weile, bis VS2015 eine Web-App und eine Datenbank in Ihrem Azure-Konto erstellt hat.


Nachdem sowohl die lokale als auch die Cloud-Web-App erfolgreich erstellt wurden, möchten Sie wahrscheinlich als Nächstes eine Datenbank für Ihre App erstellen. Dank des Entity-Frameworks auf MVC können wir jetzt mit wenigen einfachen Schritten unsere Datenbank für unsere Web-App einrichten.

Entity Framework verwenden

Ich werde die NuGet Package Manager Console für die Installation verwenden. Zuerst müssen Sie Ihren Nuget Package Manager wie folgt starten:Tools->Nuget Package Manager->Package Manager Console

2. Geben Sie als Nächstes den Befehl "Install-Package EntityFramework" in Ihre Paketmanager-Konsole unten ein:

3. Als nächstes müssen Sie eine Model-Klasse erstellen, um Ihre Datenbanktabelle und -felder zu beschreiben. Klicken Sie einfach mit der rechten Maustaste auf den Modellordner und klicken Sie auf "Hinzufügen"->"Klasse.."

Sobald die neue Klasse erstellt wurde, fügen Sie die folgenden Zeilen hinzu:

mit System.ComponentModel.DataAnnotations;

mit System.ComponentModel.DataAnnotations.Schema;

Nach der Erstellung der Modellklasse besteht der nächste Schritt darin, Ihre WebAPI-Controller zusammen mit der Aktion mithilfe des Entity-Frameworks zu erstellen. Folgen Sie dem Druckbildschirm unten, klicken Sie mit der rechten Maustaste auf den Controller-Ordner und wählen Sie "Hinzufügen" -> "Neues Gerüstelement":

Wählen Sie "Web API 2 Controller with Actions, using Entity Framework" in der Kategorie Web API auf dem nächsten Bildschirm aus:

Nachdem Sie auf die Schaltfläche "Hinzufügen" geklickt haben, wird der folgende Bildschirm angezeigt:


Klicken Sie auf das '+ ' im Feld Datenkontextklasse, um eine neue Datenkontextklasse zu erstellen:

Klicken Sie im nächsten Bildschirm auf Hinzufügen, um Folgendes zu erstellen:

Sobald alle Felder ausgefüllt sind, klicken Sie auf "Hinzufügen", um das Gerüstelement zu generieren:

Nach erfolgreich generiertem Gerüstelement können Sie sehen, wie die Controller- und Datenkontextklasse in den Controller-Ordner und den Models-Ordner abgelegt wird:

Führen Sie als Nächstes die Enable-Migrations aus Befehl in der Paketmanager-Konsole:

Nach Enable-Migrationen Befehl, gefolgt von Add-Migration Befehl:

Endlich Datenbank aktualisieren -Befehl erstellt eine Datenbankbasis auf dem von Models generierten Migrationsskript. Die neu erstellte Datenbank finden Sie unter Add_Data Tabelle:

Veröffentlichen Sie Ihre WEB-API

Sobald die Datenbank erfolgreich eingerichtet wurde, gilt die Web-API als abgeschlossen (der Gerüst-Controller generiert die Grundfunktion für den RESTful-Aufruf). Nur um sicherzustellen, dass die Funktionen GetMything(GET), PostMything(POST),  PutMything(PUT) und Deletemything(DELETE) in MyThingsController vorhanden sind.

Sobald das Web-API-Projekt abgeschlossen ist. Als Nächstes können Sie die Web-API mit den folgenden Schritten in der Azure Web APP veröffentlichen:


1. Wählen Sie Build-Menü> MyThingAPI veröffentlichen wie im folgenden Screenshot.:

2. Das folgende Popup-Fenster wird angezeigt und ermöglicht Ihnen die Auswahl eines Veröffentlichungsziels. Sie können Microsoft Azure API Apps (Preview) auswählen, wenn Sie die ASP.NET5 MVC 6-Vorlage für Ihre Web-API verwenden:

3. Nachdem Sie auf Microsoft Azure Web Apps geklickt haben, wird der folgende Bildschirm angezeigt, in dem Sie sich bei Ihrem Azure-Konto anmelden müssen:

Geben Sie Ihre Azure-Anmeldeinformationen ein und melden Sie sich an:

4. Nach erfolgreicher Anmeldung können Sie Ihre vorhandene, in Azure gehostete Web-App abrufen (sie sollte zuvor beim Erstellen dieses Projekts in VS2015 erstellt werden):

5. Sobald Web-Apps ausgewählt und auf "OK" geklickt wurde, wird der folgende Bildschirm angezeigt:

Die Verbindungseinstellung wird propoliert, klicken Sie einfach auf Weiter, um fortzufahren

6. Auf der Registerkarte "Einstellungen" sehen Sie die Datenbankverbindungszeichenfolge, andere Informationen werden automatisch ausgefüllt, aber stellen Sie sicher, dass beide Kontrollkästchen "Diese Verbindungszeichenfolge zur Laufzeit verwenden" und "Code First Migration ausführen" aktiviert sind:

6. Sobald alle Einstellungen ausgefüllt sind, klicken Sie auf Veröffentlichen und Visual Studio startet die Azure-Web-App sofort nach erfolgreicher Veröffentlichung:

Sobald die Web-API veröffentlicht wurde, können Sie die REST-API testen. Ich verwende die Chrome-Erweiterung "Advance REST Client" zum Testen:

Sie können den folgenden Json-String für den POST-Aufruf ausprobieren:

{

id:1,

Status:"0",

rfid:"1009622005390623",

Bild:"",

name:"irgendein Werkzeug",

Typ:"Werkzeug",

Ort:"Schlafzimmer",

erstellt am:"2015-10-13T10:26:01.14",

lastUpdatedAt:"2015-10-13T10:26:01.14"

}


Universelle Windows-App erstellen

Da die Iot-Hintergrund-App und die REST-API bereit sind, müssen Sie als Nächstes eine universelle Windows-App als Client erstellen. Universal App ermöglicht es uns, einen Codesatz für mehrere Geräte zu verwenden. Als Beispiel erstelle ich hier eine Universal App für Tablet (Sie können einfach die Layout-Einstellung für Handy oder Laptop ändern).

Um eine universelle App zu erstellen, klicken Sie einfach in Ihrem Visual Studio 2015 auf Datei>Neu>Projekt und wählen Sie dann die universelle App wie folgt aus:

Nachdem Sie eine neue Lösung erstellt haben, können Sie die cs-Skripts und .xaml-Dateien durch MyThingApp ersetzen, die ich in GitHub geteilt habe.

Debugging in der universellen Windows-App:

Die universelle Windows-App bietet verschiedene Debugkonfigurationen, darunter ARM-, x64- und x86-Plattformen. Wenn Sie Debugging auf Ihrem lokalen PC ausführen, auf dem Windows 64-Bit ausgeführt wird, müssen Sie x64 auswählen und auf die grüne Schaltfläche klicken (Wählen Sie "Lokaler Computer")

Wenn Ihre App fehlerfrei läuft, sollte sie in etwa so aussehen:

Benachrichtigungs-Hub und UWP-Push-Benachrichtigung einrichten


1. Sobald Web API und Universal App fertig sind, können Sie sich hier anmelden

https://dev.windows.com/en-us/dashboard/Application/New, um einen App-Namen zu reservieren.

2. Nachdem der App-Name erstellt wurde, gehen Sie zurück zu MyThingApp und klicken Sie mit der rechten Maustaste auf Ihr Projekt. Wählen Sie Store>App mit dem Store verknüpfen

zur Erstellung eines Notification Hubs finden Sie hier:

https://azure.microsoft.com/en-us/documentation/articles/notification-hubs-windows-store-dotnet-get-started 

3. Fügen Sie als nächstes die folgende Funktion zu App.xaml.cs hinzu

privat async void InitNotificationsAsync()

{

var channel =wait PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

var hub =new NotificationHub("notification", "Endpoint=sb://smartwardrobe.servicebus.windows.net/;SharedAccessKeyName=DefaultListenSharedAccessSignature;SharedAccessKey=MlHoVfn1Ub/c2ThUha+Crn7hHSGmqofrW3c="J6IK89Ok);

var result =wait hub.RegisterNativeAsync(channel.Uri);

}

Rufen Sie diese neue Funktion auch innerhalb der OnLaunched-Funktion auf:

geschützte Überschreibung void OnLaunched(LaunchActivatedEventArgs e)

{

InitNotificationsAsync();

Fügen Sie schließlich diese Codezeile in MainPage.cs hinzu, MainPage()-Funktion:

this.NavigationCacheMode =NavigationCacheMode.Required;

4. Richten Sie abschließend eine Threading-Aufgabe in MyThing Web API> MyThingController mit den folgenden Codes ein:

öffentliche Klasse NotificationClass {

internes asynchrones System.Threading.Tasks.Task SendNotificationAsync(string rfid)

{

NotificationHubClient-Hub =NotificationHubClient

.CreateClientFromConnectionString("", "");

var toast =@"Neues Mything muss update";///MainPage.xaml?value=test

wait hub.SendWindowsNativeNotificationAsync(toast);

null zurückgeben;

}

}

und die folgenden Codes bei erfolgreicher Erstellung eines neuen Datensatzes:

NotificationClass notClass =new NotificationClass();

Thread notificationThread =new Thread(async x => { await notClass.SendNotificationAsync(myThing.rfid); });

notificationThread.Start();

5. Nach erfolgreicher Einrichtung wird eine Toast-Benachrichtigung wie unten bei erfolgreich erstelltem Datensatz empfangen:

6. Klicken Sie auf die Benachrichtigung und es wird MyThingApp gestartet, die auf Ihrem PC installiert ist:

auf "OK" geklickt und Sie sehen, dass das neue RFID dem Eingabeformular hinzugefügt wird. Füllen Sie die restlichen Informationen aus und aktualisieren Sie sie.



REFERENZLINKS:

1.Schritt-für-Schritt-Anleitung zum Einrichten von Windows10 Iot Core:- http://ms-iot.github.io/content/en-US/GetStarted.htm

2. Einrichten von Visual Studio 2015 auf Ihrem PC:- http://ms-iot.github.io/content/en-US/win10/SetupPCRPI.htm

3.Schritt-für-Schritt-Anleitung zum Einrichten von Windows10 IoT Core auf Raspberry Pi2:- http://ms-iot.github.io/content/en-US/win10/SetupRPI.htm

4. So entwickeln Sie eine IoT-Anwendung (Blinky-Beispiel):- http://ms-iot.github.io/content/en-US/win10/samples/Blinky.htm

5.Windows IoT-Serienbeispiel:- http://ms-iot.github.io/content/en-US/win10/samples/SerialSample.htm

6.Ms-IoT GitHub-Repositorys:- https://github.com/ms-iot

7.Windows auf GitHub:- http://microsoft.github.io/windows/

8. Arduino-Software-Serienbeispiel (mit UART):- https://www.arduino.cc/en/Tutorial/SoftwareSerialExample

9.SparkFun-Tutorial zur seriellen Kommunikation:- https://learn.sparkfun.com/tutorials/serial-communication

10.Erste Schritte mit Azure Notification Hub:- https://azure.microsoft.com/en-us/documentation/articles/notification-hubs-android-get-started/

11.Fügen Sie Push-Benachrichtigungen zu Ihrer Mobile Services-App hinzu:- https://azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-android-get-started-push/

12.Code First-Migrationen:- https://msdn.microsoft.com/en-sg/data/jj591621.aspx

13.Veröffentlichen in einer Azure-Webanwendung mit Visual Studio:- http://docs.asp.net/en/latest/tutorials/publish-to-azure-webapp-using-vs.html

14.Veröffentlichen Sie die App in Azure Azure App Service:- http://www.asp.net/web-api/overview/data/using-web-api-with-entity-framework/part-10

Code

  • Arduino-Code für RFID-Lesemodul
Arduino-Code für RFID-LesemodulC/C++
/* Lesebefehl wird an das RFID-Modul gesendet, sobald das Tag gelesen wurde, kehrt es zum seriellen Port zurück */#include SoftwareSerial mySerial(10, 11); // RX, TXvoid setup () { // Öffnen Sie die serielle Kommunikation und warten Sie, bis der Port geöffnet ist:Serial.begin (9600); while (!Seriell) {; // Warten Sie, bis der serielle Port eine Verbindung herstellt. Nur für Leonardo benötigt } // setze die Datenrate für den SoftwareSerial Port mySerial.begin(9600);}void loop() { // immer wieder ausführen if (mySerial.available()) { //den Lesebefehl über senden an RFID-Modul Byte-Nachricht[] ={0xA0,0x06,0x80,0x00,0x01,0x02,0x01,0xD6}; mySerial.write(Nachricht, Größe(Nachricht)); // die Daten an die serielle Schnittstelle zurücksenden if (Serial.available ()) Serial.write (mySerial.read ()); }}
Wo ist mein Ding auf GitHub
https://github.com/seeyouu87/where-is-my-thing

Kundenspezifische Teile und Gehäuse

UHF-RFID-Lesemodul. es wird zum Lesen von RFID-Tags verwendet. uhf_reader_jt2850.svgUHF RFID-Lesemodul. es wird zum Lesen von RFID-Tags verwendet uhf_reader_jt2850.svgUHF RFID-Lesemodul. es wird zum Lesen von RFID-Tags verwendet uhf_reader_jt2850.svg

Schaltpläne

Wo ist mein Ding bei Fritzing
Schaltpläne auf Fritzing.org Die Verbindung für Arduino zum UHF-RFID-Modul.

Herstellungsprozess

  1. Microsoft Azure Spickzettel 2020
  2. FDM-3D-Druck:Wo stehen wir heute?
  3. Wo liegt der Vorteil beim Edge Computing?
  4. Industrie 4.0-Faktencheck:Wo stehen wir heute?
  5. 4 zu berücksichtigende passive RFID-Alternativen
  6. Zutrittskontrolle mit QR, RFID und Temperaturüberprüfung
  7. Woher kommen Metalle?
  8. Wo soll gebaut werden?
  9. Woher stammt das Sägekonzept?
  10. Druckluft ist wo?!