GSM Access Hub for Airbnb/Booking Hosts

by niesutam in Circuits > Arduino

130 Views, 1 Favorites, 0 Comments

GSM Access Hub for Airbnb/Booking Hosts

schema.jpg
home2.jpeg
home1.jpeg
sim800l_network_compatibility_ascii.png
device.png

Do you want to manage guest access to your property gate or barrier without involving the property manager?

These are the digital plans, wiring diagrams, and Arduino code that allow you to build your own GSM Access Hub.

The hub acts as a middle layer: it processes incoming calls and SMS commands, checks the whitelist of allowed numbers, and only then dials the gate opener.

TECHNICAL SPECS


Platform: Arduino Mega 2560

GSM module: SIM800L V2 (or compatible)

Quad-band: 850 / 900 / 1800 / 1900 MHz

Data support: GPRS

Supported functions: SMS and voice calls

Power supply: 9 V DC, 3 A

Whitelist capacity: 10 phone numbers (FIFO)

Control via: SMS commands (SETUP, ALLOW, DENY, RESET, RING, PING)

Ring duration: 1–30 seconds (configurable)

LED indicators:

  1. P – GSM module powered on
  2. S – network status (1 s = registering, 3 s = registered)
  3. Boot (yellow LED)
  4. steady on at startup → boot in progress,
  5. blinking every 0.5 s → setup number not configured.


SPECIAL FEATURES

  1. Whitelist management (FIFO) – new numbers automatically overwrite the oldest.
  2. Control call – the gate is dialed only when the incoming call is from a whitelisted number.
  3. Command confirmations – all commands are confirmed by ringing back the sender’s number.
  4. EEPROM storage – settings survive restarts and power loss.


Supplies

Assembly1.jpg

GSM module SIM800L V2

  1. Quad-band GSM module (850/900/1800/1900 MHz) with SMS and voice support.
  2. When choosing, select the variant: Color: 2
  3. Example: SIM800L V2 on AliExpress

Arduino Mega 2560 R3

  1. Powerful board with sufficient memory and serial ports, required for the GSM Access Hub.
  2. We recommend using an original Arduino Mega (higher quality, more reliable USB interface).
  3. In the example, a budget-friendly clone is shown.
  4. When choosing, select the variant: Color: MEGA16U2 with cable (includes quality chipset and USB cable).
  5. Example: Arduino Mega 2560 R3 on AliExpress

Dupont jumper wires (Female–Male, 20 cm, pack of 10)

  1. For connecting SIM800L V2 with Arduino Mega.
  2. When choosing, select variants: Color: M-F-20pin
  3. Example: Dupont wires on AliExpress

Stabilized power supply 9V / 3A (EU/US adapter)

  1. Powers the entire device, minimum 3A recommended due to peaks during transmission.
  2. When choosing, select variants:
  3. Plug Type: according to your country (e.g., EU for Slovakia/Czech Republic),
  4. Output Voltage: 9V,
  5. Output Current: 3A.
  6. Example: 9V 3A adapter on AliExpress

Prusament PETG V0 (1 kg filament)

  1. Recommended filament for 3D printing the enclosure.
  2. High strength, UV resistance, heat resistance.
  3. Example: Prusament PETG V0

Printing the Enclosure

For convenient and safe use of the GSM Access Hub, a 3D model of the enclosure has been prepared.

You can easily print this case at home using a 3D printer.

Supplied files

  1. STL files – suitable for slicing in any software (e.g., PrusaSlicer).
  2. GCODE for Prusa MK3 – ready for immediate printing.

Recommended material

  1. Prusament PETG V0
  2. high strength, UV resistance, higher temperature resistance,
  3. suitable for long-term use.
  4. Alternative: PLA filament – usable, but less durable.

Print settings

  1. Layer height: 0.2 mm
  2. Supports: not required
  3. Infill: 15–20 %
  4. Nozzle: 0.4 mm

