Iot/Arduino
arduino nano 33 IoT _ 무선 wifi 연결 + mqtt 통신
잉_민
2024. 4. 15. 22:17
728x90
반응형
이거 무선으로 해도된다.
외장 배터리를 사용했을 때 wifi 자동연결안되서.. 하루 보냄..
#include <WiFiNINA.h>
#include <ArduinoMqttClient.h>
char ssid[] = "와이파이아이디"; // your network SSID (name)
char pass[] = "비번"; // your network password (use for WPA, or use as key for WEP)
int count = 0;
const long interval = 1000;
unsigned long previousMillis = 0;
int ledPin = 13;
WiFiClient wifiClient;
MqttClient mqttClient(wifiClient);
const char broker[] = "test.mosquitto.org";
int port = 1883;
const char topic[] = "arduino/led";
void setup() {
pinMode(ledPin, OUTPUT);
// attempt to connect to WiFi network
while (WiFi.begin(ssid, pass) != WL_CONNECTED) {
delay(1000);
Serial.println("WiFi try...");
// 와이파이 연결 중 표시를 위해 LED를 깜박입니다.
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
}
// 와이파이에 연결되었음을 표시하기 위해 LED를 3번 깜박입니다.
for (int i = 0; i < 3; i++) {
digitalWrite(ledPin, HIGH);
delay(50);
digitalWrite(ledPin, LOW);
delay(50);
}
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
if (!mqttClient.connect(broker, port)) {
Serial.print("MQTT connection failed! Error code = ");
Serial.println(mqttClient.connectError());
while (1);
}
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
mqttClient.poll();
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
// save the last time a message was sent
previousMillis = currentMillis;
Serial.print("Sending message to topic: ");
Serial.println(topic);
Serial.print("hello ");
Serial.println(count);
// send message, the Print interface can be used to set the message contents
mqttClient.beginMessage(topic);
mqttClient.print("hello ");
mqttClient.print(count);
mqttClient.endMessage();
Serial.println();
count++;
}
}
728x90
반응형