PI外挂ESP不要esp-hosted方案-全部流程
作者:互联网
0---
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-32-bit
准备SD卡放好资料
1----
sudo cp sources.list /etc/apt/sources.list
sudo cp raspi.list /etc/apt/sources.list.d/raspi.list
sudo nano /etc/apt/sources.list
sudo nano /etc/apt/sources.list.d/raspi.list
2----
apt-get update
apt-get full-upgrade
3----准备GO环境
tar zxvf go1.17.1.linux-armv6l.tar.gz
sudo mv go /usr/local
export PATH=$PATH:/usr/local/go/bin
{
export GOPATH=/***/***这样设置的gopath只会在当前终端有效,一旦重启终端或者机器断电就会失效。可以直接将此命令写到终端启动脚本。
vim ~/.bashrc
在最后一行加上
export GOPATH=/***/***
执行source ~/.bashrc使设置的环境变量立马生效,这样每次打开时,gopath就是你自己设置的值了,不用每次都手动设置。
————————————————
版权声明:本文为CSDN博主「程小二」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011939264/article/details/105146633/
我们就这样
roy:
sudo echo 'export PATH=$PATH:/usr/local/go/bin' | cat >> .profile #add golang path
source .profile #reload bash setting
koson:
cd ~ //去到ROOT的根目录
cp .profile .profile_old //备份一下
echo "export PATH=$PATH:/usr/local/go/bin" >> .profile //追加在最后
source .profile //刷新一下
}
go version
go run test.go
#国内go超时
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
4--准备BLE测试
https://github.com/tinygo-org/bluetooth
sudo apt update
sudo apt install bluez
sudo apt install git
git clone https://github.com/tinygo-org/bluetooth.git
cd bluetooth
go run ./examples/scanner
或者
root@raspberrypi:/home/pi/bluetooth/examples/advertisement# go build main.go
root@raspberrypi:/home/pi/bluetooth/examples/advertisement# ./main
5--测试我们代码
root@raspberrypi:/home/pi# cd m_izar_rpi_gw/
root@raspberrypi:/home/pi/m_izar_rpi_gw# bash build.bash
root@raspberrypi:/home/pi/m_izar_rpi_gw# ./rpi_gw
正常测试
PI需要8S连接成功
5--准备挂接
注意C3和PI是3根线连接的 同时C3需要白色供电!!!!!!!!!!!!必须供电!!!!!!
C3固件是
--PINs: TxD 4, RxD 5, RTS -1, CTS -1
--Baudrate: 115200[0m
dtoverlay=uart2
dtoverlay=uart3
dtoverlay=disable-bt
只是增加 复位 一切原来的
ls -l /dev
crw-rw---- 1 root dialout 204, 64 Oct 21 04:01 ttyAMA0 --本来就有的
crw-rw---- 1 root dialout 204, 65 Oct 21 04:01 ttyAMA1 --增加dtoverlay=uart2
crw-rw---- 1 root dialout 204, 66 Oct 21 04:01 ttyAMA2 --增加dtoverlay=uart3
pi@raspberrypi:~ $ ls -l /dev | grep serial
lrwxrwxrwx 1 root root 7 Oct 21 03:27 serial1 -> ttyAMA0
sudo btattach -N -B /dev/ttyAMA1 -S 115200
挂起来PI的正常使用 但是不知道怎么切换
在加一句话 可以看到PI自己的没有了 只有我们C3的!!!!
准备S3
#define GPIO_UART_TXD_OUT (4)
#define GPIO_UART_RXD_IN (5)
#define GPIO_UART_RTS_OUT (-1)
#define GPIO_UART_CTS_IN (-1)
一样的 替换c3 发现S3不行
准备ESP32:
D:\A-ESP-IDF\examples\bluetooth\hci\controller_hci_uart_esp32\main\controller_hci_uart_demo.c
U1--921600 --- uart_set_pin(CONFIG_BTDM_CTRL_HCI_UART_NO, 5, 18, -1, -1);
测试不行 把上面的代码替换我CSDN的 可以了https://blog.csdn.net/weixin_42381351/article/details/120828806?spm=1001.2014.3001.5501
sudo btattach -N -B /dev/ttyAMA1 -S 115200
此时是U2连接的ESP32
也就是硬件3+3
增加3句话
添加2句话可以的
现在试试不要BT
测试U3 dtoverlay=uart3 已经增加了
杜邦线连接好了3个
USB供电好了
再次 sudo btattach -N -B /dev/ttyAMA2 -S 115200
好了 现在出现2个HCI了!!!!
测试
dtoverlay=uart2
dtoverlay=uart3
#dtoverlay=disable-bt
sudo btattach -N -B /dev/ttyAMA1 -S 115200
sudo btattach -N -B /dev/ttyAMA2 -S 115200
可以出现3个HCI
继续S3接线3个下面这个不行
sudo btattach -N -B /dev/ttyAMA3 -S 115200
准备脚本方式
cd /home/pi/esp-hosted/host/linux/host_control
./rpi_init.sh btuart
有问题
sudo apt-get update && sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel
sudo apt-get install raspberrypi-kernel-headers
reboot
记录当前的样子:
#dtoverlay=vc4-fkms-v3d
dtoverlay=uart2
dtoverlay=uart3
dtoverlay=uart4
#dtoverlay=disable-bt
就是U4没有起来!
继续S3
1---
bt_init()
{
sudo raspi-gpio set 1 a0 pu
sudo raspi-gpio set 0 a0 pu
sudo raspi-gpio set 16 a3 pu
sudo raspi-gpio set 17 a3 pu
}
测试--
sudo hciattach -s 115200 /dev/ttyAMA1 any 115200 noflow nosleep
使用U2不要硬件
不行
enable_uart=1
加一句话
bt_init()
{
sudo raspi-gpio set 1 a0 pu
sudo raspi-gpio set 0 a0 pu
sudo raspi-gpio set 2 a3 pu
sudo raspi-gpio set 3 a3 pu
}
https://forums.raspberrypi.com/viewtopic.php?t=309763
dtoverlay=uart2,ctsrts
sudo systemctl disable hciuart
++放弃了+++全部还原 前面已经执行了的sudo systemctl disable hciuart
bt_init()
{
sudo raspi-gpio set 15 a0 pu
sudo raspi-gpio set 14 a0 pu
sudo raspi-gpio set 16 a3 pu
sudo raspi-gpio set 17 a3 pu
}
接线
$ nano /lib/systemd/system/hciuart.service
[Unit]
Description=Configure Bluetooth Modems connected by UART
ConditionFileNotEmpty=/proc/device-tree/soc/gpio@7e200000/bt_pins/brcm,pins
After=dev-serial1.device
[Service]
Type=forking
ExecStart=/usr/bin/btuart
[Install]
WantedBy=multi-user.target
pi@raspberrypi:~/m_izar_rpi_gw/bluetooth_mcube/examples/advertisement $
pi@raspberrypi:~/m_izar_rpi_gw/bluetooth_mcube/examples/advertisement $ ./main
panic: failed to enable BLE stack:
AdapterExists: Rejected send message, 2 matched rules;
type="method_call", sender=":1.15" (uid=1000 pid=650 comm="./main ")
interface="org.freedesktop.DBus.ObjectManager"
member="GetManagedObjects" error name="(unset)"
requested_reply="0" destination="org.bluez" (uid=0 pid=613 comm="/usr/lib/bluetooth/bluetoothd ")
1. 停止bluetoothd
rfkill block bluetooth
sudo service bluetooth stop
rfkill unblock bluetooth
sudo service bluetooth start
sudo service bluetooth restart 已经down的板载蓝牙再吃Up
好了
2. 启动自己编译的bluetoot
标签:ESP,sudo,esp,bluetooth,raspberrypi,dtoverlay,hosted,go,raspi 来源: https://blog.csdn.net/weixin_42381351/article/details/120908599