网络问题
电脑能ping通arm板,arm却ping不通电脑
将电脑防火墙关闭再试试能否ping通
arm板能ping通pc却ping不通外网
折腾很久,最后发现是arm不能通过电脑wifi网口与外界连接,必须得打开wlan适配器的共享功能:控制面板->网络和共享中心->
更改适配器
会发现以太网ip被强制配置成以上
所以arm板也要配置ip
1、配置IP
ifconfig eth0 192.168.137.2 up
2、配置网关
route add default gw 192.168.137.1
尝试ping 8.8.8.8 可以ping通
能ping ip但是不能ping 网址
ping baidu.com
发现无法连接
这是因为dns没有配置
将文件 /etc/resolv.conf 修改成以下内容
nameserver 114.114.114.114
nameserver 8.8.8.8
ping baidu.com
这样arm板才能有连接emqx云服务器的基础
连接emqx cloud失败问题
paho_mqtt_c 的 ssl 连接
由于我是最基础emqx云,要用ssl方式连接
- 修改 连接服务器地址部分
#define BROKER_ADDRESS "ssl://个人服务器地址:8883"
- 修改 创建客户端部分
MQTTClient client;
int rc;
MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer;
MQTTClient_willOptions will_opts = MQTTClient_willOptions_initializer;
MQTTClient_message pubmsg = MQTTClient_message_initializer;
/* 创建mqtt客户端对象 */
/* ssl连接*/
MQTTClient_SSLOptions ssl_opts=MQTTClient_SSLOptions_initializer;
/* 创建mqtt客户端对象 */
if (MQTTCLIENT_SUCCESS !=
(rc = MQTTClient_create(&client,BROKER_ADDRESS, CLIENTID, MQTTCLIENT_PERSISTENCE_NONE, NULL)) )
{
printf("Failed to create ssl client, return code %d\n", rc);
rc = EXIT_FAILURE;
goto exit;
- 修改 创建连接部分
/* 连接MQTT服务器 */
will_opts.topicName = WILL_TOPIC; //遗嘱主题
will_opts.message = "Unexpected disconnection";//遗嘱消息
will_opts.retained = 1; //保留消息
will_opts.qos = 0; //QoS0
conn_opts.will = &will_opts;
conn_opts.keepAliveInterval = 60; //心跳包间隔时间
conn_opts.cleansession = 0; //cleanSession标志
conn_opts.username = USERNAME; //用户名
conn_opts.password = PASSWORD; //密码
/* ssl连接*/
ssl_opts.enableServerCertAuth=0;
ssl_opts.sslVersion=MQTT_SSL_VERSION_DEFAULT;
conn_opts.ssl=&ssl_opts;
if (MQTTCLIENT_SUCCESS !=
(rc = MQTTClient_connect(client, &conn_opts))) {
printf("Failed to connect, return code %d\n", rc);
rc = EXIT_FAILURE;
goto destroy_exit;
}
printf("MQTT服务器连接成功!\n");
创建客户端返回错误代码-14
MQTTClient_create() return error(MQTTCLIENT_BAD_PROTOCOL:-14)
这是由于未链接启用 TLS 的库版本(paho-mqtt3cs,而不是 paho-mqtt3c),则会返回此错误代码
修改CMake
target_link_libraries(mqttClient PRIVATE paho-mqtt3cs)
重新CMake->make->上传可执行文件
最感动的一集😭(有解决问题的话点个👍吧🤔)
参考文章:
https://blog.youkuaiyun.com/guangtou7588/article/details/124030624