Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Waar is mijn ding?

Componenten en benodigdheden

Raspberry Pi 2 Model B
× 1
Arduino UNO
× 1
JT2850 RFID-module
× 1
JT606 RFID-antenne
× 1

Benodigde gereedschappen en machines

Microsoft pc met Windows10 met Visual studio 2015 geïnstalleerd
Android-telefoon

Apps en online services

Microsoft Windows 10 IoT Core
Microsoft Azure
Microsoft Visual Studio 2015

Over dit project

Achtergrond

Komt u ooit in een situatie dat wanneer u iets probeert te zoeken, maar u er heel lang naar op zoek bent en het nog steeds niet kunt vinden? Door gebruik te maken van RFID-technologie, met behulp van een RFID-lezer en meerdere RFID-tags die aan het item zijn bevestigd, kunnen we het item dat we hebben opgeslagen gemakkelijk lokaliseren. Telkens wanneer we een nieuw artikel kochten, plakt u er gewoon een RFID-tag op en registreert u de artikeldetails in het systeem. Zodra we naar het item moeten zoeken, maar ons niet kunnen herinneren waar het is, voer je gewoon een zoekopdracht uit op de mobiele applicatie en je weet dat het zich momenteel in welke kamer van je huis bevindt.

Het hele idee

De componenten van dit project zullen bestaan ​​uit een UHF RFID-leesmodule, een UHF RFID-antenne, een Arduino UNO, een Raspberry Pi2 met Windows10 IoT-kern (u kunt hier http://ms-iot.github.io/content/en raadplegen -US/GetStarted.htm als u niet zeker weet hoe u Windows10 IoT core moet installeren), een mobiele applicatie en Azure-webservice voor gegevensopslag. Er zullen meerdere UHF RFID-modules in huis zijn en elke UHF RFID-module wordt verbonden met Arduino UNO, waarbij Arduino vervolgens wordt verbonden met Raspberry Pi2. Telkens wanneer een item door het systeem gevolgd wil worden, wordt een RFID-tag bevestigd. De details van het artikel en de RFID-waarde zijn vereist om in het systeem te registreren. De gegevens van elke record worden via Azure Web API opgeslagen in Azure SQL-database. Telkens wanneer de gebruiker een item thuis gaat zoeken, maar hij/zij niet zeker weet of het item zich in welke kamer van zijn/haar huis zal bevinden. Hij/zij kan hun mobiele applicatie aanzetten. De mobiele applicatie stuurt de zoekopdracht naar de Raspberry Pi2 via het wifi-netwerk. Zodra Raspberry Pi2 het zoekverzoek heeft ontvangen, stuurt het het verzoek naar alle Arduino Uno die erop zijn aangesloten. Arduino UNO stuurt een leesopdracht naar de UHF RFID-module. Zodra een van de UHF RFID-lezers op een andere locatie erin slaagt de vereiste RFID vast te leggen, zal het een waarde terugsturen naar Arduino UNO. Arduino UNO zal de locatie van de RFID-lezer terugsturen naar Raspberry Pi2 en RaspberryPi2 zal het zoekresultaat verder verwerken en terugkeren naar de mobiele applicatie.
als jij

Hoe te doen?

Ik ga een achtergrond-app ontwikkelen die draait op de Windows 10 IoT-kern, misschien moeten we het IP-adres van Raspberry Pi 2 weten. Het is niet nodig om een ​​display te hebben. Dankzij de almachtige Windows IoT Core Watcher. Het enige wat je nodig hebt is om je Raspberry Pi2 model B aan te sluiten zoals hieronder weergegeven:

Door pc en Raspberry PI2 via een netwerkkabel met elkaar te verbinden, kan de almachtige Windows IoT Core Watcher u vertellen wat het IP-adres van uw Raspberry Pi2 is:

Een project maken in Visual Studio 2015

Dan kun je beginnen met ontwikkelen met Visual studio 2015, download gewoon de codes die ik hier heb gedeeld en voer het uit met Visual studio 2015.

Download de code van github en u kunt het project direct uitvoeren. Als u een nieuw project probeert aan te maken, kunt u het op deze manier proberen:

1. Ga naar Bestand -> Nieuw->Project

2. Zoek onder Visual C#-sjablonen naar "Achtergrondtoepassing (IoT)". Toets uw projectnaam in, uw project is aangemaakt.

3. Nadat het project is gemaakt, is de volgende stap het configureren van de foutopsporingsinstelling. Klik met de rechtermuisknop op het project en selecteer "Eigenschappen"

4. Klik in het eigenschappenvenster van het project op de debug-tab en maak de volgende instelling:

  1. Platform:ARM
  2. Doelapparaat:externe machine
  3. Externe machine:
  4. Deselecteer "Gebruik authenticatie"

Sla de configuratie op en u kunt nu beginnen met coderen in het StartupTask.cs-bestand in uw nieuw gemaakte project.


Foutopsporing in Visual Studio 2015

Zodra u klaar bent met coderen en wilt beginnen met debuggen, kunt u de volgende stappen en schermafbeeldingen volgen:

1. Klik op de grijze balk aan de linkerkant om het breekpunt in te stellen op de coderegel die van plan is te onderzoeken:

2. Klik vervolgens op de groene knop "Remote machine" om debug te starten:

3. Zodra de foutopsporingsmodus is geactiveerd, wordt de groene knop "Externe machine" gewijzigd in "Doorgaan" en worden tegelijkertijd de stapknoppen ingeschakeld:

  • Volgende -- Volgende uitspraak weergeven
  • Step Into -- Stap in de functie en kijk naar codes in de functie
  • Stap Over -- Stap over de huidige regel en kijk in de volgende regel code
  • Uitstappen -- Verlaat de functie en ga door met debuggen met de vorige code.


Doorgaan-knop met 'Volgende', 'Step Into', 'Step Over' en Step Out'

Terwijl u debug uitvoert, kunt u ofwel de muiscursor bewegen om een ​​bepaalde waarde van de variabele te inspecteren of u kunt markeren en met de rechtermuisknop op de variabele klikken en "Bewaking toevoegen" selecteren om de variabele toe te voegen aan de controlelijst:

Maak een web-API op Azure om IoT- en mobiele app-transacties uit te voeren

Asp.NET-webtoepassingsproject maken

1. Maak een ASP.NET-webtoepassing, toets de projectnaam in en klik onderaan op de knop OK

2. Klik in het volgende scherm op MVC kiezen onder ASP.NET 4.5.2-sjabloon (als u avontuurlijk bent, kunt u ASP.NET 5-voorbeeldsjabloon met MVC6-framework proberen. De stap is hetzelfde)

3. Stel vervolgens de authenticatiemethode in op "Geen authenticatie"

4. Houd er ook rekening mee dat als u deze web-API op een cloudserver wilt hosten, u de optie "Host in de cloud" kunt aanvinken, zoals hieronder weergegeven:

Als u geen Microsoft Azure-account hebt, kunt u zich aanmelden voor een gratis proefperiode en genieten van een gratis tegoed van $ 200. Klik hier:  https://azure.microsoft.com/en-us/pricing/free-trial/

5. Als u ervoor kiest om uw web-API op Azure Web App te hosten, moet u zich op het volgende scherm aanmelden bij Microsoft Azure nadat u op "OK" hebt geklikt.

6. Nadat u succesvol bent ingelogd, voert u eenvoudig de naam van uw webapp en de daaropvolgende gegevens in, zoals weergegeven in het formulier:

zodra alle informatie is ingevuld, klikt u op OK en wacht u een tijdje totdat VS2015 een webapp en database op uw Azure-account heeft gemaakt.


Nadat zowel de lokale als de cloud-webapp met succes zijn gemaakt, wilt u waarschijnlijk een database voor uw app maken. Dankzij het Entity-framework op MVC, kunnen we nu met een paar eenvoudige stappen onze database voor onze web-app instellen.

Entity Framework gebruiken

Ik ga de NuGet Package Manager-console gebruiken voor de installatie. Dus eerst moet u uw Nuget Package Manager starten zoals hieronder:Tools->NuGet Package Manager->Package Manager Console

2. Typ vervolgens de opdracht "Install-Package EntityFramework" in uw pakketbeheerconsole hieronder:

3. Vervolgens moet u een Modelklasse maken om uw databasetabel en -velden te beschrijven. Klik gewoon met de rechtermuisknop op de modelmap en klik op "Toevoegen"->"Klasse.."

Zodra de nieuwe klasse is gemaakt, voegt u de volgende regels toe:

met behulp van System.ComponentModel.DataAnnotations;

met behulp van System.ComponentModel.DataAnnotations.Schema;

Na het maken van de modelklasse, is de volgende stap het maken van uw WebAPI-controllers samen met actie met behulp van het Entity-framework. Volg het onderstaande printscherm, klik met de rechtermuisknop op de map Controllers en selecteer "Toevoegen" -> "Nieuw steigeritem":

Selecteer "Web API 2-controller met acties, met behulp van Entity Framework" onder de categorie Web API op het volgende scherm:

Nadat op de knop "Toevoegen" is geklikt, wordt het volgende scherm weergegeven:


Klik op de '+ ' knop in het veld Gegevenscontextklasse om een ​​nieuwe gegevenscontextklasse te maken:

Klik op Toevoegen in het volgende scherm om het volgende aan te maken:

zodra alle velden zijn ingevuld, klikt u op "Toevoegen" om het steigeritem te genereren:

Na een succesvol gegenereerd steigeritem, kunt u de controller en de gegevenscontextklasse zien vallen in de map Controllers en de map Models:

Voer vervolgens de Enable-Migrations commando in Package Manager Console:

Na Migraties inschakelen opdracht, gevolgd door Add-Migration commando:

Eindelijk Update-Database commando maakt een databasebasis op basis van het migratiescript dat is gegenereerd op basis van Models. U kunt de nieuw aangemaakte database vinden onder Add_Data tafel:

Publiceer uw WEB API

Zodra de database succesvol is ingesteld, wordt de web-api als voltooid beschouwd (de steigercontroller genereert een basisfunctie voor een REST-aanroep). Om er zeker van te zijn dat de functies GetMything(GET), PostMything(POST),  PutMything(PUT) en Deletemything(DELETE) aanwezig zijn in MyThingsController.

Zodra het Web API-project is voltooid. Vervolgens kunt u de web-API op Azure Web APP publiceren met de volgende stappen:


1. Selecteer Build-menu> Publish MyThingAPI zoals in het volgende screenshot.:

2. De volgende pop-up wordt weergegeven en stelt u in staat om een ​​publicatiedoel te selecteren. U kunt Microsoft Azure API Apps (Preview) selecteren als u ASP.NET5 MVC 6-sjabloon gebruikt voor uw Web API:

3. Nadat op Microsoft Azure Web Apps is geklikt, wordt het volgende scherm weergegeven en moet u zich aanmelden bij uw azure-account:

Toets uw azuurblauwe inloggegevens in en log in:

4. Na succesvolle aanmelding kunt u uw bestaande web-app ophalen die wordt gehost in azure (deze zou eerder moeten worden gemaakt tijdens het maken van dit project in VS2015):

5. Zodra web-apps is geselecteerd en op "OK" is geklikt, wordt het onderstaande scherm weergegeven:

De verbindingsinstelling wordt overgenomen, klik gewoon op volgende om verder te gaan

6. Op het tabblad Instellingen ziet u de databaseverbindingsreeks, andere informatie wordt automatisch ingevuld, maar zorg ervoor dat beide selectievakjes "Gebruik deze verbindingsreeks tijdens runtime" en "Voer code eerste migratie uit" zijn aangevinkt:

6. Zodra alle instellingen zijn ingevuld, klikt u op Publiceren en Visual studio start de Azure Web App onmiddellijk na succesvolle publicatie:

Zodra de web-API is gepubliceerd, kunt u de REST-API testen. Ik gebruik de Chrome-extensie "Advance REST Client" om te testen:

U kunt de onderstaande json-string proberen voor POST-oproep:

{

id:1,

status:"0",

rfid:"1009622005390623",

afbeelding:"",

naam:"een hulpmiddel",

type:"tool",

locatie:"slaapkamer",

createdAt:"2015-10-13T10:26:01.14",

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

}


Maak een universele Windows-app

Aangezien de IoT Background-app en REST API gereed zijn, is de volgende stap het bouwen van een Windows Universal App als client. Met de universele app kunnen we één set codes voor meerdere apparaten gebruiken. Ik maak hier een Universele App voor Tablet als voorbeeld (je kunt eenvoudig de lay-outinstelling voor mobiele telefoon of laptop wijzigen).

Om een ​​universele app te maken, klikt u op Bestand>Nieuw>Project in uw Visual Studio 2015, en selecteert u vervolgens de universele app als volgt:

Nadat u een nieuwe oplossing heeft gemaakt, kunt u de cs-scripts en .xaml-bestanden vervangen door MyThingApp die ik in GitHub heb gedeeld.

Foutopsporing in universele Windows-app:

De universele Windows-app bood verschillende foutopsporingsconfiguraties, waaronder het ARM-, x64- en x86-platform. Als u foutopsporing uitvoert op uw lokale pc met Windows 64 bit, moet u x64 kiezen en op de groene knop klikken (Selecteer "lokale machine")

als uw app zonder fouten werkt, zou deze er ongeveer zo uit moeten zien:

Setup Notification Hub en UWP push notificatie


1. Zodra Web API en Universal App klaar zijn, kunt u hier inloggen

https://dev.windows.com/en-us/dashboard/Application/New om een ​​app-naam te reserveren.

2. Zodra de app-naam is aangemaakt, gaat u terug naar MyThingApp en klikt u met de rechtermuisknop op uw project. Selecteer Store>App koppelen aan de Store 

voor het maken van een meldingshub, raadpleeg hier:

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

3. voeg vervolgens de volgende functie toe aan App.xaml.cs

private async void InitNotificationsAsync()

{

var channel =wacht PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

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

var resultaat =wacht op hub.RegisterNativeAsync(channel.Uri);

}

noem deze nieuwe functie ook binnen de functie OnLaunched:

beschermde overschrijving ongeldig OnLaunched(LaunchActivatedEventArgs e)

{

InitNotificationsAsync();

Voeg ten slotte deze regel code toe aan MainPage.cs, MainPage() Function:

this.NavigationCacheMode =NavigationCacheMode.Required;

4. Stel ten slotte een threading-taak in MyThing Web API> MyThingController in met de volgende codes:

public class NotificationClass {

interne asynchrone System.Threading.Tasks.Task SendNotificationAsync(string rfid)

{

NotificationHubClient-hub =NotificationHubClient

.CreateClientFromConnectionString("", "");

var toast =@"Nieuwe mythe moet bijwerken";///MainPage.xaml?value=test

wacht op hub.SendWindowsNativeNotificationAsync(toast);

retourneert null;

}

}

en de onderstaande codes bij het succesvol aanmaken van een nieuw record:

NotificationClass notClass =new NotificationClass();

DiscussiemeldingThread =nieuwe discussie (async x => { wacht op notClass.SendNotificationAsync(myThing.rfid); });

notificationThread.Start();

5. Na een succesvolle installatie, zal een toastmelding zoals hieronder worden ontvangen na een succesvol aangemaakt record:

6. klik op de melding en het zal MyThingApp starten die op uw pc is geïnstalleerd:

op "OK" geklikt en u zult zien dat de nieuwe RFID is toegevoegd aan het invoerformulier. Vul de rest van de informatie in en update.



REFERENTIELINKS:

1. Stapsgewijze handleiding voor het instellen van Windows10 Iot Core:- http://ms-iot.github.io/content/en-US/GetStarted.htm

2. Visual Studio 2015 instellen op uw pc:- http://ms-iot.github.io/content/en-US/win10/SetupPCRPI.htm

3. Stap voor stap instructies om Windows10 IoT Core op Raspberry Pi2 in te stellen:- http://ms-iot.github.io/content/en-US/win10/SetupRPI.htm

4. Hoe een IoT-toepassing te ontwikkelen (Blinky-voorbeeld):- http://ms-iot.github.io/content/en-US/win10/samples/Blinky.htm

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

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

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

8. Arduino Software Serieel Voorbeeld (met UART):- https://www.arduino.cc/en/Tutorial/SoftwareSerialExample

9.SparkFun seriële communicatie tutorial:- https://learn.sparkfun.com/tutorials/serial-communication

10. Ga aan de slag met Azure Notification Hub:- https://azure.microsoft.com/en-us/documentation/articles/notification-hubs-android-get-started/

11. Voeg pushmeldingen toe aan uw Mobile Services-app:- https://azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-android-get-started-push/

12.Code eerste migraties:- https://msdn.microsoft.com/en-sg/data/jj591621.aspx

13.Publiceer naar een Azure-webapp met Visual Studio:- http://docs.asp.net/en/latest/tutorials/publish-to-azure-webapp-using-vs.html

14. Publiceer de app naar Azure Azure App Service:- http://www.asp.net/web-api/overview/data/using-web-api-with-entity-framework/part-10

Code

  • Arduino-code voor RFID-leesmodule
Arduino-code voor RFID-leesmoduleC/C++
/* leesopdracht wordt naar de RFID-module gestuurd zodra de tag is gelezen, keert deze terug naar de seriële poort */#include SoftwareSerial mySerial(10, 11); // RX, TXvoid setup () {// Open seriële communicatie en wacht tot de poort wordt geopend:Serial.begin (9600); while (!Serial) {; // wacht tot de seriële poort verbinding maakt. Alleen nodig voor Leonardo } // stel de datasnelheid in voor de SoftwareSerial-poort mySerial.begin(9600);}void loop() { // loop steeds opnieuw if (mySerial.available()) { // stuur het leescommando over naar RFID-module bytebericht [] ={0xA0,0x06,0x80,0x00,0x01,0x02,0x01,0xD6}; mySerial.write (bericht, grootte van (bericht)); // stuur de gegevens terug naar serial if (Serial.available ()) Serial.write (mySerial.read ()); }}
Waar is mijn ding op GitHub
https://github.com/seeyouu87/where-is-my-thing

Aangepaste onderdelen en behuizingen

UHF RFID-leesmodule. het wordt gebruikt voor het lezen van RFID-tags. uhf_reader_jt2850.svgUHF RFID-leesmodule. het wordt gebruikt voor het lezen van RFID-tag uhf_reader_jt2850.svgUHF RFID-leesmodule. het wordt gebruikt voor het lezen van RFID-tag uhf_reader_jt2850.svg

Schema's

Waar is mijn ding op Fritzing
Schema's op Fritzing.org De verbinding voor Arduino naar UHF RFID-module.

Productieproces

  1. Microsoft Azure Cheatsheet 2020
  2. FDM 3D-printen:waar zijn we vandaag?
  3. Waar is de voorsprong in edge computing?
  4. Industrie 4.0 fact-check:waar staan ​​we vandaag?
  5. 4 passieve RFID-alternatieve technologieën om te overwegen
  6. Het complete actieve RFID-overzicht
  7. Toegangscontrole met QR, RFID en temperatuurverificatie
  8. Waar komen metalen vandaan?
  9. Waar moet je bouwen?
  10. Waar komt het zaagconcept vandaan?
  11. Perslucht is waar?!