Borda Academy 2021 Project Co-Working Smart Office Hardware Part
Watch Video
·
Report Bug
·
Request Feature
Index
About the Project
·
Products
·
Part List
·
How to Run
·
MQTT
·
Team
In this project there are three different task in the hardware section. These are;
- Capacity Calculation Per Room. Detecting a person if they are in the room and send information according to that.
- Capacity Calculation Per Office. Detecting a person if they are in the office or not using gateways.
- Hotdesk and Meeting Room Scheduling. Controlling e-papers according to the information coming from the server.
There are five different products in the project but only four of them can be coded and one of them can be only configured.
ESP32 - In Room Scanner first scans the bluetooth devices and creates a buffer filled with RSSI signals and MAC addresses of the scanned devices. Later duplicate signals are being averaged and removed from the buffer and passed to the new buffer. Later in the publish MQTT function this buffer is transformed to JSON format and sent along with the MAC address of the device itself to differentiate the rooms (devices) from each other. This information will be processed by the server application and with the threshold value determined for each room the server will decide if the person is in the room and if it is in the room which person it is and send the number of people in the room information to the /nrom topic.
ESP8266 always listens to the topic /nrom and whenever a message comes first by looking at the MAC addresses sent with the message it decides if the message is intended for it or not. If it is intended for that specific device according to the number of people information in the message it lights the NeoPixel LEDs. If the capacity is reached all LEDs will light in the color of red.
E-paper controller ESP32 constantly listens to the publishments coming to the MQTT topic to which it is subscribed. When there is Publishment, it runs the bluetooth functions and does a scan. When it matches the UUID advertised by the shelf label with the UUID data received by MQTT, it establishes a connection with the shelf label. If the connection is successful, it sends the data to the electronic shelf label. If not, it will scan again and try to connect. MQTT sends a warning message to the broker if it cannot find a UUID value to match by scanning.
Electronic Shelf Label is ready for a connection request by ESP32 by constantly making advertisements. The shelf labels used for the hot desk have two different screens. Reserved and Available screens. According to the data received by ESP32, the shelf label display is updated. The shelf labels used for the Meeting Room also have two different screens. Busy and Next event screens. According to the data received by ESP32, the shelf label display is updated.
All the required parts are determined for 2 Hotdesk, 2 Beacon, 2 Room and one Office. If you want to increase the number of rooms that you want to install you have to multiply the ESP8266 Door Light and ESP32 In Room Scanner equipments by two. Each room has one ESP8266 and one ESP32.
Name | How | Piece | How Many | Where |
---|---|---|---|---|
ESP32 | Main Controller | 1 | 1 Per Room/Device | Near the door |
NeoPixel 24 Ring | Capacity Indicator | 1 | 1 Per Room/Device | Near the door |
5V Adapter | Power for ESP32 | 1 | 1 Per Room/Device | Near the door |
4x6cm Soldering Prototype Board | ESP32 Placement | 1 | 1 Per Room/Device | Near the door |
470R 1/4W Resistor | NeoPixel Signal Resistor | 1 | 1 Per Room/Device | Near the door |
5.5x2.21mm DC Power Jack | Power for ESP32 | 1 | 1 Per Room/Device | Near the door |
1x40 Male Header 80 Pin 90 Degree | ESP32 Placement | 1 | 1 Per Room/Device | Near the door |
1x40 Female Header 40 Pin 180 Degree | ESP32 Placement | 1 | 1 Per Room/Device | Near the door |
1000uF Capacitor | NeoPixel Current Protection | 1 | 1 Per Room/Device | Near the door |
6x6x5 Push Button | WiFi Access Point Reset | 1 | 1 Per Room/Device | Near the door |
Blue LED | MQTT Indicator | 1 | 1 Per Room/Device | Near the door |
3D Printed Box Upper-Piece | Box Upper | 1 | 1 Per Room/Device | Near the door |
3D Printed Box Lower-Piece | Box Base Plate | 1 | 1 Per Room/Device | Near the door |
50mm Lens or Glass | To See Onboard Leds | 1 | 1 Per Room/Device | Near the door |
Name | How | Piece | How Many | Where |
---|---|---|---|---|
ESP32 DevkitV4 | Main Controller | 1 | 1 Per Room/Device | Inside the Room |
ESP32 Taoglas 2.4Ghz | External Antenna for ESP32 | 1 | 1 Per Room/Device | Inside the Room |
5V Adapter | Power for ESP32 | 1 | 1 Per Room/Device | Inside the Room |
4x6cm Soldering Prototype Board | ESP32 Placement | 1 | 1 Per Room/Device | Inside the Room |
5.5x2.21mm DC Power Jack | Power for ESP32 | 1 | 1 Per Room/Device | Inside the Room |
1x40 Male Header 80 Pin 90 Degree | ESP32 Placement | 1 | 1 Per Room/Device | Inside the Room |
1x40 Female Header 40 Pin 180 Degree | ESP32 Placement | 1 | 1 Per Room/Device | Inside the Room |
6x6x5 Push Button | WiFi Access Point Reset | 1 | 1 Per Room/Device | Inside the Room |
LEDs | Status LEDs | 3 | 1 Per Room/Device | Inside the Room |
3D Printed Box Upper-Piece | Box Upper | 1 | 1 Per Room/Device | Inside the Room |
3D Printed Box Lower-Piece | Box Base Plate | 1 | 1 Per Room/Device | Inside the Room |
Name | How | Piece | How Many | Where |
---|---|---|---|---|
ESP32 DevkitV4 | Main Controller | 1 | 1 Per Room/Device | Inside the Room |
5V Adapter | Power for ESP32 | 1 | 1 Per Room/Device | Inside the Room |
4x6cm Soldering Prototype Board | ESP32 Placement | 1 | 1 Per Room/Device | Inside the Room |
5.5x2.21mm DC Power Jack | Power for ESP32 | 1 | 1 Per Room/Device | Inside the Room |
1x40 Male Header 80 Pin 90 Degree | ESP32 Placement | 1 | 1 Per Room/Device | Inside the Room |
1x40 Female Header 40 Pin 180 Degree | ESP32 Placement | 1 | 1 Per Room/Device | Inside the Room |
6x6x5 Push Button | WiFi Access Point Reset | 1 | 1 Per Room/Device | Not Added Yet |
LEDs | Status LEDs | 3 | 1 Per Room/Device | Not Added Yet |
3D Printed Box Upper-Piece | Box Upper | 1 | 1 Per Room/Device | Inside the Room |
3D Printed Box Lower-Piece | Box Base Plate | 1 | 1 Per Room/Device | Inside the Room |
Name | How | Piece | How Many | Where |
---|---|---|---|---|
MTag2901 2.9" ESL Tag | Room Status Screen | 1 | 1 per Room | Near the door |
MTag2901 2.7" ESL Tag | Hotdesk Status Screen | 2 | 1 per Table | On the table |
CR2450 3V Battery | Battery for ESL | 2 | 2 per ESL | In ESL |
CR2477 3V Battery | Battery for E7 Beacon | 2 | 1 per People | In Beacon |
G1-C Gateway | BLE Office Covarage | 1 | 1 per Office | Middle of Office |
E7 Plus Beacon | BLE Advertisement | 2 | 1 per People | On People's Pocket |
Extension cable | To Extend Power | 2 | As you require | Near Power |
- You can run the project without all the Leds, power adapters, buttons, cables etc. just by uploading code to the necessary controller boards like ESP32 and ESP8266.
- Download the code for each device. Each document is divided in the files too.
- Download the ESP32 and ESP8266 Packages for board manager in Arduino IDE.
- For ESP32 click Tools->Partition Scheme->Huge APP (3MB/No OTA) so that code can compile.
- You have to use a MQTT Broker for publishing and subscribing topics. From the MQTT Config change the connections to whatever broker you are using.
- If you are using a broker that requires a certificate uncomment the certificate and transform the WifiClient to WiFiClientSecureso that ESP32 or ESP8266 can transfer the certificates. ,
- Pull the Button Pin to the 3.3V if you did not connect the button so that WiFi manager does not reset the WiFi credentials.
- ESP32 In-Room Scanner and ESP8266 uses WifiManager so to connect the devices to the WiFi, if the device is not connected the Access Point will be opened, first you should connect to the wifi network created by device, name will be Fora - [Mac Address of Device] and later a web page application will be opened if you connect to that Access Point. Later you can connect to any wifi.
- After connecting both ESP32 and ESP8266 to WiFi and MQTT Broker you can test the device using the MQTTLens application.
- If you made all the connections like buttons, leds, neopixel etc. you can test the PCB by running the code PCBTester in the Demo files.
- Topic and Data Type documentation can be reached from here.
- To connect the devices you have to use a MQTT Broker. For the connections steps please follow How to Run steps.
Some of the alternatives for the MQTT Broker:
- Deployed RabbitMQ
- Adafruit IO
- EMQX
- HiveMQ (Not Stable)
General Diagram showing the communication can be seen below.