我正在尝试制作一个 Alexa 控制的按钮按压器,并用伺服器来驱动按钮。我正在使用 Uno R4 Wifi,但遇到了此错误:
ArduinoIoTCloudTCP::handle_ConnectMqttBroker 无法连接到 mqtts-up.iot.arduino.cc:8884 ArduinoIoTCloudTCP::handle_ConnectMqttBroker 在滴答时间 27850 进行 1 次连接尝试
这是我的代码:
#include "thingProperties.h"
#include "WiFiS3.h"
#include "Servo.h"
#include "Arduino_WiFiConnectionHandler.h"
char ssid[] = "ASK4 Wireless";
int status = WL_IDLE_STATUS;
WiFiServer server(80);
Servo myservo;
void setup() {
//Initialize serial and wait for port to open:
Serial.begin(9600);
delay(1500);
myservo.attach(7);
//initProperties();
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// check for the WiFi module:
if (WiFi.status() == WL_NO_MODULE) {
Serial.println("Communication with WiFi module failed!");
// don't continue
while (true)
;
}
String fv = WiFi.firmwareVersion();
if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
Serial.println("Please upgrade the firmware");
}
// attempt to connect to WiFi network:
while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
status = WiFi.begin(ssid);
// wait 10 seconds for connection:
delay(10000);
}
server.begin();
// you're connected now, so print out the status:
printWifiStatus();
while (ArduinoCloud.connected() == false) {
ArduinoCloud.update();
delay(500);
}
}
void printWifiStatus() {
// print your board's IP address:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
// print the received signal strength:
long rssi = WiFi.RSSI();
Serial.print("signal strength (RSSI):");
Serial.print(rssi);
Serial.println(" dBm");
}
void loop() {
// put your main code here, to run repeatedly:
//Serial.print("Test");
ArduinoCloud.update();
delay(2500);
}
void onFanChange() {
// Add your code here to act upon ExtractorFan change
myservo.write(0);
delay(1000);
myservo.write(120);
}
这是我多年来的第一个合适的项目,因此感谢所有建议。
(仅供参考,我住在使用 ASK4 互联网的建筑物中。对于此服务,您必须将设备的 MAC 地址添加到您的帐户才能连接。我已通过监视器确认它确实连接到 wifi但也会出现此错误。我可以将设备添加到我的 Alexa 帐户,但没有任何反应。)
TIA :)
我尝试浏览网络和各种论坛。没有任何帮助。
我从遇到的错误中了解到,这主要与使用 Arduino Uno R4 Wifi 连接到 mqtts 有关。下面的教程使用 ArduinoMqttClient 和 WiFiNINA 库以及 uno-wifi-r2 通过 MQTT 发送数据,我希望这可能有助于成功实现与 Mqtts 的连接:
我注意到您可以通过 Alexa 应用程序上的 Arduino 技能添加设备,因此我怀疑与 mqtts 代理正确建立连接时仍然存在问题,您可能会通过查看 Arduino 找到有关 arduino 和 mqtts 相关问题、配置的更多资源论坛和文档解决类似问题
就 Alexa 而言,我知道您肯定正在使用 Arduino 技术来正确发现设备,但无法继续和控制设备,一旦在您的设置中解决了 mqtts 连接错误,这个问题可能会得到解决。