Good Day Everyone,
I’m getting ready to build a new keypad to control access to my gate. The main reason why I want to do this is that I can integrate the codes with the locks at the property for example, AirBnB guest arrives I no longer have to give out the master code to the gate anymore and they can instead use the code that Rental Control programs into the lock to control the gate.
So I have to use a W32T ESP board for down at the gate, there is just no way I can expect a standard ESP WiFi board to have enough strength to reach back the 1/4 mile to the outdoor wifi access point. My phone even struggles with reaching down there, I mean it will do it but if I have to face the house directly.
Right now the gate is connected back to the house via WiFi bridge and that works great, I have a PoE switch down there for powering my cameras and I intend to use a PoE splitter to power the W32T since I don’t have on hand at the moment any of the PoE variants.
That being said while I haven’t started the board construction yet I did start to throw together the ESPHome code for it but as the examples from ESPHome for the Matrix keypad reference pins that these boards do not have I wanted to know which pins I can substitute in place of the ones in the examples, I know that there are certain pins that are for input. Or if its even possible to achieve with this board.
Here is my code
substitutions:
devicename: gatekeypad ##this will be the device name like "water_station_1" "outdoor_light_5"
purpose: gate access control ##this will be the purpose of the switch like recirculation, illumination, or irrigation
subject: gate keypad ## this is what its interface is acting on like "garden", "water heater", or "zone_1"
##################################################################
esphome:
name: $devicename
platform: ESP32
board: esp-wrover-kit
# Enable logging
logger:
level: DEBUG
ethernet:
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO0_IN
phy_addr: 1
power_pin: GPIO16
manual_ip:
static_ip: 192.168.X.X
gateway: 192.168.X.X
subnet: 255.255.255.0
matrix_keypad:
id: gatekeypad
rows:
- pin: 21
- pin: 19
- pin: 18
- pin: 5
columns:
- pin: 17
- pin: 16
- pin: 4
- pin: 15
keys: "123A456B789C*0#D"
has_diodes: false
key_collector:
- id: pincode_reader
source_id: gatekeypad
min_length: 4
max_length: 4
end_keys: "#"
end_key_required: true
back_keys: "*"
clear_keys: "C"
allowed_keys: "0123456789"
timeout: 5s
on_progress:
- logger.log:
format: "input progress: '%s', started by '%c'"
args: [ 'x.c_str()', "(start == 0 ? '~' : start)" ]
on_result:
- logger.log:
format: "input result: '%s', started by '%c', ended by '%c'"
args: [ 'x.c_str()', "(start == 0 ? '~' : start)", "(end == 0 ? '~' : end)" ]
on_timeout:
- logger.log:
format: "input timeout: '%s', started by '%c'"
args: [ 'x.c_str()', "(start == 0 ? '~' : start)" ]
And for reference here is the board I’m using
Thank you all for your help with this it is greatly appreciated.