Procedure

  1. Open the STL files in your slicer (e.g., PrusaSlicer).

  1. If you are using the supplied GCODE, you can print directly.
  2. Select material (PETG or PLA).
  3. Start printing, print the top and bottom part.

Connecting the GSM Module

Connect the SIM800L V2 GSM module to Arduino Mega:

  1. 5VIN (SIM800L V2) → 5V (Arduino Mega)
  2. GND (SIM800L V2) → GND (Arduino Mega)
  3. TXD (SIM800L V2) → RX1 (pin 19 on Arduino Mega)
  4. RXD (SIM800L V2) → TX1 (pin 18 on Arduino Mega)
  5. GND (UART on SIM800L V2) → GND (Arduino Mega)
  6. Use Dupont F–M jumper wires for these connections.

⚠️ Warning: The SIM800L V2 module is sensitive to voltage drops during transmission. Always use a stabilized power supply with sufficient reserve (min. 3 A).

Inserting the SIM Card

Insert a microSIM card into the SIM slot of the SIM800L V2.

Make sure the SIM card has:

  1. PIN protection disabled,
  2. active voice calls,
  3. SMS sending/receiving enabled.


Mounting the Antenna

Placing Components Into the Case

Insert the Arduino Mega board into the bottom part of the case.

Insert the SIM800L V2 module into the top part of the case as shown in the illustration.

Snap the top and bottom parts of the case together.

Power connection

  1. Plug the stabilized 9V / 3A power adapter into the Arduino Mega jack connector.
  2. Double-check that RX and TX are not swapped (correct wiring: TXD module → RX1 on Mega, RXD module → TX1 on Mega).

✅ Once everything is properly wired and assembled, you can proceed to the next step – uploading the firmware to Arduino Mega.

Uploading Firmware

To make the GSM Access Hub work, you need to upload the provided program (Arduino sketch) into the Arduino Mega board.

This step is performed once during the initial build, or when you want to upgrade to a newer firmware version.

6.1 Preparing the computer

  1. Download and install Arduino IDE from arduino.cc.
  2. Open the file Firmware.txt included in this package.
  3. Inside you will find a direct link to download the latest Arduino sketch (.ino) for your version of the GSM Access Hub (Basic or Secure with PIN).
  4. Download the .ino file from ETSY shop and open it in Arduino IDE.

6.2 Connecting Arduino Mega

  1. Use a USB cable Type A → Type B (classic “printer” cable).
  2. Connect Arduino Mega to the computer via USB.
  3. The computer should automatically recognize the device. If not, install Arduino Mega drivers (included with Arduino IDE).

6.3 Setting up Arduino IDE

  1. Open Arduino IDE on your computer.
  2. In the menu Tools → Board, select Arduino Mega 2560.
  3. In the menu Tools → Port, select the port to which the Arduino is connected (e.g., COM3 on Windows, /dev/ttyUSB0 on Linux).


Installing required libraries

To compile and upload the GSM Access Hub code, you need the following libraries:

  1. EEPROM – included by default in Arduino IDE (no installation required).
  2. GSMSim – available directly via the Arduino Library Manager.
  3. Author: Erdem Arslan
  4. Tested version: 2.0.1

How to install GSMSim:

  1. In Arduino IDE, open Tools → Manage Libraries…
  2. In the Library Manager search bar, type GSMSim.
  3. Find the entry by Erdem Arslan and click Install.
  4. Make sure the installed version is 2.0.1 (tested and verified for this project).
  5. After installation, GSMSim will appear under the installed libraries list.

✅ At this point, your Arduino IDE is ready. You can now open the provided .ino file and upload it to your Arduino Mega.


6.4 Uploading the program



Click the Upload icon (arrow to the right in the top toolbar).

Wait for the compilation and upload process to complete.

If everything is correct, the message Done uploading will appear at the bottom.


6.5 Verifying the upload

  1. In Arduino IDE, go to Tools → Serial Monitor.
  2. Set the baud rate to 115200 baud.

c. After restarting the Arduino, you should see initialization messages appear:

