- find the wifi adaptor name
lshw
ls /sys/class/net
it was wlan0 in my case
- edit /etc/netplan/50-cloud-init.yaml
network:
ethernets:
eth0:
dhcp4: true
optional: true
version: 2
wifis:
wlan0:
optional: true
access-points:
"SSID-NAME":
password: "your_password"
dhcp4: yes

- Test the config
netplan try
netplan --debug try
This command will make the above changes for 120seconds if anything wrong it will be reverted back. OR you can hit Enter to make the changes.
- apply config
netplan generate
netplan apply
#enable wifi module
modprobe brcmfmac
#disable
modprobe -rv brcmfmac
nano /etc/modprobe.d/raspi-blacklist.conf
blacklist brcmfmac
blacklist brcmutil
- Stop wifi without reboot
#disable
rfkill block wifi
#enable
rfkill unblock wifi
- Using NMCLI
nmcli d
nmcli d wifi list
nmcli d wifi connect my_wifi password <password>
#### with BSSID
root@lp-arm-3:~# nmcli device wifi list
IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY
xx:06:C3:CD:57:xx TP-Link_123 Infra 153 270 Mbit/s 100 ▂▄▆█ WPA2
* xx:06:C3:CD:57:xx TP-Link_123 Infra 2 130 Mbit/s 93 ▂▄▆█ WPA2
====================
nmcli d wifi connect xx:06:C3:CD:57:xx password PASSWORD
https://ubuntu.com/core/docs/networkmanager/configure-wifi-connections