Где моя вещь?
Компоненты и расходные материалы
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Необходимые инструменты и машины
| ||||
|
Приложения и онлайн-сервисы
| ||||
| ||||
|
Об этом проекте
Фон
Бывали ли вы когда-нибудь в ситуации, когда каждый раз, когда вы пытаетесь что-то искать, вы тратите очень много времени на поиски и все еще не можете это найти? Используя технологию RFID, используя RFID-считыватель и несколько RFID-меток, прикрепленных к элементу, мы можем легко найти элемент, который мы сохранили. Всякий раз, когда мы покупаем новый товар, просто вставляйте на него RFID-метку и регистрируйте детали товара в системе. Если нам нужно найти предмет, но мы не можем вспомнить, где он находится, просто выполните поиск в мобильном приложении, и вы узнаете, в какой комнате вашего дома он сейчас находится.
Идея в целом
Компоненты этого проекта будут состоять из модуля считывателя UHF RFID, антенны UHF RFID, Arduino UNO, Raspberry Pi2 под управлением Windows10 IoT core (вы можете обратиться сюда http://ms-iot.github.io/content/en -US / GetStarted.htm, если вы не знаете, как установить ядро Windows10 IoT), мобильное приложение и веб-службу Azure для хранения данных. В доме будет несколько модулей UHF RFID, и каждый модуль RFID UHF будет подключен к Arduino UNO, а затем Arduino будет подключен к Raspberry Pi2. Каждый раз, когда элемент, который хотел бы отслеживаться системой, будет прикреплен RFID-меткой. Подробная информация об элементе и значение RFID необходимы для регистрации в системе. Данные каждой записи будут храниться в базе данных Azure SQL через веб-API Azure. Всякий раз, когда пользователь собирается искать предмет дома, но не уверен, что этот предмет будет находиться в какой комнате его дома. Он / она может включить свое мобильное приложение. Мобильное приложение отправит поисковый запрос на Raspberry Pi2 через сеть Wi-Fi. Как только Raspberry Pi2 получит поисковый запрос, он отправит его всем подключенным к нему Arduino Uno. Arduino UNO отправит команду чтения на модуль UHF RFID. Как только любой из UHF RFID-считывателей в другом месте сможет захватить требуемый RFID, он вернет значение обратно в Arduino UNO. Arduino UNO вернет местоположение считывателя RFID обратно в Raspberry Pi2, а RaspberryPi2 обработает результат поиска и вернется в мобильное приложение.
если вы
Как это сделать?
Я собираюсь разработать фоновое приложение, работающее на ядре Windows 10 IoT, нам может потребоваться знать IP-адрес Raspberry Pi 2. Нет необходимости иметь дисплей. Спасибо всемогущему Windows IoT Core Watcher. Все, что вам нужно, это подключить Raspberry Pi2 модель B, как показано ниже:
Подключив ПК и Raspberry PI2 по сетевому кабелю, всемогущий Windows IoT Core Watcher сможет сказать вам, какой IP-адрес у вашего Raspberry Pi2:
Создайте проект в Visual Studio 2015
Затем вы можете начать разработку с помощью Visual Studio 2015, просто загрузите коды, которыми я поделился здесь, и запустите его с помощью Visual Studio 2015.
Загрузите код с github, и вы сможете напрямую запустить проект. Если вы пытаетесь создать новый проект, вы можете попробовать следующее:
1. Перейдите в File -> New-> Project
.2. В разделе «Шаблоны Visual C #» найдите «Фоновое приложение (IoT)». Введите название вашего проекта, ваш проект создан.
3. После создания проекта следует настроить параметры отладки. Щелкните проект правой кнопкой мыши и выберите «Свойства»
.4. В окне свойств проекта щелкните вкладку отладки и выполните следующие настройки:
- Платформа:ARM
- Целевое устройство:удаленная машина
- Удаленный компьютер:<ваш IP-адрес отображается в Iot Core Watcher>
- Снимите флажок "Использовать аутентификацию"
Сохраните конфигурацию, и теперь вы можете начать кодирование в файле StartupTask.cs в вашем недавно созданном проекте.
Отладка в Visual Studio 2015
Когда вы закончите кодирование и захотите начать отладку, вы можете выполнить следующие шаги и сделать снимки экрана:
1. Щелкните серую полосу слева, чтобы установить точку останова в строке кода, которую нужно исследовать:
2. Затем нажмите зеленую кнопку «Удаленный компьютер», чтобы начать отладку:
3. После входа в режим отладки зеленая кнопка «Удаленная машина» изменится на «Продолжить», в то же время будут активированы кнопки шага:
- Далее - Показать следующее заявление
- Шаг с заходом - войдите в функцию и изучите коды внутри функции
- Перейти - перейти на текущую строку и просмотреть следующую строку кода.
- Выйти - выйти из функции и продолжить отладку с использованием предыдущего кода.
Кнопка «Продолжить» с «Далее», «Шаг с заходом», «Перешагнуть» и «Выйти»
Во время отладки вы можете либо навести курсор мыши, чтобы проверить определенное значение переменной, либо выделить и щелкнуть правой кнопкой мыши по переменной и выбрать «Добавить наблюдение», чтобы добавить переменную в список наблюдения:
Создание веб-API в Azure для обслуживания транзакций Интернета вещей и мобильных приложений
Создать проект веб-приложения Asp.NET
1. Создайте веб-приложение ASP.NET, введите имя проекта и нажмите кнопку «ОК» внизу
2. На следующем экране нажмите Выбрать MVC в шаблоне ASP.NET 4.5.2 (если вы любите приключения, можете попробовать шаблон предварительного просмотра ASP.NET 5 с платформой MVC6. Шаг будет таким же)
3. Затем установите для метода аутентификации значение «Без аутентификации»
.4. Также обратите внимание, что если вы хотите разместить этот веб-API на облачном сервере, вы можете установить флажок «Хост в облаке», как показано ниже:
Если у вас нет учетной записи microsoft azure, вы можете подписаться на бесплатную пробную версию и получить бесплатный кредит в размере 200 долларов США. Просто нажмите здесь:https://azure.microsoft.com/en-us/pricing/free-trial/
5. Если вы решили разместить свой веб-API в веб-приложении Azure, после нажатия кнопки «ОК» на следующем экране вам потребуется войти в Microsoft Azure.
6. После успешного входа в систему просто введите имя своего веб-приложения и последующие данные, как показано в форме:
после заполнения всей информации нажмите «ОК» и немного подождите, пока VS2015 создаст веб-приложение и базу данных в вашей учетной записи Azure.
После успешного создания как локального, так и облачного веб-приложения вы, вероятно, захотите создать базу данных для своего приложения. Спасибо вашей платформе Entity на MVC, теперь мы можем настроить нашу базу данных для нашего веб-приложения, выполнив несколько простых шагов.
Использование Entity Framework
Я собираюсь использовать консоль диспетчера пакетов NuGet для установки. Итак, сначала вам нужно будет запустить диспетчер пакетов NuGet, как показано ниже:Инструменты-> Диспетчер пакетов NuGet-> Консоль диспетчера пакетов
2. Затем введите команду «Install-Package EntityFramework» в консоль диспетчера пакетов ниже:
3. Затем вам нужно будет создать класс модели для описания таблицы и полей вашей базы данных. Просто щелкните правой кнопкой мыши папку модели и выберите «Добавить» -> «Класс ..»
После создания нового класса добавьте следующие строки:
с использованием System.ComponentModel.DataAnnotations;
с использованием System.ComponentModel.DataAnnotations.Schema;
После создания класса модели следующим шагом будет создание контроллеров WebAPI вместе с действием с использованием Entity framework. Следуйте приведенному ниже экрану печати, щелкните правой кнопкой мыши папку «Контроллеры» и выберите «Добавить» -> «Новый шаблонный элемент»:
Выберите «Контроллер веб-API 2 с действиями, используя Entity Framework» в категории веб-API на следующем экране:
После нажатия кнопки «Добавить» откроется следующий экран:
Нажмите " + . 'в поле класса контекста данных, чтобы создать новый класс контекста данных:
Нажмите «Добавить» на следующем экране, чтобы создать:
как только все поля будут заполнены, нажмите «Добавить», чтобы сгенерировать шаблонный элемент:
После успешного создания элемента шаблона вы сможете увидеть, как контроллер и класс контекста данных перетаскиваются в папку Controllers и папку Models:
Затем запустите Enable-Migrations . команда в консоли диспетчера пакетов:
После Enable-Migrations команда, за которой следует Add-Migration
Наконец, Update-Database команда создаст базу данных на основе сценария миграции, сгенерированного из Models. Вы сможете найти только что созданную базу данных в разделе Add_Data . таблица:
Опубликуйте свой WEB API
После успешной настройки базы данных веб-api считается готовым (контроллер Scaffolded сгенерирует базовую функцию для вызова RESTful). Просто чтобы гарантировать, что эти функции GetMything (GET), PostMything (POST), PutMything (PUT) и Deletemything (DELETE) существуют в MyThingsController.
После завершения проекта веб-API. Затем вы можете опубликовать веб-API в веб-приложении Azure, выполнив следующие действия:
1. Выберите меню «Сборка»> «Опубликовать MyThingAPI», как показано на следующем снимке экрана:
2. Появится следующее всплывающее окно, в котором вы сможете выбрать цель публикации. Вы можете выбрать Microsoft Azure API Apps (Preview), если вы используете шаблон ASP.NET5 MVC 6 для своего веб-API:
3. После того, как Microsoft Azure Web Apps щелкнет, появится следующий экран, на котором вам потребуется войти в свою учетную запись Azure:
Введите свои учетные данные Azure и войдите в систему:
4. После успешного входа в систему вы сможете получить существующее веб-приложение, размещенное в Azure (оно должно быть создано ранее при создании этого проекта в VS2015):
5. После выбора веб-приложений и нажатия кнопки «ОК» появится экран ниже:
Настройки подключения будут сохранены, просто нажмите "Далее", чтобы продолжить
6. На вкладке настроек вы увидите строку подключения к базе данных, другая информация будет заполнена автоматически, но убедитесь, что отмечены оба флажка «Использовать эту строку подключения во время выполнения» и «Выполнить первую миграцию кода»:
6. После того, как все параметры будут заполнены, нажмите «Опубликовать», и Visual Studio запустит веб-приложение Azure сразу после успешной публикации:
После публикации веб-API вы можете протестировать REST API. Я использую расширение Chrome "Advance REST Client" для тестирования:
Вы можете попробовать следующую строку json для вызова POST:
{
id:1,
status:«0»,
rfid:"1009622005390623",
изображение:"",
name:"какой-то инструмент",
тип:"инструмент",
location:"спальня",
createdAt:"2015-10-13T10:26:01.14",
lastUpdatedAt:"2015-10-13T10:26:01.14"
}
Создать универсальное приложение для Windows
Поскольку фоновое приложение Iot и REST API готовы, теперь нужно создать универсальное приложение Windows в качестве клиента. Универсальное приложение позволяет использовать один набор кодов для нескольких устройств. В качестве примера я создаю универсальное приложение для планшета (вы можете просто изменить настройку макета для мобильного телефона или ноутбука).
Чтобы создать универсальное приложение, просто нажмите «Файл»> «Создать»> «Проект» в Visual Studio 2015, затем выберите универсальное приложение следующим образом:
После создания нового решения вы можете заменить скрипты cs и файлы .xaml на MyThingApp, которым я поделился в GitHub.
Отладка в универсальном приложении Windows:
Универсальное приложение Windows предоставляет несколько конфигураций отладки, включая платформы ARM, x64 и x86. Если вы запускаете отладку на локальном ПК, который работает под управлением 64-разрядной версии Windows, вам нужно выбрать x64 и нажать зеленую кнопку (Выберите «локальный компьютер»)
если ваше приложение работает без ошибок, оно должно выглядеть примерно так:
Настройка центра уведомлений и push-уведомления UWP
1. После того, как веб-API и универсальное приложение будут готовы, вы можете войти здесь
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
private async void InitNotificationsAsync ()
{
var channel =await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync ();
var hub =new NotificationHub ("уведомление", "Endpoint =sb://smartwardrobe.servicebus.windows.net/; SharedAccessKeyName =DefaultListenSharedAccessSignature; SharedAccessKey =MlHoVfn1Ub / c2ThUha + Crn7hHSCGmqofrW3)
var result =await hub.RegisterNativeAsync (channel.Uri);
}
также вызовите эту новую функцию внутри функции OnLaunched:
защищенное переопределение void OnLaunched (LaunchActivatedEventArgs e)
{
InitNotificationsAsync ();
Наконец, добавьте эту строку кода в MainPage.cs, функцию MainPage ():
this.NavigationCacheMode =NavigationCacheMode.Required;
4. Наконец, настройте задачу потоковой передачи внутри MyThing Web API> MyThingController со следующими кодами:
открытый класс NotificationClass {
внутренний асинхронный System.Threading.Tasks.Task
{
NotificationHubClient hub =NotificationHubClient
.CreateClientFromConnectionString ("<ваша строка подключения>", "<имя хаба>");
var toast =@ "
await hub.SendWindowsNativeNotificationAsync (тост);
return null;
}
}
и следующие коды после успешного создания новой записи:
NotificationClass notClass =new NotificationClass ();
Thread notificationThread =new Thread (async x => {await notClass.SendNotificationAsync (myThing.rfid);});
notificationThread.Start ();
5. После успешной настройки после успешного создания записи будет получено всплывающее уведомление, как показано ниже:
6. щелкните уведомление, и оно запустит приложение MyThingApp, установленное на вашем ПК:
нажмите «ОК», и вы увидите, что новый RFID добавлен в форму ввода. Заполните остальную информацию и обновите.
ССЫЛКИ:
1. Пошаговое руководство по настройке Windows10 Iot Core:- http://ms-iot.github.io/content/en-US/GetStarted.htm
2. Настройка Visual Studio 2015 на вашем ПК:- http://ms-iot.github.io/content/en-US/win10/SetupPCRPI.htm
3. Пошаговая инструкция по установке Windows10 IoT Core на Raspberry Pi2:- 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. Windows на GitHub:- 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. Добавьте push-уведомления в свое приложение для мобильных служб:- 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. опубликуйте в веб-приложении Azure с помощью Visual Studio:- http://docs.asp.net/en/latest/tutorials/publish-to-azure-webapp-using-vs.html
14. Опубликуйте приложение в службе приложений Azure Azure:- http://www.asp.net/web-api/overview/data/using-web-api-with-entity-framework/part-10
Код
- Код Arduino для модуля считывания RFID
Код Arduino для модуля считывателя RFID C / C ++
/ * команда чтения будет отправлена в модуль RFID, как только тег будет прочитан, он вернется обратно в последовательный порт * / # includeSoftwareSerial mySerial (10, 11); // RX, TXvoid setup () {// Открытие последовательной связи и ожидание открытия порта:Serial.begin (9600); в то время как (! серийный) {; // ждем подключения последовательного порта. Требуется только для Леонардо} // устанавливаем скорость передачи данных для порта SoftwareSerial mySerial.begin (9600);} void loop () {// запускаем снова и снова if (mySerial.available ()) {// отправляем команду чтения поверх в сообщение байта модуля RFID [] ={0xA0,0x06,0x80,0x00,0x01,0x02,0x01,0xD6}; mySerial.write (сообщение, sizeof (сообщение)); // отправляем данные обратно в последовательный порт if (Serial.available ()) Serial.write (mySerial.read ()); }}
Где моя вещь на GitHub
https://github.com/seeyouu87/where-is-my-thingИзготовленные на заказ детали и корпуса
Модуль считывания UHF RFID. он используется для чтения метки RFID. uhf_reader_jt2850.svg Модуль считывания UHF RFID. он используется для чтения RFID-метки uhf_reader_jt2850.svg Модуль считывания UHF RFID. он используется для чтения RFID-метки uhf_reader_jt2850.svgСхема
Где моя вещь на Фритцинге
Схемы на Fritzing.org Подключение Arduino к модулю UHF RFID.Производственный процесс
- Шпаргалка по Microsoft Azure 2020
- 3D-печать FDM:где мы сегодня?
- Где преимущество в граничных вычислениях?
- Проверка фактов Индустрии 4.0:где мы находимся сегодня?
- 4 альтернативные пассивные технологии RFID для рассмотрения
- Контроль доступа с помощью QR, RFID и проверки температуры
- Откуда берутся металлы?
- Где строить?
- Откуда возникла концепция пиления?
- Где сжатый воздух?!