16:48:03.170 -> Current SETUP number: +420XXXXXXXXX
16:48:03.170 -> Current ring duration: 4000
16:48:03.189 -> No PIN set (commands unprotected).
16:48:03.189 -> Initializing call module...
16:48:11.708 -> Call module ready.
16:48:11.708 -> Initializing SMS module...
16:48:19.198 -> SMS module ready.


If you see these messages, the program has been successfully uploaded and the device is ready for configuration.


ℹ️ Note: At this point, you can disconnect the USB cable. Further configuration and control of the device is performed exclusively via SMS commands.

✅ After successfully uploading the program, you can proceed to the next step – initial device setup.


Initial Setup

After successfully uploading the firmware and wiring the GSM Access Hub, the device needs to be configured.

All settings are done using SMS messages sent to the phone number of the SIM card inserted in the SIM800L V2 module.

7.1 Powering on the device

  1. Connect the 9V / 3A power adapter to the jack connector of Arduino Mega.
  2. The SIM800L V2 module powers on automatically.
  3. Watch the LED indicators:
  4. LED P (on SIM800L V2) – solid ON → module powered on.
  5. LED S (on SIM800L V2) – blinks once per second → module is registering on the network.
  6. LED S (on SIM800L V2) – blinks every 3 seconds → module successfully registered to the network.
  7. Yellow LED on Arduino Mega
  8. solid ON after power up → booting,
  9. blinking every 0.5 seconds → setup number not configured.

7.2 Setting the setup number

The setup number is the phone number of your gate or barrier, which will be dialed every time a whitelisted number calls.

  1. Send an SMS to the SIM card in the module with the following format:
SETUP:+421901234567

(replace with your gate/barrier number in international format with “+”).

  1. The device saves this number into EEPROM.
  2. The yellow LED on Arduino Mega stops blinking, indicating that the setup number is configured and the device is ready.

7.3 Adding a number to the whitelist

To grant access, a number must be added to the whitelist.

  1. Send an SMS:
ALLOW:+421987654321
  1. The number is saved in the whitelist.
  2. FIFO logic means that when the list (10 numbers) is full, the oldest entry is automatically replaced by the new one.

7.4 Removing a number from the whitelist

To revoke access for a specific number, send:

DENY:+421987654321

7.5 Clearing the entire whitelist

To reset all saved numbers, send:

RESET

7.6 Setting the ring duration

The default ring duration is 4000 ms (4 seconds).

You can change it with:

RING:5000

This sets the ring duration to 5 seconds. Valid values: 1000–30000 ms (1–30 seconds).

7.7 Testing the PING command

For a quick functionality test, send:

PING

The device will call back the number that sent the SMS.

✅ After setting the setup number and adding the first number to the whitelist, the GSM Access Hub is ready for use.

Usage

After completing the initial setup, the GSM Access Hub works autonomously – no computer or USB connection is needed.

8.1 Calls from allowed numbers (whitelist)

When the device detects a call from a number in the whitelist:

  1. The call is rejected (not answered).
  2. The device automatically calls the setup number (gate/barrier).
  3. The gate or barrier opens according to its configuration.

👉 This is the main function of the GSM Access Hub – guests or users can access the gate simply by calling the SIM card number in the module.

8.2 Calls from unauthorized numbers

When the device detects a call from a number not in the whitelist:

  1. The call rings,
  2. the device never answers it,
  3. the gate is not activated.

8.3 SMS commands during operation

In addition to calls, the device can be controlled and configured via SMS commands sent to the SIM card number in the module.

Supported commands:

  1. SETUP:+421901234567 – change gate/barrier number.
  2. ALLOW:+421987654321 – add number to whitelist.
  3. DENY:+421987654321 – remove number from whitelist.
  4. RESET – clear the entire whitelist.
  5. RING:5000 – change ring duration (in ms, 1000–30000).
  6. PING – test command, device calls back the sender’s number.

👉 All commands are processed immediately and confirmed by a callback to the sender’s number.

