Arduino Library for network connections management

Overview

Arduino Library for network connections management

Check Arduino status Compile Examples status Spell Check status

Library for handling and managing network connections by providing keep-alive functionality and automatic reconnection in case of connection-loss. It supports the following boards:

How-to-use

>>> CONNECTED to network"); } void onNetworkDisconnect() { Serial.println(">>>> DISCONNECTED from network"); } void onNetworkError() { Serial.println(">>>> ERROR"); }">
#include <Arduino_ConnectionHandler.h>
/* ... */
#if defined(BOARD_HAS_WIFI)
WiFiConnectionHandler conMan("SECRET_SSID", "SECRET_PASS");
#elif defined(BOARD_HAS_GSM)
GSMConnectionHandler conMan("SECRET_PIN", "SECRET_APN", "SECRET_GSM_LOGIN", "SECRET_GSM_PASS");
#elif defined(BOARD_HAS_NB)
NBConnectionHandler conMan("SECRET_PIN", "SECRET_APN", "SECRET_GSM_LOGIN", "SECRET_GSM_PASS");
#elif defined(BOARD_HAS_LORA)
LoRaConnectionHandler conMan("SECRET_APP_EUI", "SECRET_APP_KEY");
#endif
/* ... */
void setup() {
  Serial.begin(9600);
  while(!Serial) { }

  setDebugMessageLevel(DBG_INFO);

  conMan.addCallback(NetworkConnectionEvent::CONNECTED, onNetworkConnect);
  conMan.addCallback(NetworkConnectionEvent::DISCONNECTED, onNetworkDisconnect);
  conMan.addCallback(NetworkConnectionEvent::ERROR, onNetworkError);
}

void loop() {
  /* The following code keeps on running connection workflows on our
   * ConnectionHandler object, hence allowing reconnection in case of failure
   * and notification of connect/disconnect event if enabled (see
   * addConnectCallback/addDisconnectCallback) NOTE: any use of delay() within
   * the loop or methods called from it will delay the execution of .check(),
   * which might not guarantee the correct functioning of the ConnectionHandler
   * object.
   */
  conMan.check();
}
/* ... */
void onNetworkConnect() {
  Serial.println(">>>> CONNECTED to network");
}

void onNetworkDisconnect() {
  Serial.println(">>>> DISCONNECTED from network");
}

