mirror of
https://github.com/mrcory/arduino-home-assistant.git
synced 2026-08-02 15:24:26 -04:00
Add support for Arduino Nano 33 IoT (SAMD) (#5)
* fix compilation errors * add support for Nano 33 IoT * bump up version, update link in README.md
This commit is contained in:
@@ -18,6 +18,8 @@ but I successfully use it on ESP8266/ESP8255 boards in my projects.
|
||||
* [Multi-state button](examples/multi-state-button/multi-state-button.ino)
|
||||
* [Sensor (temperature, humidity, etc.)](examples/sensor/sensor.ino)
|
||||
* [NodeMCU Wi-Fi](examples/nodemcu/nodemcu.ino)
|
||||
* [Arduino Nano 33 IoT Wi-Fi (SAMD)](examples/nano33iot/nano33iot.ino)
|
||||
* [Availability feature](examples/availability)
|
||||
|
||||
## Tested boards
|
||||
|
||||
@@ -28,6 +30,7 @@ but I successfully use it on ESP8266/ESP8255 boards in my projects.
|
||||
* NodeMCU
|
||||
* ESP-01
|
||||
* Generic ESP8266/ESP8255
|
||||
* Arduino Nano 33 IoT (SAMD)
|
||||
|
||||
## Tested Arduino Shields
|
||||
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
#include <WiFiNINA.h>
|
||||
#include <ArduinoHA.h>
|
||||
|
||||
#define LED_PIN 9
|
||||
#define BROKER_ADDR IPAddress(192,168,0,17)
|
||||
#define WIFI_SSID "MyNetwork"
|
||||
#define WIFI_PASSWORD "MyPassword"
|
||||
|
||||
WiFiClient client;
|
||||
HADevice device;
|
||||
HAMqtt mqtt(client, device);
|
||||
HASwitch led("led", false, mqtt); // you can use custom name in place of "led"
|
||||
|
||||
void onSwitchStateChanged(bool state, HASwitch* s)
|
||||
{
|
||||
digitalWrite(LED_PIN, (state ? HIGH : LOW));
|
||||
}
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
Serial.println("Starting...");
|
||||
|
||||
// Unique ID must be set!
|
||||
byte mac[WL_MAC_ADDR_LENGTH];
|
||||
WiFi.macAddress(mac);
|
||||
device.setUniqueId(mac, sizeof(mac));
|
||||
|
||||
pinMode(LED_PIN, OUTPUT);
|
||||
digitalWrite(LED_PIN, LOW);
|
||||
|
||||
// connect to wifi
|
||||
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
|
||||
while (WiFi.status() != WL_CONNECTED) {
|
||||
Serial.print(".");
|
||||
delay(500); // waiting for the connection
|
||||
}
|
||||
Serial.println();
|
||||
Serial.println("Connected to the network");
|
||||
|
||||
// set device's details (optional)
|
||||
device.setName("Nano 33 IoT");
|
||||
device.setSoftwareVersion("1.0.0");
|
||||
|
||||
// handle switch state
|
||||
led.onStateChanged(onSwitchStateChanged);
|
||||
|
||||
mqtt.begin(BROKER_ADDR);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
mqtt.loop();
|
||||
}
|
||||
@@ -14,11 +14,11 @@ HAMqtt mqtt(client, device);
|
||||
/**
|
||||
* Supported data types:
|
||||
* - uint8_t
|
||||
* - uint16_t (unsigned int)
|
||||
* - uint32_t (unsigned long)
|
||||
* - uint16_t
|
||||
* - uint32_t
|
||||
* - int8_t
|
||||
* - int16_t (int)
|
||||
* - int32_t (long)
|
||||
* - int16_t
|
||||
* - int32_t
|
||||
* - double
|
||||
* - float
|
||||
*/
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
name=home-assistant-integration
|
||||
version=1.1.0
|
||||
version=1.1.1
|
||||
author=Dawid Chyrzynski <dawid.chyrzynski@gmail.com>
|
||||
maintainer=Dawid Chyrzynski <dawid.chyrzynski@gmail.com>
|
||||
sentence=Home Assistant MQTT integration for Arduino
|
||||
|
||||
+3
-4
@@ -1,4 +1,3 @@
|
||||
#include <IPAddress.h>
|
||||
#include <PubSubClient.h>
|
||||
|
||||
#include "HAMqtt.h"
|
||||
@@ -24,13 +23,13 @@
|
||||
static const char* DefaultDiscoveryPrefix = "homeassistant";
|
||||
static HAMqtt* instance = nullptr;
|
||||
|
||||
void onMessageReceived(char* topic, uint8_t* payload, uint16_t length)
|
||||
void onMessageReceived(char* topic, uint8_t* payload, unsigned int length)
|
||||
{
|
||||
if (instance == nullptr) {
|
||||
if (instance == nullptr || length > UINT16_MAX) {
|
||||
return;
|
||||
}
|
||||
|
||||
instance->processMessage(topic, payload, length);
|
||||
instance->processMessage(topic, payload, static_cast<uint16_t>(length));
|
||||
}
|
||||
|
||||
HAMqtt::HAMqtt(Client& netClient, HADevice& device) :
|
||||
|
||||
+2
-3
@@ -1,10 +1,9 @@
|
||||
#ifndef AHA_HAMQTT_H
|
||||
#define AHA_HAMQTT_H
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <Client.h>
|
||||
#include <IPAddress.h>
|
||||
|
||||
class IPAddress;
|
||||
class Client;
|
||||
class PubSubClient;
|
||||
class HADevice;
|
||||
class BaseDeviceType;
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
#ifdef ARDUINO_ARCH_SAMD
|
||||
#include <avr/dtostrf.h>
|
||||
#endif
|
||||
|
||||
#include "HASensor.h"
|
||||
#include "../ArduinoHADefines.h"
|
||||
#include "../HAMqtt.h"
|
||||
|
||||
Reference in New Issue
Block a user