산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

내 물건은 어디에 있습니까?

구성품 및 소모품

라즈베리 파이 2 모델 B
× 1
Arduino UNO
× 1
JT2850 RFID 모듈
× 1
JT606 RFID 안테나
× 1

필요한 도구 및 기계

Visual Studio 2015가 설치된 Windows10을 실행하는 Microsoft PC
Android 전화

앱 및 온라인 서비스

Microsoft Windows 10 IoT Core
Microsoft Azure
Microsoft Visual Studio 2015

이 프로젝트 정보

배경

당신은 무언가를 찾으려고 할 때마다 그것을 찾는 데 매우 오랜 시간을 보내고 여전히 그것을 찾을 수없는 상황에 처한 적이 있습니까? RFID 기술을 활용하여 RFID 리더와 품목에 부착된 여러 개의 RFID 태그를 사용하여 보관한 품목을 쉽게 찾을 수 있습니다. 새 항목을 구입할 때마다 RFID 태그를 붙여넣고 항목 세부 정보를 시스템에 등록하기만 하면 됩니다. 항목을 찾아야 하지만 위치가 기억나지 않으면 모바일 애플리케이션에서 검색하기만 하면 현재 집의 어느 방에 있는지 알 수 있습니다.

전체 아이디어

이 프로젝트의 구성 요소는 UHF RFID 리더 모듈, UHF RFID 안테나, Arduino UNO, Windows10 IoT 코어를 실행하는 Raspberry Pi2로 구성됩니다(http://ms-iot.github.io/content/en 참조). -US/GetStarted.htm(Windows10 IoT core 설치 방법을 잘 모르는 경우), 모바일 애플리케이션 및 데이터 저장용 Azure 웹 서비스. 집에 UHF RFID 모듈이 여러 개 있을 것이며 각 UHF RFID 모듈은 Arduino UNO에 연결되고 Arduino는 Raspberry Pi2에 연결됩니다. 시스템에서 추적하고자 하는 품목이 있을 때마다 RFID 태그가 부착됩니다. 시스템에 등록하려면 항목의 세부 정보와 RFID 값이 필요합니다. 모든 레코드의 데이터는 Azure Web API를 통해 Azure SQL 데이터베이스에 저장됩니다. 사용자가 집에서 항목을 검색하려고 할 때마다 항목이 집의 어느 방에 위치할지 확신할 수 없습니다. 그/그녀는 모바일 애플리케이션을 켤 수 있습니다. 모바일 응용 프로그램은 Wi-Fi 네트워크를 통해 Raspberry Pi2에 검색 요청을 보냅니다. Raspberry Pi2가 검색 요청을 수신하면 연결된 모든 Arduino Uno로 요청을 보냅니다. Arduino UNO는 UHF RFID 모듈에 읽기 명령을 보냅니다. 다른 위치에 있는 UHF RFID 리더 중 하나가 필요한 RFID를 캡처하면 Arduino UNO에 값을 다시 반환합니다. Arduino UNO는 RFID 리더 위치를 다시 Raspberry Pi2로 반환하고 RaspberryPi2는 검색 결과를 추가로 처리하고 모바일 애플리케이션으로 돌아갑니다.
만약 너라면

어떻게 할까요?

Windows 10 IoT 코어에서 실행되는 백그라운드 앱을 개발하려고 합니다. Raspberry Pi 2의 IP 주소를 알아야 할 수도 있습니다. 디스플레이가 필요하지 않습니다. 전능한 Windows IoT Core Watcher 덕분입니다. 아래와 같이 Raspberry Pi2 모델 B를 연결하기만 하면 됩니다.

네트워크 케이블을 통해 PC와 Raspberry PI2를 연결하면 전능한 Windows IoT Core Watcher가 Raspberry Pi2의 IP 주소를 알려줄 수 있습니다.

Visual Studio 2015에서 프로젝트 만들기

그런 다음 Visual Studio 2015를 사용하여 개발을 시작하고 여기에서 공유한 코드를 다운로드하고 Visual Studio 2015를 사용하여 실행할 수 있습니다.

github에서 코드를 다운로드하면 프로젝트를 직접 실행할 수 있습니다. 새 프로젝트를 생성하려는 경우 다음과 같이 시도할 수 있습니다.

1. 파일 -> 새로 만들기 -> 프로젝트

로 이동합니다.

2. Visual C# 템플릿에서 "백그라운드 애플리케이션(IoT)"을 찾습니다. 프로젝트가 생성된 프로젝트 이름을 입력합니다.

3. 프로젝트가 생성되면 다음으로 디버그 설정을 구성합니다. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "속성"을 선택하십시오.

4. 프로젝트 속성 창에서 디버그 탭을 클릭하고 다음과 같이 설정합니다.

<올>
  • 플랫폼 :ARM
  • 대상 장치:원격 시스템
  • 원격 시스템:
  • '인증 사용' 선택 취소
  • 구성을 저장하면 이제 새로 생성된 프로젝트의 StartupTask.cs 파일로 코딩을 시작할 수 있습니다.


    Visual Studio 2015에서 디버깅

    코딩을 완료하고 디버깅을 시작하려면 다음 단계와 스크린샷을 따르세요.

    1. 왼쪽 회색 막대를 클릭하여 조사하려는 코드 줄에 중단점을 설정합니다.

    2. 다음으로 녹색 "원격 머신" 버튼을 클릭하여 디버그를 시작합니다.

    3. 디버그 모드에 들어가면 녹색 버튼 "Remote Machine"이 "계속"으로 변경되고 동시에 단계 버튼이 활성화됩니다.

    <울>
  • 다음 -- 다음 문장 표시
  • Step Into -- 함수 안으로 들어가서 함수 내부의 코드 살펴보기
  • Step Over -- 현재 줄을 건너뛰고 다음 코드 줄을 살펴봅니다.
  • Step Out -- 함수를 종료하고 이전 코드로 디버깅을 계속합니다.

  • 'Next', 'Step Into', 'Step Over' 및 Step Out'이 있는 계속 버튼

    디버그를 실행하는 동안 마우스 커서를 롤오버하여 변수의 특정 값을 검사하거나 변수를 강조 표시하고 마우스 오른쪽 버튼을 클릭하고 "감시 추가"를 선택하여 변수를 감시 목록에 추가할 수 있습니다.

    IoT 및 모바일 앱 트랜잭션을 제공하기 위해 Azure에 Web API 생성

    Asp.NET 웹 응용 프로그램 프로젝트 만들기

    1. ASP.NET 웹 응용 프로그램을 만들고 프로젝트 이름을 입력하고 하단의 확인 버튼을 클릭합니다.

    2. 다음 화면에서 ASP.NET 4.5.2 템플릿 아래의 MVC 선택을 클릭합니다(모험이 있는 경우 MVC6 프레임워크가 포함된 ASP.NET 5 미리보기 템플릿을 사용해 보십시오. 단계는 동일함)

    3. 다음으로 인증 방법을 "인증 안 함"으로 설정합니다.

    4. 또한 이 Web API를 클라우드 서버에 호스팅하려면 아래와 같이 "클라우드에서 호스트" 옵션을 선택할 수 있습니다.

    Microsoft Azure 계정이 없는 경우 무료 평가판에 등록하고 $200의 무료 크레딧을 받을 수 있습니다. 여기를 클릭하기만 하면 됩니다. https://azure.microsoft.com/en-us/pricing/free-trial/

    5. 웹 API를 Azure Web App에 호스팅하도록 선택한 경우 "확인"을 클릭하면 다음 화면에서 Microsoft Azure에 로그인해야 합니다.

    6. 성공적으로 로그인되면 다음 형식에 표시된 대로 웹 앱 이름과 후속 세부 정보를 입력하기만 하면 됩니다.

    모든 정보를 입력했으면 확인을 클릭하고 VS2015가 Azure 계정에 웹 앱과 데이터베이스를 생성할 때까지 잠시 기다립니다.


    로컬 및 클라우드 웹 앱이 모두 성공적으로 생성되면 다음으로 앱용 데이터베이스를 생성할 수 있습니다. MVC의 Entity 프레임워크 덕분에 이제 몇 가지 간단한 단계를 통해 웹 앱용 데이터베이스를 설정할 수 있습니다.

    엔티티 프레임워크 사용

    설치에 NuGet 패키지 관리자 콘솔을 사용하겠습니다. 따라서 먼저 아래와 같이 Nuget 패키지 관리자를 시작해야 합니다. 도구->NuGet 패키지 관리자->패키지 관리자 콘솔

    2. 다음으로 아래의 패키지 관리자 콘솔에 "Install-Package EntityFramework" 명령을 입력합니다.

    3. 다음으로 데이터베이스 테이블과 필드를 설명하는 모델 클래스를 생성해야 합니다. 모델 폴더를 마우스 오른쪽 버튼으로 클릭하고 "추가"->"클래스.."를 클릭하기만 하면 됩니다.

    새 클래스가 생성되면 다음 줄을 추가합니다.

    System.ComponentModel.DataAnnotations 사용

    System.ComponentModel.DataAnnotations.Schema 사용

    모델 클래스 생성 시 다음 단계는 Entity 프레임워크를 사용하여 액션과 함께 WebAPI 컨트롤러를 생성하는 것입니다. 아래 인쇄 화면을 따라 컨트롤러 폴더를 마우스 오른쪽 버튼으로 클릭하고 "추가"->"새 비계 항목"을 선택합니다.

    다음 화면의 Web API 카테고리에서 "Web API 2 Controller with actions, using Entity Framework"를 선택합니다.

    "추가" 버튼을 클릭하면 다음 화면이 표시됩니다.


    '+ ' 버튼을 데이터 컨텍스트 클래스 필드에 추가하여 새 데이터 컨텍스트 클래스 생성:

    다음 화면에서 추가를 클릭하여 생성:

    모든 필드가 채워지면 "추가"를 클릭하여 비계 항목을 생성합니다.

    스캐폴드 항목이 성공적으로 생성되면 컨트롤러 및 데이터 컨텍스트 클래스가 Controllers 폴더 및 Models 폴더로 떨어지는 것을 볼 수 있습니다.

    다음으로 Enable-Migrations를 실행합니다. 패키지 관리자 콘솔의 명령:

    이전 활성화 후 명령 다음에 Add-Migration 이 옵니다. 명령:

    마지막으로 데이터베이스 업데이트 이 명령은 Models에서 생성된 마이그레이션 스크립트를 기반으로 데이터베이스를 생성합니다. Add_Data에서 새로 생성된 데이터베이스를 찾을 수 있습니다. 표:

    웹 API 게시

    데이터베이스가 성공적으로 설정되면 웹 API가 완료된 것으로 간주됩니다(Scaffolded 컨트롤러는 RESTful 호출을 위한 기본 기능을 생성합니다). GetMything(GET), PostMything(POST), PutMything(PUT) 및 Deletemything(DELETE) 함수가 MyThingsController에 있는지 확인하기만 하면 됩니다.

    Web API 프로젝트가 완료되면. 다음 단계에 따라 Azure Web APP에 웹 API를 게시할 수 있습니다.


    1. 다음 스크린샷과 같이 빌드 메뉴> MyThingAPI 게시를 선택합니다.

    2. 다음 팝업이 표시되고 게시 대상을 선택할 수 있습니다. Web API에 ASP.NET5 MVC 6 템플릿을 사용하는 경우 Microsoft Azure API 앱(미리 보기)을 선택할 수 있습니다.

    3. Microsoft Azure Web Apps를 클릭하면 다음 화면이 표시되며 Azure 계정에 로그인해야 합니다.

    Azure 자격 증명을 입력하고 로그인하십시오.

    4. 로그인에 성공하면 Azure에서 호스팅되는 기존 웹 앱을 검색할 수 있습니다(VS2015에서 이 프로젝트를 만드는 동안 이전에 만들어야 함).

    5. 웹 앱을 선택하고 "확인"을 클릭하면 아래 화면이 표시됩니다.

    연결 설정이 적용됩니다. 계속하려면 다음을 클릭하세요.

    6. 설정 탭에서 데이터베이스 연결 문자열을 볼 수 있으며 다른 정보가 자동으로 채워지지만 "런타임에 이 연결 문자열 사용" 및 "코드 우선 마이그레이션 실행" 확인란이 모두 선택되어 있는지 확인합니다.

    6. 모든 설정이 채워지면 게시를 클릭하면 Visual Studio는 게시 성공 시 Azure Web App을 즉시 시작합니다.

    웹 API가 게시되면 REST API를 테스트할 수 있습니다. 테스트를 위해 Chrome 확장 프로그램 "Advance REST Client"를 사용하고 있습니다.

    POST 호출에 대해 아래 json 문자열을 시도할 수 있습니다.

    <코드>{

    id:1,

    상태:"0",

    rfid:"1009622005390623",

    이미지:"",

    이름:"일부 도구",

    유형:"도구",

    위치:"침실",

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

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

    <코드>}


    Windows 유니버설 앱 만들기

    Iot Background 앱과 REST API가 준비되었으므로 다음은 Windows Universal App을 클라이언트로 빌드하는 것입니다. Universal App을 사용하면 여러 장치에 대해 하나의 코드 세트를 사용할 수 있습니다. 여기에서 예를 들어 태블릿용 범용 앱을 만듭니다(휴대전화 또는 노트북의 레이아웃 설정을 간단히 변경할 수 있음).

    유니버설 앱을 만들려면 Visual Studio 2015에서 파일>새로 만들기>프로젝트를 클릭하고 다음과 같이 유니버설 앱을 선택합니다.

    새 솔루션을 만든 후에는 cs 스크립트 및 .xaml 파일을 GitHub에서 공유한 MyThingApp으로 바꿀 수 있습니다.

    Windows 범용 앱에서 디버깅:

    ARM, x64 및 x86 플랫폼을 포함하는 여러 디버그 구성을 제공하는 Windows 범용 앱. Windows 64비트를 실행하는 로컬 PC에서 디버깅을 실행하는 경우 x64를 선택하고 녹색 버튼("로컬 머신" 선택)을 클릭해야 합니다.

    앱이 오류 없이 실행되고 있다면 다음과 같아야 합니다.

    알림 허브 및 UWP 푸시 알림 설정


    1. Web API 및 Universal App이 완료되면 여기에서 로그인할 수 있습니다.

    앱 이름을 예약하려면 https://dev.windows.com/en-us/dashboard/Application/New를 방문하세요.

    2. 앱 이름이 생성되면 MyThingApp으로 돌아가 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다. 스토어>앱을 스토어와 연결

    을 선택합니다.

    알림 허브 생성은 여기를 참조하십시오:

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

    3. 다음으로 App.xaml.cs

    에 다음 함수를 추가합니다.

    비공개 비동기 무효 InitNotificationsAsync()

    <코드> {

    <코드> var 채널 =대기 PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

    <코드> var 허브 =새로운 NotificationHub("알림", "Endpoint=sb://smartwardrobe.servicebus.windows.net/;SharedAccessKeyName=DefaultListenSharedAccessSignature;SharedAccessKey=MlHoVfn1Ub/c2ThUha+Crn7hHSGmqofrW3cJ6IK;

    var 결과 =대기 허브.RegisterNativeAsync(channel.Uri);

    <코드> }

    또한 OnLaunched 함수 내에서 이 새 함수를 호출합니다.

    보호된 재정의 무효 OnLaunched(LaunchActivatedEventArgs e)

    <코드> {

    InitNotificationsAsync();

    마지막으로 이 코드 줄을 MainPage.cs, MainPage() 함수에 추가합니다.

    this.NavigationCacheMode =NavigationCacheMode.Required;

    4. 마지막으로 다음 코드를 사용하여 MyThing Web API> MyThingController 내에서 스레딩 작업을 설정합니다.

    공개 클래스 알림 클래스 {

    내부 비동기 System.Threading.Tasks.Task SendNotificationAsync(문자열 rfid)

    <코드> {

    NotificationHubClient 허브 =NotificationHubClient

    <코드> .CreateClientFromConnectionString("<연결 문자열>", "<허브 이름>");

    var toast =@"새로운 Mything은 업데이트";///MainPage.xaml?value=test

    허브를 기다립니다.SendWindowsNativeNotificationAsync(toast);

    null 반환;

    <코드> }

    <코드> }

    새 레코드가 성공적으로 생성되면 아래 코드:

    NotificationClass notClass =new NotificationClass();

    스레드 notificationThread =새로운 스레드(async x => { 대기 notClass.SendNotificationAsync(myThing.rfid); });

    notificationThread.Start();

    5. 설정이 성공하면 레코드 생성 성공 시 아래와 같은 토스트 알림이 수신됩니다.

    6. 알림을 클릭하면 PC에 설치된 MyThingApp이 실행됩니다:

    "확인"을 클릭하면 새 RFID가 입력 양식에 추가되는 것을 볼 수 있습니다. 나머지 정보를 입력하고 업데이트하십시오.



    참조 링크:

    1. Windows10 IoT Core 설정을 위한 단계별 가이드:- http://ms-iot.github.io/content/en-US/GetStarted.htm

    2. PC에서 Visual Studio 2015 설정하기:- http://ms-iot.github.io/content/en-US/win10/SetupPCRPI.htm

    3. Raspberry Pi2에서 Windows10 IoT Core를 설정하는 단계별 지침:- http://ms-iot.github.io/content/en-US/win10/SetupRPI.htm

    4. IoT 애플리케이션 개발 방법(Blinky 샘플):- http://ms-iot.github.io/content/en-US/win10/samples/Blinky.htm

    5.Windows IoT 직렬 샘플:- http://ms-iot.github.io/content/en-US/win10/samples/SerialSample.htm

    6.Ms-IoT GitHub 저장소:- https://github.com/ms-iot

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

    8.Arduino 소프트웨어 시리얼 예제(UART 사용) :- https://www.arduino.cc/en/Tutorial/SoftwareSerialExample

    9.SparkFun 직렬 통신 튜토리얼:- https://learn.sparkfun.com/tutorials/serial-communication

    10. Azure 알림 허브 시작하기:- https://azure.microsoft.com/en-us/documentation/articles/notification-hubs-android-get-started/

    11. 모바일 서비스 앱에 푸시 알림 추가:- https://azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-android-get-started-push/

    12.코드 우선 마이그레이션:- https://msdn.microsoft.com/en-sg/data/jj591621.aspx

    13. Visual Studio를 사용하여 Azure 웹 앱에 게시:- http://docs.asp.net/en/latest/tutorials/publish-to-azure-webapp-using-vs.html

    14. Azure Azure App Service에 앱 게시:- http://www.asp.net/web-api/overview/data/using-web-api-with-entity-framework/part-10

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • RFID 리더 모듈용 Arduino 코드
  • RFID 리더 모듈용 Arduino 코드C/C++
    /* 태그 읽기 명령이 RFID 모듈로 전송되면 태그가 읽혀지면 직렬 포트로 다시 돌아갑니다. */#include SoftwareSerial mySerial(10, 11); // RX, TXvoid setup() { // 직렬 통신을 열고 포트가 열릴 때까지 기다립니다. Serial.begin(9600); 동안 (! 직렬) {; // 직렬 포트가 연결될 때까지 기다립니다. Leonardo에만 필요 } // SoftwareSerial 포트에 대한 데이터 속도 설정 mySerial.begin(9600);}void loop() { // 계속해서 실행 if (mySerial.available()) { //읽기 명령 보내기 RFID 모듈 바이트 메시지로[] ={0xA0,0x06,0x80,0x00,0x01,0x02,0x01,0xD6}; mySerial.write(메시지, 크기(메시지)); // 데이터를 직렬로 다시 전송 if(Serial.available()) Serial.write(mySerial.read()); }}
    GitHub에서 내 것은 어디에 있습니까
    https://github.com/seeyouu87/where-is-my-thing

    맞춤형 부품 및 인클로저

    UHF RFID 리더 모듈. RFID 태그를 읽는 데 사용됩니다. uhf_reader_jt2850.svgUHF RFID 리더 모듈. RFID 태그를 읽는 데 사용됩니다. uhf_reader_jt2850.svgUHF RFID 리더 모듈. RFID 태그를 읽는 데 사용됩니다. uhf_reader_jt2850.svg

    회로도

    Fritzing에서 내 물건은 어디에 있습니까
    Fritzing.org 의 회로도 Arduino를 UHF RFID 모듈에 연결합니다.

    제조공정

    1. Microsoft Azure 치트 시트 2020
    2. FDM 3D 인쇄:오늘날 우리는 어디에 있습니까?
    3. 에지 컴퓨팅의 장점은 무엇입니까?
    4. Industry 4.0 사실 확인:오늘날 우리는 어디에 서 있습니까?
    5. 고려해야 할 4가지 수동 RFID 대체 기술
    6. QR, RFID 및 온도 확인을 통한 출입 통제
    7. 금속은 어디에서 왔습니까?
    8. 어디에 건설해야합니까?
    9. 톱질 개념은 어디에서 시작되었습니까?
    10. 압축 공기는 어디에 있습니까?!