void onNetworkError() {
  Serial.println(">>>> ERROR");
}
Comments
  • [WIP] Add support for runtime configuration of network parameters

    [WIP] Add support for runtime configuration of network parameters

    This PR is for adding support for configuration of network parameters (SSID/Username/Password for WiFi and APN/Username/Password for GSM/NB) at runtime, to allow the user to (re)configure these parameters after the Connection Handler has been constructed.

    opened by manchoz 9
  • WiFi101OTA not working with ConnectionHandler

    WiFi101OTA not working with ConnectionHandler

    Just added WiFiConnectionHandler to code that previously used WiFi101 for MKR1000 board but now the WiFiOTA does not register the board in the ports selection. If I remove ConnectionHandler and revert back to WiFI101 natively (I know ConnectionHandler just calls this library after testing for ARCH of hardware) it works normally. This does not make any sense, any help would be greatly appreciated.

    #include <Arduino_WiFiConnectionHandler.h>
    #include <WiFi101OTA.h>
    
    const char* ssid = "_SSID_";
    const char* password = "_PASSWORD_";
    
    WiFiConnectionHandler net(ssid, password);
    
    void onNetworkConnect(void *_arg) {Serial.println(">>>> CONNECTED to network");}
    void onNetworkDisconnect(void *_arg) {Serial.println(">>>> DISCONNECTED from network");}
    
    void setup() 
    {
      delay(5000);
      Serial.begin(115200);
      setDebugMessageLevel(2);
      net.addConnectCallback(onNetworkConnect);
      net.addDisconnectCallback(onNetworkDisconnect);
      WiFiOTA.begin("_HostName_", "_Password_", InternalStorage);
    }
    
    void loop() 
    {
      net.update();
      WiFiOTA.poll();
    }
    

    VERSION INFO MKR1000 Firmware v19.6.1 Arduino IDE v1.8.9 Arduino SAMD (32-bits ARM Cortex-M0+) v1.8.3 WiFi101OTA v1.0.2 Arduino_ConnectionHandler v0.1.3

    opened by brentbrooks70 9
  • Support for MKR ETH not documented

    Support for MKR ETH not documented

    Hello!

    Is there any equivalent statement for the MKR ETH shield for the MKR1000 WiFi mode:

    WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, PASS);

    Need to use MKR1000 with already tested MKR ETH shield. Thanks.

    Kind regards.

    opened by baqwas 8
  • Fix bug that sets pin 10 to INPUT on WiFi boards

    Fix bug that sets pin 10 to INPUT on WiFi boards

    netConnectionState being initialized to NetworkConnectionState::DISCONNECTED caused the WiFiNINA library's SpiDrv::end() to be called before SpiDrv::begin(). Since SLAVESELECT is initialized to 10, and only assigned SPIWIFI_SS in SpiDrv::begin(), this causes pin 10 to be set to INPUT. Since pin 10 is MISO on the MKR boards, and often used as CS on the Nano 33 IoT, and WiFiConnectionHandler::update() is typically called from loop(), after SPI has already been configured, this breaks communication on SPI.

    Demonstration sketch:

    #include <Arduino_ConnectionHandler.h>
    #include <SD.h>
    const char WiFiSSID[] = "ssid";
    const char WiFiPassword[] = "pass";
    const int SDchipSelect = 4;
    WiFiConnectionHandler conMan(WiFiSSID, WiFiPassword);
    void setup() {
      Serial.begin(9600);
      while (!Serial);
      Serial.print("Initializing SD card...");
      if (!SD.begin(SDchipSelect)) {
        Serial.println("Card failed, or not present");
        while (true);
      }
      Serial.println("card initialized.");
    }
    void loop() {
      conMan.update();
      File dataFile = SD.open("datalog.txt", FILE_WRITE);
      if (dataFile) {
        dataFile.close();
        Serial.println("success opening file");
      }
      else {
        Serial.println("error opening file");
      }
    }
    

    Bug reported at:

    • https://forum.arduino.cc/index.php?topic=658366
    • https://forum.arduino.cc/index.php?topic=661725
    • https://forum.arduino.cc/index.php?topic=664965
    opened by per1234 8
  • SIM not present or wrong PIN routine stuck

    SIM not present or wrong PIN routine stuck

    I am using Connection Handler to get connected to GSM network via MKR GSM 1400. From time to time when I restart or reupload the sketch and I am getting error "SIM not present or wrong PIN" attaching screenshot.

    When I restart the unit (reset button) or re-upload the sketch connection is successful. Looks to me that function just finish and never continue "void GSMConnectionHandler::init()" Arduino_GSMConnectionHandler.cpp

    1. Does this means in default settings there is no 2nd, 3rd etc. retry ?
    2. If so, is there any settings to set it up the way to retry again before fail or reset modem etc.?

    Thanks a lot Clipboard01

    type: imperfection 
    opened by salvq 8
  • LoRa support

    LoRa support

    Support for LoRaWAN boards. Connection handlers have been separated in TcpIP connection handlers and LPWAN connection handlers. For LPWAN protocols, a LoRa connection handler has been implemented. It uses the MKRWAN library: https://github.com/arduino-libraries/MKRWAN

    To be used with: https://github.com/arduino-libraries/ArduinoCloudThing/pull/48 https://github.com/arduino-libraries/ArduinoIoTCloud/pull/83

    opened by mirkokurt 7
  • Add Ethernet support for Portenta + Ethernet Shield

    Add Ethernet support for Portenta + Ethernet Shield

    This PR is based on #41 and #70 and adds ethernet support for Portenta H7. In order to get Ethernet connectivity the vision shield needs to be connected.

    Since there is plenty of flash available for Portenta, Ethernet connectivity is always included in the build together with WiFi support.

    Ci is failing because static IP configuration is based on this https://github.com/arduino/ArduinoCore-mbed/pull/526

    type: enhancement topic: code 
    opened by pennam 6
  • ESP32 support + example fix (AVR DebugUtils removal)

    ESP32 support + example fix (AVR DebugUtils removal)

    This PR adds ConnectionHandler support for ESP32-based boards and fixes the demo example which was still calling setDebugLevel() although that was not enabled for MegaAVR

    opened by ubidefeo 6
  • Trouble Dropping GSM Connection With No Recovery

    Trouble Dropping GSM Connection With No Recovery

    I have been having trouble with the Arduino MKR GSM dropping the connection to the Arduino IoT cloud and not being able to recover.

    I was thinking that it must be the connection to the antenna, so I tried putting dielectric grease on the connection of the antenna. That seemed to help, but I still have had a few times the connection has dropped and failed to reconnect.

    I am thinking it is similar to this issue: https://github.com/arduino-libraries/MKRGSM/issues/66.

    I think it might be fixed by adding

    static int const GPRS_TIMEOUT = 30000;
    

    to the constants in src\Arduino_GSMConnectionHandler.cpp, and then

    _gprs.setTimeout(GPRS_TIMEOUT);
    

    directly under

    _gsm.setTimeout(GSM_TIMEOUT);
    

    In the implementation of GSMConnectionHandler::update_handleInit() in the same file as mentioned before.

    This is what I am planning to try anyways.

    I am not that experienced with regards to GSM communication, so if someone has a better idea to try and fix the problem I've been having I'd like to hear it.

    type: imperfection conclusion: resolved topic: code 
    opened by PhysicsUofRAUI 3
  • Bump actions/checkout from 2 to 2.3.4

    Bump actions/checkout from 2 to 2.3.4

    Bumps actions/checkout from 2 to 2.3.4.

    Release notes

    Sourced from actions/checkout's releases.

    v2.3.4

    v2.3.3

    v2.3.2

    Add Third Party License Information to Dist Files

    v2.3.1

    Fix default branch resolution for .wiki and when using SSH

    v2.3.0

    Fallback to the default branch

    v2.2.0

    Fetch all history for all tags and branches when fetch-depth=0

    v2.1.1

    Changes to support GHES (here and here)

    v2.1.0

    Changelog

    Sourced from actions/checkout's changelog.

    Changelog

    v2.3.1

    v2.3.0

    v2.2.0

    v2.1.1

    • Changes to support GHES (here and here)

    v2.1.0

    v2.0.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    topic: infrastructure 
    opened by dependabot[bot] 3
  • Errore GPRS attach failed

    Errore GPRS attach failed

    Hi, I have a MKRGSM1400 board. When connecting to cloud I have the following messages in serial monitor: 20:35:20.787 -> SIM card ok 20:35:24.801 -> GPRS.attachGPRS(): 4 20:35:24.801 -> Sending PING to outer space... 20:35:29.814 -> GPRS.ping(): -2 20:35:29.814 -> PING failed 20:35:29.814 -> Retrying in "500" milliseconds 20:35:30.131 -> GPRS.attachGPRS(): 0 20:35:30.131 -> GPRS attach failed 20:35:30.131 -> Make sure the antenna is connected and reset your board.

    Then the board stop connecting and I have to reset.

    Looking at Arduino_GSMConnectionHandler.cpp, but I am not an expert, I see the following code:

    NetworkConnectionState GSMConnectionHandler::update_handleConnecting()
    {
      GSM3_NetworkStatus_t const network_status = _gprs.attachGPRS(_apn, _login, _pass, true);
      Debug.print(DBG_DEBUG, "GPRS.attachGPRS(): %d", network_status);
      if (network_status == GSM3_NetworkStatus_t::ERROR)
      {
        Debug.print(DBG_ERROR, "GPRS attach failed");
        Debug.print(DBG_ERROR, "Make sure the antenna is connected and reset your board.");
        return NetworkConnectionState::ERROR;
      }
      Debug.print(DBG_INFO, "Sending PING to outer space...");
      int const ping_result = _gprs.ping("time.arduino.cc");
      Debug.print(DBG_INFO, "GPRS.ping(): %d", ping_result);
      if (ping_result < 0)
      {
        Debug.print(DBG_ERROR, "PING failed");
        Debug.print(DBG_INFO, "Retrying in  \"%d\" milliseconds", CHECK_INTERVAL_TABLE[static_cast<unsigned int>(NetworkConnectionState::CONNECTING)]);
        return NetworkConnectionState::CONNECTING;
      }
      else
      {
        Debug.print(DBG_INFO, "Connected to GPRS Network");
        return NetworkConnectionState::CONNECTED;
      }
    }
    

    The first time GPRS.attachGPRS() run successfully but the ping end with -2 so the program try to reconnect again. The second time GPRS.attachGPRS() run with error, maybe because the GPRS is already connected?

    I see in my test that the first ping always end with -2, but putting the ping inside a loop the second or third ping end successfully. I don't know why the first ping is always -2.

    So what is the problem? The ping should be put inside a loop or the problem is the attachGPRS?

    Please help.

    Thanks.

    opened by andreacosti 3
  • Added Example and Bug fixes on Ethernet

    Added Example and Bug fixes on Ethernet

    I have a use case for my research where I am trying to use the ArduinoIOTCloud library on a Teensy 4.0 with an ATECC608A along with a Wiznet Ethernet Module. I was able to get the modified example to work on it and get a "CONNECTED to network" on the serial monitor.

    type: imperfection topic: documentation type: enhancement topic: code 
    opened by gannaramu 1
  • Support for WPA2 Enterprise

    Support for WPA2 Enterprise

    • Adds optional argument to WifiConnectionHandler constructor to pass a username
    • Conditional in .cpp checks if value has been set, calls on .begin or .beginEnterprise accordingly
    • Critical to use at universities
    • If merged, would allow students on university networks to use IoT Cloud without modifying a local copy of the library
    type: enhancement topic: code status: changes requested 
    opened by jesmith-all 3
  • WiFi Handler for WPA2 Enterprise networks

    WiFi Handler for WPA2 Enterprise networks

    Hi 👋🏻

    I have been struggling some time to connect my Arduino MKR1010 to the Arduino IoT Cloud by my university wifi network, which asks a username and password (WPA2 WiFi network).

    For Arduino MKR1010, Arduino_ConnectionHandler establish a connection by creating a WiFi object from WiFiNINA and calling the method .begin(). This method only allows connections with WPA networks (SSID & Password).

    If the method .beginEnterprise() from WiFiNINA was included in the class WiFiConnectionHandler fromArduino_WiFiConnectionHandler.cpp, it would be possible to connect to WPA2 Enterprise networks such as eduroam. Again, it only works for devices using WiFiNINA instead of WiFi101. I don’t know if there exists a similar method for the latter.

    Lastly, I tried it myself and it works. It only took me minutes to update the code. And it doesn’t change what is made already.

    Thanks for the nice library you created!

    opened by jaimemi 3
  • first iteration of WiFiConnectionHandler with Dynamic SSID:PASS pair

    first iteration of WiFiConnectionHandler with Dynamic SSID:PASS pair

    This PR adds a class which supports instantiation without SSID and PASS in order to dynamically set them at later time using setWiFiCredentials(String, String). This allows a machine to get their WiFi credentials passed in at startup time via means of storage, effectively removing such credentials from the firmware.

    type: enhancement topic: code 
    opened by ubidefeo 2
