Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zebradevs/rfid-iotconnector-mqtt-dotnet-dockdoorsample
.NET Sample of basic IoT Connector functionalities on Zebra FX readers using MQTT
https://github.com/zebradevs/rfid-iotconnector-mqtt-dotnet-dockdoorsample
fx iot iotconnector mqtt rfid zebra
Last synced: about 1 month ago
JSON representation
.NET Sample of basic IoT Connector functionalities on Zebra FX readers using MQTT
- Host: GitHub
- URL: https://github.com/zebradevs/rfid-iotconnector-mqtt-dotnet-dockdoorsample
- Owner: ZebraDevs
- License: mit
- Created: 2022-07-15T12:09:41.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-09-23T13:02:52.000Z (over 2 years ago)
- Last Synced: 2024-04-24T07:22:12.342Z (9 months ago)
- Topics: fx, iot, iotconnector, mqtt, rfid, zebra
- Language: C#
- Homepage:
- Size: 178 KB
- Stars: 7
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: Code_of_Conduct.md
Awesome Lists containing this project
README
# Zebra RFID IoT Connector - MQTT - Dock Door Sample
## Concept
```
----------------| |----------------
Warehouse 1 | | Warehouse 2
| |
| |
DOCK DOOR OUT ------> DOCK DOOR IN
| |
FX READER 1 | | FX READER 2
| |
----------------| |----------------
```This sample is based on the fixed reader dock door use case.
Basically, pallets from Warehouse 1 are transferred to Warehouse 2 passing thru a dock door.
Each dock door has a fixed RFID reader that reads all the tags passing by.
When a reading event is triggered, this application:
- Create a Sublot with the read tag as identifier (if not exists).
- Identify the movement direction based on the equipment (the reader).
- Move the Sublot either to a generic "Truck" Storage Unit (outbound) or to the Warehouse 2 Storage Unit (inbound) upond movement direction.This demo provides a set of data already configured:
- Warehouse 1, Warehouse 2, and Truck Storage Units.
- A reader on the out position named "myfxOUT" (outbound direction).
- A reader on the out position named "myfxIN" (inbound direction).To use this default setup, the MQTT configuration of your reader should be setup accordingly (see setup section).
# Setup
## Docker Container
### Prerequisites
- Docker (installation guide: https://docs.docker.com/desktop/install/windows-install/)### Setup
Run the following command within the main project directory.
```
docker compose up
```
Once the container is up and running, you can connect your reader.## Connect yours RFID Readers
### Prerequisites
- Supported Readers FX7500, FX9600, ATR7000
- Firmware version 3.10.30 or above
- Reader connected to the same network of your local machine### Setup
- Follow MQTT endpoint configuration guide: https://zebradevs.github.io/rfid-ziotc-docs/other_cloud_support/MQTT/web.html.
- Use your local machine IP as Server Address.
- Default port is 1883.
- Topics should have the following format to work with this demo: "zebra/{your reader name}/{topic name}". Topic names must be:| Endpoint | Topic |
| ------------- | :---: |
|Management Events | events |
|Tag Data Events | data |
|Management Command | mgmt/cmd |
|ManagementResponse | mgmt/res |
|Control Command | ctrl/cmd |
|Control Response | ctrl/res |- If you want to use the pre-defined setup of this demo (without configuring the readers manually), your topics should use the following reader names:
- "myfxOUT" for the reader at Warehouse 1 (e.g."zebra/myfxOUT/events")
- "myfxIN" for the reader at Warehouse 2 (e.g."zebra/myfxIN/events")
- If you want to configure your reader manually, you have to edit the Equipments table from SQL Server adding your readers.#### Connection Setup
![image](https://user-images.githubusercontent.com/101400857/180752287-0b3665b9-24d1-4b24-a87e-62c719e3e0a1.png)
![image](https://user-images.githubusercontent.com/101400857/180755415-9a43a8de-f705-48f8-b6a5-9a8248ed9efd.png)#### Topic Setup
![image](https://user-images.githubusercontent.com/101400857/180752210-b31faf90-e091-493c-b3a0-75340c280895.png)Now your reader is connected to our Demo app.
Start reading tags and enjoy.## Project Structure
### Docker
- **zebraiotconnector.client.mqtt.console** MQTT Client (Core business logic)
- **sql.data** SQL Server instance
- **mosquitto** MQTT Broker### Solution
- ZebraIoTConnector.Client.MQTT.Console: MQTT Client for our reader
- ZebraIoTConnector.DomainModel: DTO (Data Transfer Object) to pass across layers
- ZebraIoTConnector.FXReaderInterface: Additional layer to make business logic independent from the way we communicate with the reader (MQTT, HTTP etc.)
- ZebraIoTConnector.Persistence: DAL (Data Access Layer) Entity Framework is used as ORM
- ZebraIoTConnector.Services: Core business logic.### Database
- __EFMigrationsHistory: Entity Framework schema comparison
- Equipments: Contains the readers to be used
- InventoryOperations: Registers each movement of Sublot (our tag) between readers.
- StorageUnits: Warehouse locations
- Sublots: Full Inventory (our tags)# License
[MIT](LICENSE.txt)