8.4 Behavior after restart

  1. In case of power loss or Arduino reset, settings are not deleted.
  2. Setup number and whitelist are stored in EEPROM memory.
  3. The device automatically registers to the mobile network and resumes operation.

8.5 LED indication during operation

  1. LED P (SIM800L V2) – always ON → module powered.
  2. LED S (SIM800L V2) – blinks every 3 seconds → module registered to the network (normal operation).
  3. Yellow LED on Arduino Mega
  4. ON at startup → booting,
  5. blinking every 0.5 seconds → setup number not configured.

✅ At this point, the device is fully functional and ready for daily use.

8.6 FIFO whitelist behavior

The GSM Access Hub manages the list of allowed phone numbers (whitelist) as a FIFO queue (First-In, First-Out):

  1. The whitelist can hold a maximum of 10 numbers.
  2. If the capacity is full and a new number is added using the ALLOW command:
  3. the oldest stored number is automatically overwritten,
  4. the whitelist always contains the 10 most recently added numbers.
  5. The user does not need to manually remove old numbers – the system handles this automatically.
  6. If needed, a specific number can still be removed manually using the DENY command.

👉 This ensures simple and efficient guest access management – the host only adds new numbers, and the system takes care of the rest.

Textual diagram

Current whitelist (max 10 numbers):

[1] +421900111111 (oldest)
[2] +421900222222
[3] +421900333333
...
[10] +421900999999 (newest)

New command:
ALLOW:+421901000000

Result:
[1] +421900222222 (oldest number removed)
[2] +421900333333
...
[10] +421901000000 (new number added at the end)


Testing

After the initial setup, it is recommended to test the proper functionality of the device. The following steps will help you verify that all GSM Access Hub functions work as intended.

9.1 Testing the setup number

  1. Verify that the setup number is correctly configured with:
SETUP:+421901234567
  1. If the number is not set, the yellow LED on Arduino Mega blinks every 0.5 seconds.
  2. Once set, the LED stops blinking → device is ready.

9.2 Testing the whitelist

  1. Add your phone number to the whitelist with:
ALLOW:+421987654321
  1. Call the SIM card number in the module.
  2. If your number is in the whitelist: the device rejects the call and dials the setup number (gate/barrier).
  3. If your number is not in the whitelist: the call rings but is not answered, and the gate is not activated.

9.3 Testing SMS commands

  1. Try adding another number:
ALLOW:+421900111222

→ the device saves the number and confirms with a callback.

  1. Try changing the ring duration:
RING:5000

→ the setting is saved, and the device confirms again with a callback.

9.4 Testing the RESET command

  1. Send SMS:
RESET
  1. The device clears the entire whitelist.
  2. Try calling from a previously allowed number → call rings but gate is not activated.

9.5 Testing the PING command

  1. Send SMS:
PING
  1. The device automatically calls back the sender’s number.
  2. This verifies the module is registered on the network and responding correctly.

9.6 Testing after restart

  1. Disconnect power, wait a few seconds, reconnect power.
  2. The device automatically registers to the network.
  3. Settings (setup number, whitelist, ring duration) remain stored in EEPROM.

✅ After completing these tests, you can be sure that the GSM Access Hub works reliably and is ready for regular operation.

Troubleshooting

Even with proper wiring, problems may occur.

This section will help you quickly diagnose the most common issues and provides recommended solutions.


10.1 Module does not register to the network

Symptom:

  1. LED S on SIM800L V2 blinks rapidly (every second) even after several minutes.

Possible causes and solutions:

  1. SIM card has active PIN protection → insert into a phone and disable PIN.
  2. Weak signal → try another location with better coverage or another SIM card.
  3. Wrong operator or blocked SIM → verify SIM has active voice and SMS services.
  4. Insufficient power supply → ensure you are using 9V / 3A power adapter.


10.2 Module restarts during call or SMS

Symptom:

  1. SIM800L shuts down or resets during outgoing call.

Possible causes and solutions:

  1. Insufficient power supply → use stabilized power adapter with at least 3A current.
  2. Loose connections → check Dupont F–M jumper wires and power contacts.