Releases(0.7.2)
  • 0.7.2(Dec 21, 2022)

  • 0.7.1(Dec 13, 2022)

    Changelog

    • Fix required firmware version check (https://github.com/arduino-libraries/Arduino_ConnectionHandler/pull/86)
    • LoRa: add retries if joinOTAA(...) fails (https://github.com/arduino-libraries/Arduino_ConnectionHandler/pull/88)
    • ESP: WiFi: Fix (re)connection (https://github.com/arduino-libraries/Arduino_ConnectionHandler/pull/89)
    Source code(tar.gz)
    Source code(zip)
  • 0.7.0(Nov 3, 2022)

    Changelog

    • CI updates (#78)(#77)(#83)(#84)
    • Remove PORTENTA_H7_M4 from supported build options (#76)
    • Use generic defines ARDUINO_ARCH_ESP8266 and ARDUINO_ARCH_ESP32 (#80)
    • Switch informative WiFi debug prints from ERROR to INFO (#82)
    • Add Ethernet support for Portenta + Ethernet Shields (#81)
    Source code(tar.gz)
    Source code(zip)
  • 0.6.6(Mar 8, 2022)

  • 0.6.4(Apr 29, 2021)

    Changelog

    • Modernize continuous integration system (#54)
    • Add Nano RP2040 Connect as target during CI compilation. (#55)
    • Add mbed_nano and mbed_portenta as supported architectures. (#56)
    • Feed watchdog a bit more often when initializing MKR GSM 1400/NB 1500 (#58)
    Source code(tar.gz)
    Source code(zip)
  • 0.6.3(Mar 19, 2021)

  • 0.6.2(Jan 28, 2021)

  • 0.6.1(Jan 18, 2021)

    Changelog

    • Pin esp8266:esp8266 platform version to 2.5.0 in CI builds (#50)
    • Adding mbed as supported library to Arduino_ConnectionHandler library (since we are already using it on Portenta H7). (#51)
    Source code(tar.gz)
    Source code(zip)
  • 0.6.0(Jan 13, 2021)

    Changelog

    • Update CI workflow to correctly install ArduinoCore-API in arduino:mbed core (#46)
    • ESP32 support + example fix (AVR DebugUtils removal) (#47)
    • Add ESP32 board to "Compile Examples" CI workflow (#49)
    Source code(tar.gz)
    Source code(zip)
  • 0.5.1(Nov 18, 2020)

  • 0.5.0(Nov 17, 2020)

  • 0.4.9(Aug 26, 2020)

  • 0.4.8(Jul 27, 2020)

  • 0.4.7(Jul 23, 2020)

    • Perform multiple ping's without calling attachGPRS again since this breaks the MKRGSM stack (#36)
    • Upgrade Arduino_ConnectionHandler to latest best CI practives (#27, #28, #30, #33)
    Source code(tar.gz)
    Source code(zip)
  • 0.4.6(Mar 17, 2020)

    With this release the code base has been drastically refactored and simplified which allows us to build on a solid foundation for adding future functionality. There is no change in functionality compared to 0.4.5.

    Source code(tar.gz)
    Source code(zip)
  • 0.4.5(Mar 5, 2020)

    • CI support for compiling library for ESP8266
    • Bugfix which caused disruption of other SPI/CS based devices on WiFi boards (https://github.com/arduino-libraries/Arduino_ConnectionHandler/commit/22d13014a03c7ee33f9f9c8f94c4ed78d7b58602)
    • Major cleanup and unification of both LoRa and TCP based connection handlers
    • Removal of deprecated function update
    • Marking getStatus as deprecated since the status is also provided when calling check
    Source code(tar.gz)
    Source code(zip)
  • 0.4.4(Jan 29, 2020)

  • 0.4.3(Jan 21, 2020)

    Arduino_ConnectionHandler supporting the non-TCP based MKRWAN has been made compatible with the latest version of ArduinoIoTCloud (0.8.4) allowing for a sequential release of first Arduino_ConnectionHandler followed by ArduinoIoTCloud.

    Source code(tar.gz)
    Source code(zip)
  • 0.4.1(Jan 16, 2020)

  • 0.4.0(Jan 16, 2020)

  • 0.3.3(Jan 13, 2020)

  • 0.3.0(Dec 31, 2019)

  • 0.2.0(Dec 20, 2019)

  • 0.1.4(Oct 21, 2019)

  • 0.1.3(Aug 19, 2019)

    After establishing a successful connection within the WiFiConnectionManager the internal clock of the ESP8266 is configured via a call to configTime (basically this tells the ESP framework to sync the MCU internal clock via NTP). This is necessary because the current time is required for certificate verification when communicating via TLS.

    Source code(tar.gz)
    Source code(zip)
  • 0.1.2(Jul 22, 2019)

Owner
Arduino Libraries
This org contains the official Arduino Libraries. See @arduino for the tools (IDE, Pro IDE, CLI...)
Arduino Libraries
An Implementation of the ANT+ Network on top of ant-arduino

antplus-arduino An Implementation of the Ant+ Network on top of ant-arduino Status News 6/28/2020 v2.0.0 of ant-arduino released with support for mbed

Curtis Malainey 102 Dec 2, 2022
Arduino library for making an IHC in or output module using an Arduino

Introduction This is an Arduino library for making an IHC in or output module using an Arduino. (IHC controller is a home automation controller made b

Jens Østergaard Nielsen 2 Mar 26, 2020
ArduinoIoTCloud library is the central element of the firmware enabling certain Arduino boards to connect to the Arduino IoT Cloud

ArduinoIoTCloud What? The ArduinoIoTCloud library is the central element of the firmware enabling certain Arduino boards to connect to the Arduino IoT

Arduino Libraries 64 Dec 16, 2022
Library for ATMEGA328P-based RFM95 Board for Loraid's LoRaWAN Network

Arduino LoRa.id SDK This repository contains the simple LoRaWAN library originally created by Ideetron B.V. This library is slightly modified and enca

null 5 Oct 21, 2021
The Approximate Library is a WiFi Arduino library for building proximate interactions between your Internet of Things and the ESP8266 or ESP32

The Approximate Library The Approximate library is a WiFi Arduino Library for building proximate interactions between your Internet of Things and the

David Chatting 102 Dec 7, 2022
Arduino library for controlling the MCP2515 in order to receive/transmit CAN frames.

107-Arduino-MCP2515 Arduino library for controlling the MCP2515 in order to receive/transmit CAN frames. This library is prepared to interface easily

107-Systems 51 Nov 16, 2022
Arduino library for interfacing with any GPS, GLONASS, Galileo or GNSS module and interpreting its NMEA messages.

107-Arduino-NMEA-Parser Arduino library for interfacing with any GPS, GLONASS, Galileo or GNSS module and interpreting its NMEA messages. This library

107-Systems 15 Jan 1, 2023
Arduino library for providing a convenient C++ interface for accessing UAVCAN.

107-Arduino-UAVCAN Arduino library for providing a convenient C++ interface for accessing UAVCAN (v1.0-beta) utilizing libcanard. This library works f

107-Systems 54 Jan 2, 2023
Arduino web server library.

aWOT Arduino web server library. Documentation 1. Getting started Hello World Basic routing Application generator Serving static files 2. Guide Routin

Lasse Lukkari 246 Jan 4, 2023
Arduino, esp32 and esp8266 library for ABB (ex PowerOne) Aurora Inverter, implement a full methods to retrieve data from the Inverter via RS-485

ABB Aurora protocol You can refer the complete documentation on my site ABB Aurora PV inverter library for Arduino, esp8266 and esp32 I create this li

Renzo Mischianti 22 Nov 22, 2022
Arduino library for the MCP2515 CAN Controller

MCP2515 CAN Controller Library for Arduino Compatibility with the ACAN library This library is fully compatible with the Teensy 3.x ACAN library https

Pierre Molinaro 4 Dec 18, 2022
CAN / CANFD Arduino Library for Teensy 4.0

CAN Library for Teensy 4.0 / 4.1 It handles Controller Area Network (CAN) for CAN1, CAN2 and CAN3, and Controller Area Network with Flexible Data (CAN

Pierre Molinaro 12 Dec 9, 2022
Analog Devices Analog Digital Converter AD7173 Arduino library

AD7173-Arduino Analog Devices AD7173 analog digital converter Arduino library Mostly tested setup for this library: 1007 data rate external crystal co

brain-duino 8 Nov 20, 2022
Arduino library for nRF51822-based Adafruit Bluefruit LE modules

This library is for all nRF51 based Adafruit Bluefruit LE modules that use SPI or UART. Current nRF51 based Bluefruit LE products include: Bluefruit L

Adafruit Industries 184 Nov 6, 2022
Arduino library for the Adafruit FONA

Adafruit FONA Library This library requires Arduino v1.0.6 or higher This is a library for the Adafruit FONA Cellular GSM Breakouts etc Designed speci

Adafruit Industries 199 Dec 15, 2022
Arduino library to access Adafruit IO from WiFi, cellular, and ethernet modules.

Adafruit IO Arduino Library This library provides a simple device independent interface for interacting with Adafruit IO using Arduino. It allows you

Adafruit Industries 168 Dec 23, 2022
Arduino library for MQTT support

Adafruit MQTT Library Arduino library for MQTT support, including access to Adafruit IO. Works with the Adafruit FONA, Arduino Yun, ESP8266 Arduino pl

Adafruit Industries 519 Jan 6, 2023
Arduino library for SPI and I2C access to the PN532 RFID/Near Field Communication chip

Adafruit-PN532 This is a library for the Adafruit PN532 NFC/RFID breakout boards This library works with the Adafruit NFC breakout https://www.adafrui

Adafruit Industries 361 Dec 23, 2022
Arduino library for the Si4714 FM+RDS Transmitter in the Adafruit shop

Adafruit-Si4713-Library This is the Adafruit FM Transmitter with RDS/RBDS Breakout - Si4713 library Tested and works great with the Adafruit Si4713 Br

Adafruit Industries 19 Oct 26, 2022