10.3 Device does not respond to calls

Symptom:

  1. You call the SIM card, but nothing happens.

Possible causes and solutions:

  1. Setup number not configured → yellow LED on Arduino Mega blinks every 0.5 seconds.
  2. Your number is not in the whitelist → add it with ALLOW:+421....
  3. EEPROM corrupted or empty → reconfigure with SETUP:+421... and ALLOW:+421....


10.4 SMS commands not working

Symptom:

  1. After sending SMS, nothing happens, no callback received.

Possible causes and solutions:

  1. Incorrect command format → commands must be exactly like:
ALLOW:+421987654321

(no spaces or extra characters).

  1. SMS not delivered to the module → check SIM card has active SMS services and credit.
  2. Module overloaded with messages → the device deletes all SMS after processing (sms.deleteAll()), try restart


10.5 Yellow LED on Arduino Mega is blinking

Symptom:

  1. Yellow LED blinks every 0.5 seconds.

Possible causes and solutions:

  1. Setup number not configured.
  2. Send SMS command:
SETUP:+421901234567
  1. After setting, LED turns off → device ready.


10.6 Yellow LED stays solid after startup

Symptom:

  1. After powering on, yellow LED stays ON and does not turn off.

Possible causes and solutions:

  1. Device is initializing (normal behavior after startup).
  2. If LED stays ON longer than 60 seconds → module failed to register, check SIM card and signal.

✅ Solving the above issues will fix most problems.

If the device still does not work, re-upload firmware and repeat from step 6 (Initial Setup).

Safety Recommendations

Using the GSM Access Hub is safe and reliable if you follow these rules.

Correct power supply, proper setup, and careful whitelist management are key to trouble-free operation.

11.1 Power and hardware

  1. Always use a stabilized 9V / 3A DC power supply. Weaker adapters may cause restarts or call failures.
  2. All GND pins must be interconnected between Arduino Mega and SIM800L V2.
  3. Ensure firm Dupont wire connections to avoid interruptions during operation.

11.2 SIM card

  1. Use a SIM card with disabled PIN protection.
  2. Verify that it has active voice and SMS services.
  3. For prepaid cards, make sure there is always enough credit for SMS and calls.

11.3 Whitelist and access numbers

  1. Manage the whitelist carefully – the device only grants access to numbers stored inside.
  2. FIFO logic means the newest number always replaces the oldest one.
  3. For short-term guests (Airbnb/Booking), always remove their numbers after checkout (DENY or RESET).

11.4 Difference between Basic and Secure versions

Basic version (no PIN):

  1. Easier configuration.
  2. Only SIM card number required to send commands (e.g., ALLOW:+421...).
  3. Suitable when only the owner knows the SIM card number.

Secure version (with PIN):

  1. Activated by setting a PIN code.
  2. First command:
PIN:1234

(sets a new PIN, no default PIN exists).

  1. After PIN is set, all commands must include the correct PIN prefix:
1234:ALLOW:+421987654321
  1. If a command does not contain the correct PIN prefix, the device ignores it.
  2. PIN can later be changed or disabled (PIN:OFF).

11.5 Command overview

Basic version (no PIN):

SETUP:+421901234567
ALLOW:+421987654321
DENY:+421987654321
RESET
RING:5000
PING

Secure version (with PIN 1234):

PIN:1234 ← initial PIN setup
1234:SETUP:+421901234567
1234:ALLOW:+421987654321
1234:DENY:+421987654321
1234:RESET
1234:RING:5000
1234:PING
1234:PIN:5678 ← change PIN
1234:PIN:OFF ← disable PIN protection

11.6 Recommendations for Airbnb/Booking hosts

  1. Before guest arrival, add their number to whitelist (ALLOW).
  2. After guest departure, remove their number (DENY) or reset whitelist (RESET).
  3. With Secure version, never share PIN with guests. PIN is for administrator only.

✅ Following these principles ensures GSM Access Hub operates reliably and securely, both in the simple Basic version and in the enhanced Secure version with PIN protection.