Compare commits
No commits in common. "master" and "gh-pages" have entirely different histories.
340 changed files with 17420 additions and 12850 deletions
46
.github/ISSUE_TEMPLATE.md
vendored
46
.github/ISSUE_TEMPLATE.md
vendored
|
|
@ -1,46 +0,0 @@
|
||||||
Thank you for opening an issue on an Adafruit Arduino library repository. To
|
|
||||||
improve the speed of resolution please review the following guidelines and
|
|
||||||
common troubleshooting steps below before creating the issue:
|
|
||||||
|
|
||||||
- **Do not use GitHub issues for troubleshooting projects and issues.** Instead use
|
|
||||||
the forums at http://forums.adafruit.com to ask questions and troubleshoot why
|
|
||||||
something isn't working as expected. In many cases the problem is a common issue
|
|
||||||
that you will more quickly receive help from the forum community. GitHub issues
|
|
||||||
are meant for known defects in the code. If you don't know if there is a defect
|
|
||||||
in the code then start with troubleshooting on the forum first.
|
|
||||||
|
|
||||||
- **If following a tutorial or guide be sure you didn't miss a step.** Carefully
|
|
||||||
check all of the steps and commands to run have been followed. Consult the
|
|
||||||
forum if you're unsure or have questions about steps in a guide/tutorial.
|
|
||||||
|
|
||||||
- **For Arduino projects check these very common issues to ensure they don't apply**:
|
|
||||||
|
|
||||||
- For uploading sketches or communicating with the board make sure you're using
|
|
||||||
a **USB data cable** and **not** a **USB charge-only cable**. It is sometimes
|
|
||||||
very hard to tell the difference between a data and charge cable! Try using the
|
|
||||||
cable with other devices or swapping to another cable to confirm it is not
|
|
||||||
the problem.
|
|
||||||
|
|
||||||
- **Be sure you are supplying adequate power to the board.** Check the specs of
|
|
||||||
your board and plug in an external power supply. In many cases just
|
|
||||||
plugging a board into your computer is not enough to power it and other
|
|
||||||
peripherals.
|
|
||||||
|
|
||||||
- **Double check all soldering joints and connections.** Flakey connections
|
|
||||||
cause many mysterious problems. See the [guide to excellent soldering](https://learn.adafruit.com/adafruit-guide-excellent-soldering/tools) for examples of good solder joints.
|
|
||||||
|
|
||||||
- **Ensure you are using an official Arduino or Adafruit board.** We can't
|
|
||||||
guarantee a clone board will have the same functionality and work as expected
|
|
||||||
with this code and don't support them.
|
|
||||||
|
|
||||||
If you're sure this issue is a defect in the code and checked the steps above
|
|
||||||
please fill in the following fields to provide enough troubleshooting information.
|
|
||||||
You may delete the guideline and text above to just leave the following details:
|
|
||||||
|
|
||||||
- Arduino board: **INSERT ARDUINO BOARD NAME/TYPE HERE**
|
|
||||||
|
|
||||||
- Arduino IDE version (found in Arduino -> About Arduino menu): **INSERT ARDUINO
|
|
||||||
VERSION HERE**
|
|
||||||
|
|
||||||
- List the steps to reproduce the problem below (if possible attach a sketch or
|
|
||||||
copy the sketch code in too): **LIST REPRO STEPS BELOW**
|
|
||||||
26
.github/PULL_REQUEST_TEMPLATE.md
vendored
26
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
|
@ -1,26 +0,0 @@
|
||||||
Thank you for creating a pull request to contribute to Adafruit's GitHub code!
|
|
||||||
Before you open the request please review the following guidelines and tips to
|
|
||||||
help it be more easily integrated:
|
|
||||||
|
|
||||||
- **Describe the scope of your change--i.e. what the change does and what parts
|
|
||||||
of the code were modified.** This will help us understand any risks of integrating
|
|
||||||
the code.
|
|
||||||
|
|
||||||
- **Describe any known limitations with your change.** For example if the change
|
|
||||||
doesn't apply to a supported platform of the library please mention it.
|
|
||||||
|
|
||||||
- **Please run any tests or examples that can exercise your modified code.** We
|
|
||||||
strive to not break users of the code and running tests/examples helps with this
|
|
||||||
process.
|
|
||||||
|
|
||||||
Thank you again for contributing! We will try to test and integrate the change
|
|
||||||
as soon as we can, but be aware we have many GitHub repositories to manage and
|
|
||||||
can't immediately respond to every request. There is no need to bump or check in
|
|
||||||
on a pull request (it will clutter the discussion of the request).
|
|
||||||
|
|
||||||
Also don't be worried if the request is closed or not integrated--sometimes the
|
|
||||||
priorities of Adafruit's GitHub code (education, ease of use) might not match the
|
|
||||||
priorities of the pull request. Don't fret, the open source community thrives on
|
|
||||||
forks and GitHub makes it easy to keep your changes in a forked repo.
|
|
||||||
|
|
||||||
After reviewing the guidelines above you can delete this text from the pull request.
|
|
||||||
47
.github/workflows/githubci.yml
vendored
47
.github/workflows/githubci.yml
vendored
|
|
@ -1,47 +0,0 @@
|
||||||
name: Arduino Library CI
|
|
||||||
|
|
||||||
on: [pull_request, push]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
arduino-platform: ["esp8266", "esp32",
|
|
||||||
"pyportal", "metro_m4_airliftlite",
|
|
||||||
"picow_rp2040_tinyusb"]
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/setup-python@v4
|
|
||||||
with:
|
|
||||||
python-version: '3.x'
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
repository: adafruit/ci-arduino
|
|
||||||
path: ci
|
|
||||||
|
|
||||||
- name: pre-install
|
|
||||||
run: bash ci/actions_install.sh
|
|
||||||
|
|
||||||
|
|
||||||
# manually install WiFi and HTTPClient
|
|
||||||
- name: extra libraries
|
|
||||||
run: |
|
|
||||||
git clone --quiet https://github.com/adafruit/WiFiNINA.git /home/runner/Arduino/libraries/WiFiNINA
|
|
||||||
rm -rf /home/runner/Arduino/libraries/ArduinoHttpClient
|
|
||||||
git clone --quiet https://github.com/arduino-libraries/ArduinoHttpClient.git /home/runner/Arduino/libraries/ArduinoHttpClient
|
|
||||||
|
|
||||||
- name: test platforms
|
|
||||||
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }}
|
|
||||||
|
|
||||||
- name: clang
|
|
||||||
run: python3 ci/run-clang-format.py -e "ci/*" -e "bin/*" -r .
|
|
||||||
|
|
||||||
- name: doxygen
|
|
||||||
env:
|
|
||||||
GH_REPO_TOKEN: ${{ secrets.GH_REPO_TOKEN }}
|
|
||||||
PRETTYNAME : "Adafruit IO Arduino Library"
|
|
||||||
run: bash ci/doxy_gen_and_deploy.sh src
|
|
||||||
19
.gitignore
vendored
19
.gitignore
vendored
|
|
@ -1,19 +0,0 @@
|
||||||
*.swo
|
|
||||||
*.swp
|
|
||||||
.DS_Store
|
|
||||||
.sync
|
|
||||||
.syntastic_cpp_config
|
|
||||||
|
|
||||||
# platformio (testing)
|
|
||||||
.pioenvs
|
|
||||||
.piolibdeps
|
|
||||||
platformio.ini
|
|
||||||
.tests
|
|
||||||
|
|
||||||
# visual studio code
|
|
||||||
.vscode
|
|
||||||
|
|
||||||
# Our handy .gitignore for automation ease
|
|
||||||
Doxyfile*
|
|
||||||
doxygen_sqlite3.db
|
|
||||||
html
|
|
||||||
6
Jenkinsfile
vendored
6
Jenkinsfile
vendored
|
|
@ -1,6 +0,0 @@
|
||||||
arduino {
|
|
||||||
verify = false
|
|
||||||
platforms = ["esp8266:esp8266", "esp32:esp32", "adafruit:avr", "arduino:samd", "adafruit:samd"]
|
|
||||||
libraries = ["Adafruit MQTT Library", "Adafruit FONA Library", "Ethernet", "WiFi101"]
|
|
||||||
boards = ["ESP8266", "M0_WINC1500", "WICED", "MKR1000", "M0_ETHERNETWING", "FONA_32U4", "ESP32"]
|
|
||||||
}
|
|
||||||
23
LICENSE
23
LICENSE
|
|
@ -1,23 +0,0 @@
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2015-2021 Adafruit Industries
|
|
||||||
Authors: Tony DiCola, Todd Treece
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
25
README.md
25
README.md
|
|
@ -1,25 +0,0 @@
|
||||||
# Adafruit IO Arduino Library
|
|
||||||
|
|
||||||
[](https://github.com/adafruit/Adafruit_IO_Arduino/actions)[](http://adafruit.github.io/Adafruit_IO_Arduino/html/index.html)
|
|
||||||
|
|
||||||
[](https://adafru.it/discord)
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
This library provides a simple device independent interface for interacting with [Adafruit IO](https://io.adafruit.com) using Arduino. It allows you to switch between WiFi (ESP8266, ESP32, ESP32-S2, ESP32-S3, ESP32-C3, RP2040, Airlift, WINC1500, & WICED), Cellular (32u4 FONA), and Ethernet (Ethernet FeatherWing).
|
|
||||||
|
|
||||||
## Documentation
|
|
||||||
|
|
||||||
The Doxygen documentation is automatically generated from the source files
|
|
||||||
in this repository, and documents the API exposed by this library.
|
|
||||||
|
|
||||||
- [API Documentation](https://adafruit.github.io/Adafruit_IO_Arduino/) (automatically generated via doxygen from source)
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
This open source code is licensed under the MIT license (see [LICENSE](LICENSE)
|
|
||||||
for details).
|
|
||||||
|
|
||||||
Adafruit invests time and resources providing this open source code, please
|
|
||||||
support Adafruit and open-source hardware by purchasing products from
|
|
||||||
[Adafruit](https://www.adafruit.com)!
|
|
||||||
|
|
@ -1,74 +0,0 @@
|
||||||
// Adafruit IO Publish Example
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// this int will hold the current count for our sketch
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
// set up the 'counter' feed
|
|
||||||
AdafruitIO_Feed *counter = io.feed("counter");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
// save count to the 'counter' feed on Adafruit IO
|
|
||||||
Serial.print("sending -> ");
|
|
||||||
Serial.println(count);
|
|
||||||
counter->save(count);
|
|
||||||
|
|
||||||
// increment the count by 1
|
|
||||||
count++;
|
|
||||||
|
|
||||||
// Adafruit IO is rate limited for publishing, so a delay is required in
|
|
||||||
// between feed->save events. In this example, we will wait three seconds
|
|
||||||
// (1000 milliseconds == 1 second) during each loop.
|
|
||||||
delay(3000);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,84 +0,0 @@
|
||||||
// Adafruit IO Subscription Example
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// set up the 'counter' feed
|
|
||||||
AdafruitIO_Feed *counter = io.feed("counter");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
|
|
||||||
// start MQTT connection to io.adafruit.com
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// set up a message handler for the count feed.
|
|
||||||
// the handleMessage function (defined below)
|
|
||||||
// will be called whenever a message is
|
|
||||||
// received from adafruit io.
|
|
||||||
counter->onMessage(handleMessage);
|
|
||||||
|
|
||||||
// wait for an MQTT connection
|
|
||||||
// NOTE: when blending the HTTP and MQTT API, always use the mqttStatus
|
|
||||||
// method to check on MQTT connection status specifically
|
|
||||||
while(io.mqttStatus() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Because Adafruit IO doesn't support the MQTT retain flag, we can use the
|
|
||||||
// get() function to ask IO to resend the last value for this feed to just
|
|
||||||
// this MQTT client after the io client is connected.
|
|
||||||
counter->get();
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
// Because this sketch isn't publishing, we don't need
|
|
||||||
// a delay() in the main program loop.
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function is called whenever a 'counter' message
|
|
||||||
// is received from Adafruit IO. it was attached to
|
|
||||||
// the counter feed in the setup() function above.
|
|
||||||
void handleMessage(AdafruitIO_Data *data) {
|
|
||||||
|
|
||||||
Serial.print("received <- ");
|
|
||||||
Serial.println(data->value());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,104 +0,0 @@
|
||||||
// Adafruit IO Publish & Subscribe Example
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// this int will hold the current count for our sketch
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
// Track time of last published messages and limit feed->save events to once
|
|
||||||
// every IO_LOOP_DELAY milliseconds.
|
|
||||||
//
|
|
||||||
// Because this sketch is publishing AND subscribing, we can't use a long
|
|
||||||
// delay() function call in the main loop since that would prevent io.run()
|
|
||||||
// from being called often enough to receive all incoming messages.
|
|
||||||
//
|
|
||||||
// Instead, we can use the millis() function to get the current time in
|
|
||||||
// milliseconds and avoid publishing until IO_LOOP_DELAY milliseconds have
|
|
||||||
// passed.
|
|
||||||
#define IO_LOOP_DELAY 5000
|
|
||||||
unsigned long lastUpdate = 0;
|
|
||||||
|
|
||||||
// set up the 'counter' feed
|
|
||||||
AdafruitIO_Feed *counter = io.feed("counter");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// set up a message handler for the count feed.
|
|
||||||
// the handleMessage function (defined below)
|
|
||||||
// will be called whenever a message is
|
|
||||||
// received from adafruit io.
|
|
||||||
counter->onMessage(handleMessage);
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
counter->get();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
if (millis() > (lastUpdate + IO_LOOP_DELAY)) {
|
|
||||||
// save count to the 'counter' feed on Adafruit IO
|
|
||||||
Serial.print("sending -> ");
|
|
||||||
Serial.println(count);
|
|
||||||
counter->save(count);
|
|
||||||
|
|
||||||
// increment the count by 1
|
|
||||||
count++;
|
|
||||||
|
|
||||||
// after publishing, store the current time
|
|
||||||
lastUpdate = millis();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function is called whenever a 'counter' message
|
|
||||||
// is received from Adafruit IO. it was attached to
|
|
||||||
// the counter feed in the setup() function above.
|
|
||||||
void handleMessage(AdafruitIO_Data *data) {
|
|
||||||
|
|
||||||
Serial.print("received <- ");
|
|
||||||
Serial.println(data->value());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define SPIWIFI_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define ESP32_RESETN 6 // Reset pin
|
|
||||||
#define ESP32_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
SPIWIFI_ACK, ESP32_RESETN, ESP32_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,157 +0,0 @@
|
||||||
// Adafruit IO Multiple Feed Example
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// holds the current count value for our sketch
|
|
||||||
int count = 0;
|
|
||||||
// holds the boolean (true/false) state of the light
|
|
||||||
bool is_on = false;
|
|
||||||
|
|
||||||
// track time of last published messages and limit feed->save events to once
|
|
||||||
// every IO_LOOP_DELAY milliseconds
|
|
||||||
#define IO_LOOP_DELAY 15000
|
|
||||||
unsigned long lastUpdate;
|
|
||||||
|
|
||||||
// set up the 'counter' feed
|
|
||||||
AdafruitIO_Feed *counter = io.feed("counter");
|
|
||||||
|
|
||||||
// set up the 'counter-two' feed
|
|
||||||
AdafruitIO_Feed *counter_two = io.feed("counter-two");
|
|
||||||
|
|
||||||
// set up the 'light' feed
|
|
||||||
AdafruitIO_Feed *light = io.feed("light");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// attach message handler for the counter feed.
|
|
||||||
counter->onMessage(handleCount);
|
|
||||||
|
|
||||||
// attach the same message handler for the second counter feed.
|
|
||||||
counter_two->onMessage(handleCount);
|
|
||||||
|
|
||||||
// attach a new message handler for the light feed.
|
|
||||||
light->onMessage(handleLight);
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
// make sure all feeds get their current values right away
|
|
||||||
counter->get();
|
|
||||||
counter_two->get();
|
|
||||||
light->get();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// process messages and keep connection alive
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
if (millis() > (lastUpdate + IO_LOOP_DELAY)) {
|
|
||||||
Serial.println();
|
|
||||||
|
|
||||||
// save current count to 'counter'
|
|
||||||
Serial.print("sending -> counter ");
|
|
||||||
Serial.println(count);
|
|
||||||
counter->save(count);
|
|
||||||
|
|
||||||
// increment the count by 1 and save the value to 'counter-two'
|
|
||||||
Serial.print("sending -> counter-two ");
|
|
||||||
Serial.println(count + 1);
|
|
||||||
counter_two->save(count + 1);
|
|
||||||
|
|
||||||
// print out the light value we are sending to Adafruit IO
|
|
||||||
Serial.print("sending -> light ");
|
|
||||||
if(is_on)
|
|
||||||
Serial.println("is on.\n");
|
|
||||||
else
|
|
||||||
Serial.println("is off.\n");
|
|
||||||
|
|
||||||
// save state of light to 'light' feed
|
|
||||||
light->save(is_on);
|
|
||||||
|
|
||||||
// increment count value
|
|
||||||
count++;
|
|
||||||
|
|
||||||
// for the purpose of this demo, toggle the
|
|
||||||
// light state based on the count value
|
|
||||||
if((count % 2) == 0)
|
|
||||||
is_on = true;
|
|
||||||
else
|
|
||||||
is_on = false;
|
|
||||||
|
|
||||||
// update timer
|
|
||||||
lastUpdate = millis();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// you can set a separate message handler for a single feed,
|
|
||||||
// as we do in this example for the light feed
|
|
||||||
void handleLight(AdafruitIO_Data *data) {
|
|
||||||
|
|
||||||
// print out the received light value
|
|
||||||
Serial.print("received <- light ");
|
|
||||||
|
|
||||||
// use the isTrue helper to get the
|
|
||||||
// boolean state of the light
|
|
||||||
if(data->isTrue())
|
|
||||||
Serial.println("is on.");
|
|
||||||
else
|
|
||||||
Serial.println("is off.");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// you can also attach multiple feeds to the same
|
|
||||||
// meesage handler function. both counter and counter-two
|
|
||||||
// are attached to this callback function, and messages
|
|
||||||
// for both will be received by this function.
|
|
||||||
void handleCount(AdafruitIO_Data *data) {
|
|
||||||
|
|
||||||
Serial.print("received <- ");
|
|
||||||
|
|
||||||
// since we are using the same function to handle
|
|
||||||
// messages for two feeds, we can use feedName() in
|
|
||||||
// order to find out which feed the message came from.
|
|
||||||
Serial.print(data->feedName());
|
|
||||||
Serial.print(" ");
|
|
||||||
|
|
||||||
// print out the received count or counter-two value
|
|
||||||
Serial.println(data->value());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,124 +0,0 @@
|
||||||
// Adafruit IO Location Example
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// this value integer will hold the current count value for our sketch
|
|
||||||
int value = 0;
|
|
||||||
|
|
||||||
// these double values will hold our fake GPS data
|
|
||||||
double lat = 42.331427;
|
|
||||||
double lon = -83.045754;
|
|
||||||
double ele = 0;
|
|
||||||
|
|
||||||
// track time of last published messages and limit feed->save events to once
|
|
||||||
// every IO_LOOP_DELAY milliseconds
|
|
||||||
#define IO_LOOP_DELAY 5000
|
|
||||||
unsigned long lastUpdate;
|
|
||||||
|
|
||||||
// set up the 'location' feed
|
|
||||||
AdafruitIO_Feed *location = io.feed("location");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// set up a message handler for the location feed.
|
|
||||||
location->onMessage(handleMessage);
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
location->get();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// process messages and keep connection alive
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
if (millis() > (lastUpdate + IO_LOOP_DELAY)) {
|
|
||||||
Serial.println("----- sending -----");
|
|
||||||
Serial.print("value: ");
|
|
||||||
Serial.println(value);
|
|
||||||
Serial.print("lat: ");
|
|
||||||
Serial.println(lat, 6);
|
|
||||||
Serial.print("lon: ");
|
|
||||||
Serial.println(lon, 6);
|
|
||||||
Serial.print("ele: ");
|
|
||||||
Serial.println(ele, 2);
|
|
||||||
|
|
||||||
// save value and location data to the
|
|
||||||
// 'location' feed on Adafruit IO
|
|
||||||
location->save(value, lat, lon, ele);
|
|
||||||
|
|
||||||
// shift all values (for demo purposes)
|
|
||||||
value += 1;
|
|
||||||
lat -= 0.01;
|
|
||||||
lon += 0.02;
|
|
||||||
ele += 1;
|
|
||||||
|
|
||||||
// wait one second (1000 milliseconds == 1 second)
|
|
||||||
lastUpdate = millis();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void handleMessage(AdafruitIO_Data *data) {
|
|
||||||
|
|
||||||
// since we sent an int, we can use toInt()
|
|
||||||
// to get the int value from the received IO
|
|
||||||
// data.
|
|
||||||
int received_value = data->toInt();
|
|
||||||
|
|
||||||
// the lat() lon() and ele() methods
|
|
||||||
// will allow you to get the double values
|
|
||||||
// for the location data sent by IO
|
|
||||||
double received_lat = data->lat();
|
|
||||||
double received_lon = data->lon();
|
|
||||||
double received_ele = data->ele();
|
|
||||||
|
|
||||||
// print out the received values
|
|
||||||
Serial.println("----- received -----");
|
|
||||||
Serial.print("value: ");
|
|
||||||
Serial.println(received_value);
|
|
||||||
Serial.print("lat: ");
|
|
||||||
Serial.println(received_lat, 6);
|
|
||||||
Serial.print("lon: ");
|
|
||||||
Serial.println(received_lon, 6);
|
|
||||||
Serial.print("ele: ");
|
|
||||||
Serial.println(received_ele, 2);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,192 +0,0 @@
|
||||||
// Adafruit IO Type Conversion Example
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// set up variables for all of the supported types
|
|
||||||
char *char_val = "character value";
|
|
||||||
String string_val = "string value";
|
|
||||||
bool bool_val = true;
|
|
||||||
int int_val = -10;
|
|
||||||
unsigned int uint_val = 20;
|
|
||||||
long long_val = 186000L;
|
|
||||||
unsigned long ulong_val = millis();
|
|
||||||
double double_val = 1.3053;
|
|
||||||
float float_val = 2.4901;
|
|
||||||
|
|
||||||
// set up variable that will allow us to flip between sending types
|
|
||||||
int current_type = 0;
|
|
||||||
|
|
||||||
// track time of last published messages and limit feed->save events to once
|
|
||||||
// every IO_LOOP_DELAY milliseconds
|
|
||||||
#define IO_LOOP_DELAY 5000
|
|
||||||
unsigned long lastUpdate;
|
|
||||||
|
|
||||||
// set up the 'type' feed
|
|
||||||
AdafruitIO_Feed *type = io.feed("type");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// set up a message handler for the type feed.
|
|
||||||
type->onMessage(handleMessage);
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// process messages and keep connection alive
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
if (millis() > (lastUpdate + IO_LOOP_DELAY)) {
|
|
||||||
Serial.println("----- sending -----");
|
|
||||||
|
|
||||||
// in order to demonstrate sending values
|
|
||||||
// as different types, we will switch between
|
|
||||||
// types in a loop using the current_type variable
|
|
||||||
if(current_type == 0) {
|
|
||||||
Serial.print("char: ");
|
|
||||||
Serial.println(char_val);
|
|
||||||
type->save(char_val);
|
|
||||||
} else if(current_type == 1) {
|
|
||||||
Serial.print("string: ");
|
|
||||||
Serial.println(string_val);
|
|
||||||
type->save(string_val);
|
|
||||||
} else if(current_type == 2) {
|
|
||||||
Serial.print("bool: ");
|
|
||||||
Serial.println(bool_val);
|
|
||||||
type->save(bool_val);
|
|
||||||
} else if(current_type == 3) {
|
|
||||||
Serial.print("int: ");
|
|
||||||
Serial.println(int_val);
|
|
||||||
type->save(int_val);
|
|
||||||
} else if(current_type == 4) {
|
|
||||||
Serial.print("unsigned int: ");
|
|
||||||
Serial.println(uint_val);
|
|
||||||
type->save(uint_val);
|
|
||||||
} else if(current_type == 5) {
|
|
||||||
Serial.print("long: ");
|
|
||||||
Serial.println(long_val);
|
|
||||||
type->save(long_val);
|
|
||||||
} else if(current_type == 6) {
|
|
||||||
Serial.print("unsigned long: ");
|
|
||||||
Serial.println(ulong_val);
|
|
||||||
type->save(ulong_val);
|
|
||||||
} else if(current_type == 7) {
|
|
||||||
Serial.print("double: ");
|
|
||||||
Serial.println(double_val);
|
|
||||||
type->save(double_val);
|
|
||||||
} else if(current_type == 8) {
|
|
||||||
Serial.print("float: ");
|
|
||||||
Serial.println(float_val);
|
|
||||||
type->save(float_val);
|
|
||||||
}
|
|
||||||
|
|
||||||
// move to the next type
|
|
||||||
current_type++;
|
|
||||||
|
|
||||||
// reset type if we have reached the end
|
|
||||||
if(current_type > 8)
|
|
||||||
current_type = 0;
|
|
||||||
|
|
||||||
Serial.println();
|
|
||||||
|
|
||||||
lastUpdate = millis();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function will demonstrate how to convert
|
|
||||||
// the received data to each available type.
|
|
||||||
void handleMessage(AdafruitIO_Data *data) {
|
|
||||||
|
|
||||||
// print out the received count value
|
|
||||||
Serial.println("----- received -----");
|
|
||||||
|
|
||||||
// value() returns char*
|
|
||||||
Serial.print("value: ");
|
|
||||||
Serial.println(data->value());
|
|
||||||
|
|
||||||
// get char* value
|
|
||||||
Serial.print("toChar: ");
|
|
||||||
Serial.println(data->toChar());
|
|
||||||
|
|
||||||
// get String value
|
|
||||||
Serial.print("toString: ");
|
|
||||||
Serial.println(data->toString());
|
|
||||||
|
|
||||||
// get double value
|
|
||||||
Serial.print("toDouble: ");
|
|
||||||
Serial.println(data->toDouble(), 6);
|
|
||||||
|
|
||||||
// get double value
|
|
||||||
Serial.print("toFloat: ");
|
|
||||||
Serial.println(data->toFloat(), 6);
|
|
||||||
|
|
||||||
// get int value
|
|
||||||
Serial.print("toInt: ");
|
|
||||||
Serial.println(data->toInt());
|
|
||||||
|
|
||||||
// get unsigned int value
|
|
||||||
Serial.print("toUnsignedInt: ");
|
|
||||||
Serial.println(data->toUnsignedInt());
|
|
||||||
|
|
||||||
// get long value
|
|
||||||
Serial.print("toLong: ");
|
|
||||||
Serial.println(data->toLong());
|
|
||||||
|
|
||||||
// get unsigned long value
|
|
||||||
Serial.print("toUnsignedLong: ");
|
|
||||||
Serial.println(data->toUnsignedLong());
|
|
||||||
|
|
||||||
// get bool value
|
|
||||||
Serial.print("toBool: ");
|
|
||||||
Serial.println(data->toBool());
|
|
||||||
|
|
||||||
// get isTrue (bool) value
|
|
||||||
Serial.print("isTrue: ");
|
|
||||||
Serial.println(data->isTrue());
|
|
||||||
|
|
||||||
// get isFalse (bool) value
|
|
||||||
Serial.print("isFalse: ");
|
|
||||||
Serial.println(data->isFalse());
|
|
||||||
|
|
||||||
Serial.println();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,88 +0,0 @@
|
||||||
// Adafruit IO Digital Input Example
|
|
||||||
// Tutorial Link: https://learn.adafruit.com/adafruit-io-basics-digital-input
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// digital pin 5
|
|
||||||
#define BUTTON_PIN 5
|
|
||||||
|
|
||||||
// button state
|
|
||||||
bool current = false;
|
|
||||||
bool last = false;
|
|
||||||
|
|
||||||
// set up the 'digital' feed
|
|
||||||
AdafruitIO_Feed *digital = io.feed("digital");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// set button pin as an input
|
|
||||||
pinMode(BUTTON_PIN, INPUT);
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
// grab the current state of the button.
|
|
||||||
// we have to flip the logic because we are
|
|
||||||
// using a pullup resistor.
|
|
||||||
if(digitalRead(BUTTON_PIN) == LOW)
|
|
||||||
current = true;
|
|
||||||
else
|
|
||||||
current = false;
|
|
||||||
|
|
||||||
// return if the value hasn't changed
|
|
||||||
if(current == last)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// save the current state to the 'digital' feed on adafruit io
|
|
||||||
Serial.print("sending button -> ");
|
|
||||||
Serial.println(current);
|
|
||||||
digital->save(current);
|
|
||||||
|
|
||||||
// store last button state
|
|
||||||
last = current;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,86 +0,0 @@
|
||||||
// Adafruit IO Digital Output Example
|
|
||||||
// Tutorial Link: https://learn.adafruit.com/adafruit-io-basics-digital-output
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// digital pin 5
|
|
||||||
#define LED_PIN 5
|
|
||||||
|
|
||||||
// set up the 'digital' feed
|
|
||||||
AdafruitIO_Feed *digital = io.feed("digital");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
pinMode(LED_PIN, OUTPUT);
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// set up a message handler for the 'digital' feed.
|
|
||||||
// the handleMessage function (defined below)
|
|
||||||
// will be called whenever a message is
|
|
||||||
// received from adafruit io.
|
|
||||||
digital->onMessage(handleMessage);
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
digital->get();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function is called whenever an 'digital' feed message
|
|
||||||
// is received from Adafruit IO. it was attached to
|
|
||||||
// the 'digital' feed in the setup() function above.
|
|
||||||
void handleMessage(AdafruitIO_Data *data) {
|
|
||||||
|
|
||||||
Serial.print("received <- ");
|
|
||||||
|
|
||||||
if(data->toPinLevel() == HIGH)
|
|
||||||
Serial.println("HIGH");
|
|
||||||
else
|
|
||||||
Serial.println("LOW");
|
|
||||||
|
|
||||||
|
|
||||||
digitalWrite(LED_PIN, data->toPinLevel());
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,85 +0,0 @@
|
||||||
// Adafruit IO Analog In Example
|
|
||||||
// Tutorial Link: https://learn.adafruit.com/adafruit-io-basics-analog-input
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// analog pin 0
|
|
||||||
#define PHOTOCELL_PIN A0
|
|
||||||
|
|
||||||
// photocell state
|
|
||||||
int current = 0;
|
|
||||||
int last = -1;
|
|
||||||
|
|
||||||
// set up the 'analog' feed
|
|
||||||
AdafruitIO_Feed *analog = io.feed("analog");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
// grab the current state of the photocell
|
|
||||||
current = analogRead(PHOTOCELL_PIN);
|
|
||||||
|
|
||||||
// return if the value hasn't changed
|
|
||||||
if(current == last)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// save the current state to the analog feed
|
|
||||||
Serial.print("sending -> ");
|
|
||||||
Serial.println(current);
|
|
||||||
analog->save(current);
|
|
||||||
|
|
||||||
// store last photocell state
|
|
||||||
last = current;
|
|
||||||
|
|
||||||
// wait three seconds (1000 milliseconds == 1 second)
|
|
||||||
//
|
|
||||||
// because there are no active subscriptions, we can use delay()
|
|
||||||
// instead of tracking millis()
|
|
||||||
delay(3000);
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,97 +0,0 @@
|
||||||
// Adafruit IO Analog Out Example
|
|
||||||
// Tutorial Link: https://learn.adafruit.com/adafruit-io-basics-analog-output
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// this should correspond to a pin with PWM capability
|
|
||||||
#define LED_PIN 5
|
|
||||||
|
|
||||||
// set up the 'analog' feed
|
|
||||||
AdafruitIO_Feed *analog = io.feed("analog");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// set up led pin as an analog output
|
|
||||||
#if defined(ARDUINO_ARCH_ESP32)
|
|
||||||
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 1, 1)
|
|
||||||
// New ESP32 LEDC API
|
|
||||||
ledcAttach(LED_PIN, 12000, 8); // 12 kHz PWM, 8-bit resolution
|
|
||||||
#else
|
|
||||||
// Legacy ESP32 LEDC API
|
|
||||||
ledcAttachPin(LED_PIN, 1);
|
|
||||||
ledcSetup(1, 1200, 8);
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
pinMode(LED_PIN, OUTPUT);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// set up a message handler for the 'analog' feed.
|
|
||||||
// the handleMessage function (defined below)
|
|
||||||
// will be called whenever a message is
|
|
||||||
// received from adafruit io.
|
|
||||||
analog->onMessage(handleMessage);
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
analog->get();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function is called whenever an 'analog' message
|
|
||||||
// is received from Adafruit IO. it was attached to
|
|
||||||
// the analog feed in the setup() function above.
|
|
||||||
void handleMessage(AdafruitIO_Data *data) {
|
|
||||||
|
|
||||||
// convert the data to integer
|
|
||||||
int reading = data->toInt();
|
|
||||||
|
|
||||||
Serial.print("received <- ");
|
|
||||||
Serial.println(reading);
|
|
||||||
|
|
||||||
// write the current 'reading' to the led
|
|
||||||
analogWrite(LED_PIN, reading);
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,165 +0,0 @@
|
||||||
// Adafruit IO Dashboard Setup Example
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// set up the 'example' feed
|
|
||||||
AdafruitIO_Feed *feed = io.feed("example");
|
|
||||||
|
|
||||||
// set up the 'example' dashboard
|
|
||||||
AdafruitIO_Dashboard *dashboard = io.dashboard("example");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
// create the example feed if it doesn't exist
|
|
||||||
if(feed->exists()) {
|
|
||||||
Serial.println("Example feed exists.");
|
|
||||||
} else {
|
|
||||||
if(feed->create()) {
|
|
||||||
Serial.println("Example feed created.");
|
|
||||||
} else {
|
|
||||||
Serial.println("Example feed creation failed.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// create the example dashboard if it doesn't exist
|
|
||||||
if(dashboard->exists()) {
|
|
||||||
Serial.println("Example dashboard exists.");
|
|
||||||
} else {
|
|
||||||
if(dashboard->create()) {
|
|
||||||
Serial.println("Example dashboard created.");
|
|
||||||
// add blocks to the dashboard using the function below
|
|
||||||
addBlocks();
|
|
||||||
} else {
|
|
||||||
Serial.println("Example dashboard creation failed.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void addBlocks() {
|
|
||||||
|
|
||||||
bool added = false;
|
|
||||||
|
|
||||||
Serial.print("Adding momentary button block... ");
|
|
||||||
MomentaryBlock *button = dashboard->addMomentaryBlock(feed);
|
|
||||||
button->text = "Button";
|
|
||||||
button->value = "1";
|
|
||||||
button->release = "0";
|
|
||||||
added = button->save();
|
|
||||||
Serial.println(added ? "added" : "failed");
|
|
||||||
|
|
||||||
Serial.print("Adding toggle button block... ");
|
|
||||||
ToggleBlock *toggle = dashboard->addToggleBlock(feed);
|
|
||||||
toggle->onText = "1";
|
|
||||||
toggle->offText = "0";
|
|
||||||
added = toggle->save();
|
|
||||||
Serial.println(added ? "added" : "failed");
|
|
||||||
|
|
||||||
Serial.print("Adding slider block... ");
|
|
||||||
SliderBlock *slider = dashboard->addSliderBlock(feed);
|
|
||||||
slider->min = 0;
|
|
||||||
slider->max = 100;
|
|
||||||
slider->step = 10;
|
|
||||||
slider->label = "Value";
|
|
||||||
added = slider->save();
|
|
||||||
Serial.println(added ? "added" : "failed");
|
|
||||||
|
|
||||||
Serial.print("Adding gauge block... ");
|
|
||||||
GaugeBlock *gauge = dashboard->addGaugeBlock(feed);
|
|
||||||
gauge->min = 0;
|
|
||||||
gauge->max = 100;
|
|
||||||
gauge->ringWidth = "thin"; // thin or thick
|
|
||||||
gauge->label = "Value";
|
|
||||||
added = gauge->save();
|
|
||||||
Serial.println(added ? "added" : "failed");
|
|
||||||
|
|
||||||
Serial.print("Adding line chart block... ");
|
|
||||||
ChartBlock *chart = dashboard->addChartBlock(feed);
|
|
||||||
chart->yAxisMin = 0;
|
|
||||||
chart->yAxisMax = 100;
|
|
||||||
chart->xAxisLabel = "X";
|
|
||||||
chart->yAxisLabel = "Y";
|
|
||||||
added = chart->save();
|
|
||||||
Serial.println(added ? "added" : "failed");
|
|
||||||
|
|
||||||
Serial.print("Adding text block... ");
|
|
||||||
TextBlock *text = dashboard->addTextBlock(feed);
|
|
||||||
text->fontSize = "small"; // small, medium, or large
|
|
||||||
added = text->save();
|
|
||||||
Serial.println(added ? "added" : "failed");
|
|
||||||
|
|
||||||
Serial.print("Adding stream block... ");
|
|
||||||
StreamBlock *stream = dashboard->addStreamBlock(feed);
|
|
||||||
stream->fontSize = "small"; // small, medium, or large
|
|
||||||
stream->fontColor = "green"; // green or white
|
|
||||||
stream->showErrors = true;
|
|
||||||
stream->showTimestamp = true;
|
|
||||||
stream->showName = true;
|
|
||||||
added = stream->save();
|
|
||||||
Serial.println(added ? "added" : "failed");
|
|
||||||
|
|
||||||
Serial.print("Adding color picker block... ");
|
|
||||||
ColorBlock *color = dashboard->addColorBlock(feed);
|
|
||||||
added = color->save();
|
|
||||||
Serial.println(added ? "added" : "failed");
|
|
||||||
|
|
||||||
Serial.print("Adding map block... ");
|
|
||||||
MapBlock *map = dashboard->addMapBlock(feed);
|
|
||||||
map->historyHours = 0;
|
|
||||||
map->tile = "contrast"; // street, sat, or contrast
|
|
||||||
added = map->save();
|
|
||||||
Serial.println(added ? "added" : "failed");
|
|
||||||
|
|
||||||
Serial.print("Adding image block... ");
|
|
||||||
ImageBlock *image = dashboard->addImageBlock(feed);
|
|
||||||
added = image->save();
|
|
||||||
Serial.println(added ? "added" : "failed");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,93 +0,0 @@
|
||||||
// Adafruit IO Group Publish Example
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// set up the group
|
|
||||||
AdafruitIO_Group *group = io.group("example");
|
|
||||||
|
|
||||||
int count_1 = 0;
|
|
||||||
int count_2 = 0;
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
group->onMessage("count-1", one);
|
|
||||||
group->onMessage("count-2", two);
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
group->set("count-1", count_1);
|
|
||||||
group->set("count-2", count_2);
|
|
||||||
group->save();
|
|
||||||
|
|
||||||
Serial.print("sending example.count-1 -> ");
|
|
||||||
Serial.println(count_1);
|
|
||||||
Serial.print("sending example.count-2 -> ");
|
|
||||||
Serial.println(count_2);
|
|
||||||
|
|
||||||
// increment the count_1 by 1
|
|
||||||
count_1 += 1;
|
|
||||||
// increment the count_2 by 2
|
|
||||||
count_2 += 2;
|
|
||||||
|
|
||||||
// wait four seconds (1000 milliseconds == 1 second)
|
|
||||||
delay(4000);
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function is called whenever a 'counter-1' message
|
|
||||||
// is received from Adafruit IO. it was attached to
|
|
||||||
// the counter-1 feed in the setup() function above.
|
|
||||||
void one(AdafruitIO_Data *data) {
|
|
||||||
// do nothing!
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function is called whenever a 'counter-2' message
|
|
||||||
// is received from Adafruit IO. it was attached to
|
|
||||||
// the counter-2 feed in the setup() function above.
|
|
||||||
void two(AdafruitIO_Data *data) {
|
|
||||||
// do nothing!
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
||||||
// Adafruit IO Group Subscribe Example
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2018 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// set up the group
|
|
||||||
AdafruitIO_Group *group = io.group("example");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
group->onMessage("count-1", one);
|
|
||||||
group->onMessage("count-2", two);
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
// force IO to update our MQTT subscription with the current values of all feeds
|
|
||||||
group->get();
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// this function is called whenever a 'counter-1' message
|
|
||||||
// is received from Adafruit IO. it was attached to
|
|
||||||
// the counter-1 feed in the setup() function above.
|
|
||||||
void one(AdafruitIO_Data *data) {
|
|
||||||
Serial.print("received example.count-1 <- ");
|
|
||||||
Serial.println(data->value());
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function is called whenever a 'counter-2' message
|
|
||||||
// is received from Adafruit IO. it was attached to
|
|
||||||
// the counter-2 feed in the setup() function above.
|
|
||||||
void two(AdafruitIO_Data *data) {
|
|
||||||
Serial.print("received example.count-2 <- ");
|
|
||||||
Serial.println(data->value());
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,120 +0,0 @@
|
||||||
// Adafruit IO RGB LED Output Example
|
|
||||||
// Tutorial Link: https://learn.adafruit.com/adafruit-io-basics-color
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016-2017 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// default PWM pins for ESP8266.
|
|
||||||
// you should change these to match PWM pins on other platforms.
|
|
||||||
#define RED_PIN 4
|
|
||||||
#define GREEN_PIN 5
|
|
||||||
#define BLUE_PIN 2
|
|
||||||
|
|
||||||
// set up the 'color' feed
|
|
||||||
AdafruitIO_Feed *color = io.feed("color");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(ARDUINO_ARCH_ESP32) // ESP32 pinMode
|
|
||||||
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 1, 1)
|
|
||||||
// New ESP32 LEDC API
|
|
||||||
ledcAttach(RED_PIN, 12000, 8); // 12 kHz PWM, 8-bit resolution
|
|
||||||
ledcAttach(GREEN_PIN, 12000, 8);
|
|
||||||
ledcAttach(BLUE_PIN, 12000, 8);
|
|
||||||
#else
|
|
||||||
// Legacy ESP32 LEDC API
|
|
||||||
ledcAttachPin(RED_PIN, 1);
|
|
||||||
ledcAttachPin(GREEN_PIN, 2);
|
|
||||||
ledcAttachPin(BLUE_PIN, 3);
|
|
||||||
ledcSetup(1, 12000, 8);
|
|
||||||
ledcSetup(2, 12000, 8);
|
|
||||||
ledcSetup(3, 12000, 8);
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
pinMode(RED_PIN, OUTPUT);
|
|
||||||
pinMode(GREEN_PIN, OUTPUT);
|
|
||||||
pinMode(BLUE_PIN, OUTPUT);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// set up a message handler for the 'color' feed.
|
|
||||||
// the handleMessage function (defined below)
|
|
||||||
// will be called whenever a message is
|
|
||||||
// received from adafruit io.
|
|
||||||
color->onMessage(handleMessage);
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
color->get();
|
|
||||||
|
|
||||||
// set analogWrite range for ESP8266
|
|
||||||
#ifdef ESP8266
|
|
||||||
analogWriteRange(255);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function is called whenever a 'color' message
|
|
||||||
// is received from Adafruit IO. it was attached to
|
|
||||||
// the color feed in the setup() function above.
|
|
||||||
void handleMessage(AdafruitIO_Data *data) {
|
|
||||||
|
|
||||||
// print RGB values and hex value
|
|
||||||
Serial.println("Received:");
|
|
||||||
Serial.print(" - R: ");
|
|
||||||
Serial.println(data->toRed());
|
|
||||||
Serial.print(" - G: ");
|
|
||||||
Serial.println(data->toGreen());
|
|
||||||
Serial.print(" - B: ");
|
|
||||||
Serial.println(data->toBlue());
|
|
||||||
Serial.print(" - HEX: ");
|
|
||||||
Serial.println(data->value());
|
|
||||||
|
|
||||||
// invert RGB values for common anode LEDs
|
|
||||||
analogWrite(RED_PIN, 255 - data->toRed());
|
|
||||||
analogWrite(GREEN_PIN, 255 - data->toGreen());
|
|
||||||
analogWrite(BLUE_PIN, 255 - data->toBlue());
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,95 +0,0 @@
|
||||||
// Adafruit IO RGB LED Output Example
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016-2017 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
#include "Adafruit_NeoPixel.h"
|
|
||||||
|
|
||||||
#define PIXEL_PIN 5
|
|
||||||
#define PIXEL_COUNT 24
|
|
||||||
#define PIXEL_TYPE NEO_GRB + NEO_KHZ800
|
|
||||||
|
|
||||||
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE);
|
|
||||||
|
|
||||||
// set up the 'color' feed
|
|
||||||
AdafruitIO_Feed *color = io.feed("color");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// set up a message handler for the 'color' feed.
|
|
||||||
// the handleMessage function (defined below)
|
|
||||||
// will be called whenever a message is
|
|
||||||
// received from adafruit io.
|
|
||||||
color->onMessage(handleMessage);
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
color->get();
|
|
||||||
|
|
||||||
// neopixel init
|
|
||||||
pixels.begin();
|
|
||||||
pixels.show();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function is called whenever a 'color' message
|
|
||||||
// is received from Adafruit IO. it was attached to
|
|
||||||
// the color feed in the setup() function above.
|
|
||||||
void handleMessage(AdafruitIO_Data *data) {
|
|
||||||
|
|
||||||
// print RGB values and hex value
|
|
||||||
Serial.println("Received HEX: ");
|
|
||||||
Serial.println(data->value());
|
|
||||||
|
|
||||||
long color = data->toNeoPixel();
|
|
||||||
|
|
||||||
for(int i=0; i<PIXEL_COUNT; ++i) {
|
|
||||||
pixels.setPixelColor(i, color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pixels.show();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,100 +0,0 @@
|
||||||
// Adafruit IO Temperature & Humidity Example
|
|
||||||
// Tutorial Link: https://learn.adafruit.com/adafruit-io-basics-temperature-and-humidity
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016-2017 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
#include <Adafruit_Sensor.h>
|
|
||||||
#include <DHT.h>
|
|
||||||
#include <DHT_U.h>
|
|
||||||
|
|
||||||
// pin connected to DH22 data line
|
|
||||||
#define DATA_PIN 2
|
|
||||||
|
|
||||||
// create DHT22 instance
|
|
||||||
DHT_Unified dht(DATA_PIN, DHT22);
|
|
||||||
|
|
||||||
// set up the 'temperature' and 'humidity' feeds
|
|
||||||
AdafruitIO_Feed *temperature = io.feed("temperature");
|
|
||||||
AdafruitIO_Feed *humidity = io.feed("humidity");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
// initialize dht22
|
|
||||||
dht.begin();
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
sensors_event_t event;
|
|
||||||
dht.temperature().getEvent(&event);
|
|
||||||
|
|
||||||
float celsius = event.temperature;
|
|
||||||
float fahrenheit = (celsius * 1.8) + 32;
|
|
||||||
|
|
||||||
Serial.print("celsius: ");
|
|
||||||
Serial.print(celsius);
|
|
||||||
Serial.println("C");
|
|
||||||
|
|
||||||
Serial.print("fahrenheit: ");
|
|
||||||
Serial.print(fahrenheit);
|
|
||||||
Serial.println("F");
|
|
||||||
|
|
||||||
// save fahrenheit (or celsius) to Adafruit IO
|
|
||||||
temperature->save(fahrenheit);
|
|
||||||
|
|
||||||
dht.humidity().getEvent(&event);
|
|
||||||
|
|
||||||
Serial.print("humidity: ");
|
|
||||||
Serial.print(event.relative_humidity);
|
|
||||||
Serial.println("%");
|
|
||||||
|
|
||||||
// save humidity to Adafruit IO
|
|
||||||
humidity->save(event.relative_humidity);
|
|
||||||
|
|
||||||
// wait 5 seconds (5000 milliseconds == 5 seconds)
|
|
||||||
delay(5000);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,102 +0,0 @@
|
||||||
// Adafruit IO Servo Example
|
|
||||||
// Tutorial Link: https://learn.adafruit.com/adafruit-io-basics-servo
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Copyright (c) 2016-2017 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
#if defined(ARDUINO_ARCH_ESP32)
|
|
||||||
// ESP32Servo Library (https://github.com/madhephaestus/ESP32Servo)
|
|
||||||
// installation: library manager -> search -> "ESP32Servo"
|
|
||||||
#include <ESP32Servo.h>
|
|
||||||
#else
|
|
||||||
#include <Servo.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// pin used to control the servo
|
|
||||||
#define SERVO_PIN 2
|
|
||||||
|
|
||||||
// create an instance of the servo class
|
|
||||||
Servo servo;
|
|
||||||
|
|
||||||
// set up the 'servo' feed
|
|
||||||
AdafruitIO_Feed *servo_feed = io.feed("servo");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
// tell the servo class which pin we are using
|
|
||||||
servo.attach(SERVO_PIN);
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// set up a message handler for the 'servo' feed.
|
|
||||||
// the handleMessage function (defined below)
|
|
||||||
// will be called whenever a message is
|
|
||||||
// received from adafruit io.
|
|
||||||
servo_feed->onMessage(handleMessage);
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
servo_feed->get();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function is called whenever a 'servo' message
|
|
||||||
// is received from Adafruit IO. it was attached to
|
|
||||||
// the servo feed in the setup() function above.
|
|
||||||
void handleMessage(AdafruitIO_Data *data) {
|
|
||||||
|
|
||||||
// convert the data to integer
|
|
||||||
int angle = data->toInt();
|
|
||||||
|
|
||||||
// make sure we don't exceed the limit
|
|
||||||
// of the servo. the range is from 0
|
|
||||||
// to 180.
|
|
||||||
if(angle < 0)
|
|
||||||
angle = 0;
|
|
||||||
else if(angle > 180)
|
|
||||||
angle = 180;
|
|
||||||
|
|
||||||
servo.write(angle);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,99 +0,0 @@
|
||||||
// Adafruit IO Time Topic Subscription Example
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Adam Bachman, Brent Rubell for Adafruit Industries
|
|
||||||
// Copyright (c) 2018 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// set up the 'time/seconds' topic
|
|
||||||
AdafruitIO_Time *seconds = io.time(AIO_TIME_SECONDS);
|
|
||||||
|
|
||||||
// set up the 'time/milliseconds' topic
|
|
||||||
AdafruitIO_Time *msecs = io.time(AIO_TIME_MILLIS);
|
|
||||||
|
|
||||||
// set up the 'time/ISO-8601' topic
|
|
||||||
AdafruitIO_Time *iso = io.time(AIO_TIME_ISO);
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
|
|
||||||
// start MQTT connection to io.adafruit.com
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// attach message handler for the seconds feed
|
|
||||||
seconds->onMessage(handleSecs);
|
|
||||||
|
|
||||||
// attach a message handler for the msecs feed
|
|
||||||
msecs->onMessage(handleMillis);
|
|
||||||
|
|
||||||
// attach a message handler for the ISO feed
|
|
||||||
iso->onMessage(handleISO);
|
|
||||||
|
|
||||||
// wait for an MQTT connection
|
|
||||||
// NOTE: when blending the HTTP and MQTT API, always use the mqttStatus
|
|
||||||
// method to check on MQTT connection status specifically
|
|
||||||
while(io.mqttStatus() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
// Because this sketch isn't publishing, we don't need
|
|
||||||
// a delay() in the main program loop.
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// message handler for the seconds feed
|
|
||||||
void handleSecs(char *data, uint16_t len) {
|
|
||||||
Serial.print("Seconds Feed: ");
|
|
||||||
Serial.println(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// message handler for the milliseconds feed
|
|
||||||
void handleMillis(char *data, uint16_t len) {
|
|
||||||
Serial.print("Millis Feed: ");
|
|
||||||
Serial.println(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// message handler for the ISO-8601 feed
|
|
||||||
void handleISO(char *data, uint16_t len) {
|
|
||||||
Serial.print("ISO Feed: ");
|
|
||||||
Serial.println(data);
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
||||||
// Adafruit IO Device Information
|
|
||||||
// desc: Displays Device, WiFi, and Adafruit IO connection information
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Brent Rubell for Adafruit Industries
|
|
||||||
// Copyright (c) 2018 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
// device mac address
|
|
||||||
byte mac[6];
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
Serial.print("Connecting to Adafruit IO...");
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
Serial.println();
|
|
||||||
|
|
||||||
// Device Info
|
|
||||||
Serial.println("----DEVICE INFO----");
|
|
||||||
IPAddress ip = WiFi.localIP();
|
|
||||||
Serial.print("IP Address: ");
|
|
||||||
Serial.println(ip);
|
|
||||||
|
|
||||||
WiFi.macAddress(mac);
|
|
||||||
Serial.print("MAC Address: ");
|
|
||||||
for(int i=0;i<6;i++) {
|
|
||||||
Serial.print(mac[i], HEX);
|
|
||||||
}
|
|
||||||
Serial.println();
|
|
||||||
|
|
||||||
// Network Info
|
|
||||||
Serial.println("----ROUTER INFO----");
|
|
||||||
Serial.print("WIFI SSID: ");
|
|
||||||
Serial.println(WIFI_SSID);
|
|
||||||
Serial.print("WIFI Pass: ");
|
|
||||||
Serial.println(WIFI_PASS);
|
|
||||||
long rssi = WiFi.RSSI();
|
|
||||||
Serial.print("RSSI:");
|
|
||||||
Serial.println(rssi);
|
|
||||||
|
|
||||||
// Adafruit IO Info
|
|
||||||
Serial.println("----ADAFRUIT IO INFO----");
|
|
||||||
Serial.print("IO User: ");
|
|
||||||
Serial.println(IO_USERNAME);
|
|
||||||
Serial.print("IO Key: ");
|
|
||||||
Serial.println(IO_KEY);
|
|
||||||
Serial.print("IO Status: ");
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop(){
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
||||||
// Adafruit IO DeepSleep Example (HUZZAH8266)
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Brent Rubell for Adafruit Industries
|
|
||||||
// Copyright (c) 2018 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
#define DEEPSLEEP_DURATION 20e6
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while (!Serial);
|
|
||||||
Serial.println("Adafruit IO + DeepSleep");
|
|
||||||
|
|
||||||
// connect to the Adafruit IO Library
|
|
||||||
connectAIO();
|
|
||||||
|
|
||||||
// set up and write to deepsleep feed
|
|
||||||
feedWrite();
|
|
||||||
|
|
||||||
// let's go back to sleep for DEEPSLEEP_DURATION seconds...
|
|
||||||
Serial.println("sleeping...");
|
|
||||||
// Put the Huzzah into deepsleep for DEEPSLEEP_DURATION
|
|
||||||
// NOTE: Make sure Pin 16 is connected to RST
|
|
||||||
#if defined(ESP8266)
|
|
||||||
ESP.deepSleep(1000000 * 2);
|
|
||||||
#else
|
|
||||||
Serial.println("This example is not compatible with your hardware.");
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
// NOOP
|
|
||||||
void loop() {
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void feedWrite(){
|
|
||||||
// set up `deepsleep` feed
|
|
||||||
AdafruitIO_Feed *deepsleep = io.feed("deepsleep");
|
|
||||||
Serial.println("sending value to feed 'deepsleep");
|
|
||||||
// send data to deepsleep feed
|
|
||||||
deepsleep->save(1);
|
|
||||||
// write data to AIO
|
|
||||||
io.run();
|
|
||||||
}
|
|
||||||
void connectAIO() {
|
|
||||||
Serial.println("Connecting to Adafruit IO...");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while (io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
||||||
// Adafruit IO Shared Feeds Write Example
|
|
||||||
// desc: Example of writing a button value to a shared feed.
|
|
||||||
//
|
|
||||||
// Tutorial Link: https://learn.adafruit.com/adafruit-io-basics-feeds/sharing-a-feed
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Brent Rubell for Adafruit Industries
|
|
||||||
// Copyright (c) 2018 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// digital pin 5
|
|
||||||
#define BUTTON_PIN 5
|
|
||||||
|
|
||||||
// the Adafruit IO username of whomever owns the feed
|
|
||||||
#define FEED_OWNER "AIO_FEED_OWNER"
|
|
||||||
|
|
||||||
// set up a shared feed between you and the FEED_OWNER
|
|
||||||
// make sure you have both read AND write access to this feed
|
|
||||||
AdafruitIO_Feed *sharedFeed = io.feed("FEED-NAME", FEED_OWNER);
|
|
||||||
|
|
||||||
// button state
|
|
||||||
bool current = false;
|
|
||||||
bool last = false;
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// set button pin as an input
|
|
||||||
pinMode(BUTTON_PIN, INPUT);
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
// grab the current state of the button.
|
|
||||||
// we have to flip the logic because we are
|
|
||||||
// using a pullup resistor.
|
|
||||||
if(digitalRead(BUTTON_PIN) == LOW)
|
|
||||||
current = true;
|
|
||||||
else
|
|
||||||
current = false;
|
|
||||||
|
|
||||||
// return if the value hasn't changed
|
|
||||||
if(current == last)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// save the current state to the 'sharedFeed' feed on adafruit io
|
|
||||||
Serial.print("sending button -> ");
|
|
||||||
Serial.println(current);
|
|
||||||
sharedFeed->save(current);
|
|
||||||
|
|
||||||
// store last button state
|
|
||||||
last = current;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,78 +0,0 @@
|
||||||
// Adafruit IO Feed Reading
|
|
||||||
// Tutorial Link: https://learn.adafruit.com/adafruit-io-basics-feeds/sharing-a-feed
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Brent Rubell for Adafruit Industries
|
|
||||||
// Copyright (c) 2018 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// the Adafruit IO username of whomever owns the feed
|
|
||||||
#define FEED_OWNER "AIO_FEED_OWNER"
|
|
||||||
|
|
||||||
// set up the `sharedFeed`
|
|
||||||
AdafruitIO_Feed *sharedFeed = io.feed("FEED-NAME", FEED_OWNER);
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// set up a message handler for the 'sharedFeed' feed.
|
|
||||||
// the handleMessage function (defined below)
|
|
||||||
// will be called whenever a message is
|
|
||||||
// received from adafruit io.
|
|
||||||
sharedFeed->onMessage(handleMessage);
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
sharedFeed->get();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function is called whenever an 'sharedFeed' feed message
|
|
||||||
// is received from Adafruit IO. it was attached to
|
|
||||||
// the 'digital' feed in the setup() function above.
|
|
||||||
void handleMessage(AdafruitIO_Data *data) {
|
|
||||||
|
|
||||||
Serial.print("received <- ");
|
|
||||||
Serial.println(data->toInt());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,190 +0,0 @@
|
||||||
// Adafruit IO Environmental Data Logger
|
|
||||||
// Tutorial Link: https://learn.adafruit.com/adafruit-io-air-quality-monitor
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Brent Rubell for Adafruit Industries
|
|
||||||
// Copyright (c) 2018 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Adafruit IO Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/**************************** Sensor Configuration ***************************************/
|
|
||||||
#include <Wire.h>
|
|
||||||
#include <Adafruit_Sensor.h>
|
|
||||||
#include <Adafruit_BME280.h>
|
|
||||||
#include "Adafruit_VEML6070.h"
|
|
||||||
#include "Adafruit_SGP30.h"
|
|
||||||
|
|
||||||
// BME280 Sensor Definitions
|
|
||||||
#define BME_SCK 13
|
|
||||||
#define BME_MISO 12
|
|
||||||
#define BME_MOSI 11
|
|
||||||
#define BME_CS 10
|
|
||||||
#define SEALEVELPRESSURE_HPA (1013.25)
|
|
||||||
|
|
||||||
// Instanciate the sensors
|
|
||||||
Adafruit_BME280 bme;
|
|
||||||
Adafruit_VEML6070 uv = Adafruit_VEML6070();
|
|
||||||
Adafruit_SGP30 sgp;
|
|
||||||
|
|
||||||
/**************************** Example ***************************************/
|
|
||||||
// Delay between sensor reads, in seconds
|
|
||||||
#define READ_DELAY 10
|
|
||||||
|
|
||||||
// DHT22 Data
|
|
||||||
int temperatureReading;
|
|
||||||
int pressureReading;
|
|
||||||
|
|
||||||
// SGP30 Data
|
|
||||||
int tvocReading = 0;
|
|
||||||
int ecO2Reading = 0;
|
|
||||||
|
|
||||||
// BME280 Data
|
|
||||||
int altitudeReading = 0;
|
|
||||||
int humidityReading = 0;
|
|
||||||
|
|
||||||
// VEML6070 Data
|
|
||||||
int uvReading = 0;
|
|
||||||
|
|
||||||
// set up the feeds for the BME280
|
|
||||||
AdafruitIO_Feed *temperatureFeed = io.feed("temperature");
|
|
||||||
AdafruitIO_Feed *humidityFeed = io.feed("humidity");
|
|
||||||
AdafruitIO_Feed *pressureFeed = io.feed("pressure");
|
|
||||||
AdafruitIO_Feed *altitudeFeed = io.feed("altitude");
|
|
||||||
|
|
||||||
// set up feed for the VEML6070
|
|
||||||
AdafruitIO_Feed *uvFeed = io.feed("uv");
|
|
||||||
|
|
||||||
// set up feeds for the SGP30
|
|
||||||
AdafruitIO_Feed *tvocFeed = io.feed("tvoc");
|
|
||||||
AdafruitIO_Feed *ecO2Feed = io.feed("ecO2");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(9600);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while (!Serial);
|
|
||||||
|
|
||||||
Serial.println("Adafruit IO Environmental Logger");
|
|
||||||
|
|
||||||
// set up BME280
|
|
||||||
setupBME280();
|
|
||||||
// set up SGP30
|
|
||||||
setupSGP30();
|
|
||||||
// setup VEML6070
|
|
||||||
uv.begin(VEML6070_1_T);
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while (io.status() < AIO_CONNECTED)
|
|
||||||
{
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
Serial.println("Reading Sensors...");
|
|
||||||
|
|
||||||
// Read the temperature from the BME280
|
|
||||||
temperatureReading = bme.readTemperature();
|
|
||||||
|
|
||||||
// convert from celsius to degrees fahrenheit
|
|
||||||
temperatureReading = temperatureReading * 1.8 + 32;
|
|
||||||
|
|
||||||
Serial.print("Temperature = "); Serial.print(temperatureReading); Serial.println(" *F");
|
|
||||||
|
|
||||||
// Read the pressure from the BME280
|
|
||||||
pressureReading = bme.readPressure() / 100.0F;
|
|
||||||
Serial.print("Pressure = "); Serial.print(pressureReading); Serial.println(" hPa");
|
|
||||||
|
|
||||||
// Read the altitude from the BME280
|
|
||||||
altitudeReading = bme.readAltitude(SEALEVELPRESSURE_HPA);
|
|
||||||
Serial.print("Approx. Altitude = "); Serial.print(altitudeReading); Serial.println(" m");
|
|
||||||
|
|
||||||
// Read the humidity from the BME280
|
|
||||||
humidityReading = bme.readHumidity();
|
|
||||||
Serial.print("Humidity = "); Serial.print(humidityReading); Serial.println("%");
|
|
||||||
|
|
||||||
// VEML6070
|
|
||||||
uvReading = uv.readUV();
|
|
||||||
Serial.print("UV Light Level: "); Serial.println(uvReading);
|
|
||||||
|
|
||||||
if(! sgp.IAQmeasure()){
|
|
||||||
tvocReading = -1;
|
|
||||||
ecO2Reading = -1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tvocReading = sgp.TVOC;
|
|
||||||
ecO2Reading = sgp.eCO2;
|
|
||||||
}
|
|
||||||
|
|
||||||
Serial.print("TVOC: "); Serial.print(tvocReading); Serial.print(" ppb\t");
|
|
||||||
Serial.print("eCO2: "); Serial.print(ecO2Reading); Serial.println(" ppm");
|
|
||||||
|
|
||||||
// send data to Adafruit IO feeds
|
|
||||||
temperatureFeed->save(temperatureReading);
|
|
||||||
humidityFeed->save(humidityReading);
|
|
||||||
altitudeFeed->save(altitudeReading);
|
|
||||||
pressureFeed->save(pressureReading);
|
|
||||||
uvFeed->save(uvReading);
|
|
||||||
ecO2Feed->save(ecO2Reading);
|
|
||||||
tvocFeed->save(tvocReading);
|
|
||||||
|
|
||||||
// delay the polled loop
|
|
||||||
delay(READ_DELAY * 1000);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set up the SGP30 sensor
|
|
||||||
void setupSGP30() {
|
|
||||||
if (!sgp.begin())
|
|
||||||
{
|
|
||||||
Serial.println("Sensor not found :(");
|
|
||||||
while (1);
|
|
||||||
}
|
|
||||||
Serial.print("Found SGP30 serial #");
|
|
||||||
Serial.print(sgp.serialnumber[0], HEX);
|
|
||||||
Serial.print(sgp.serialnumber[1], HEX);
|
|
||||||
Serial.println(sgp.serialnumber[2], HEX);
|
|
||||||
|
|
||||||
// If you previously calibrated the sensor in this environment,
|
|
||||||
// you can assign it to self-calibrate (replace the values with your baselines):
|
|
||||||
// sgp.setIAQBaseline(0x8E68, 0x8F41);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set up the BME280 sensor
|
|
||||||
void setupBME280() {
|
|
||||||
bool status;
|
|
||||||
status = bme.begin();
|
|
||||||
if (!status)
|
|
||||||
{
|
|
||||||
Serial.println("Could not find a valid BME280 sensor, check wiring!");
|
|
||||||
while (1);
|
|
||||||
}
|
|
||||||
Serial.println("BME Sensor is set up!");
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
// Adafruit IO IFTTT Example - Gmailbox
|
|
||||||
// Tutorial Link: https://learn.adafruit.com/gmailbox
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Brent Rubell for Adafruit Industries
|
|
||||||
// Copyright (c) 2018 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
// Import Servo Libraries
|
|
||||||
#if defined(ARDUINO_ARCH_ESP32)
|
|
||||||
// ESP32Servo Library (https://github.com/madhephaestus/ESP32Servo)
|
|
||||||
// installation: library manager -> search -> "ESP32Servo"
|
|
||||||
#include <ESP32Servo.h>
|
|
||||||
#else
|
|
||||||
#include <Servo.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// pin used to control the servo
|
|
||||||
#define SERVO_PIN 14
|
|
||||||
|
|
||||||
// Flag's up position, in degrees
|
|
||||||
#define FLAG_UP 0
|
|
||||||
|
|
||||||
// Flag's down position, in degrees
|
|
||||||
#define FLAG_DOWN 180
|
|
||||||
|
|
||||||
// How long to hold the flag up, in seconds
|
|
||||||
#define FLAG_DELAY 2
|
|
||||||
|
|
||||||
// create an instance of the servo class
|
|
||||||
Servo servo;
|
|
||||||
|
|
||||||
// set up the 'servo' feed
|
|
||||||
AdafruitIO_Feed *gmail_feed = io.feed("gmail");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
Serial.print("IFTTT Gmailbox");
|
|
||||||
|
|
||||||
// tell the servo class which pin we are using
|
|
||||||
servo.attach(SERVO_PIN);
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// set up a message handler for the 'servo' feed.
|
|
||||||
// the handleMessage function (defined below)
|
|
||||||
// will be called whenever a message is
|
|
||||||
// received from adafruit io.
|
|
||||||
gmail_feed->onMessage(handleMessage);
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
gmail_feed->get();
|
|
||||||
|
|
||||||
// write flag to down position
|
|
||||||
servo.write(FLAG_DOWN);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function is called whenever a 'gmail' message
|
|
||||||
// is received from Adafruit IO. it was attached to
|
|
||||||
// the gmail feed in the setup() function above.
|
|
||||||
void handleMessage(AdafruitIO_Data *data) {
|
|
||||||
|
|
||||||
Serial.println("You've got mail!");
|
|
||||||
servo.write(FLAG_UP);
|
|
||||||
// wait FLAG_DELAY seconds
|
|
||||||
delay(FLAG_DELAY * 1000);
|
|
||||||
servo.write(FLAG_DOWN);
|
|
||||||
}
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define SPIWIFI_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define ESP32_RESETN 6 // Reset pin
|
|
||||||
#define ESP32_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
SPIWIFI_ACK, ESP32_RESETN, ESP32_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,230 +0,0 @@
|
||||||
// Adafruit IO Time Tracking Cube
|
|
||||||
// Tutorial Link: https://learn.adafruit.com/time-tracking-cube
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Brent Rubell for Adafruit Industries
|
|
||||||
// Copyright (c) 2019 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
#include <Wire.h>
|
|
||||||
#include <Adafruit_LIS3DH.h>
|
|
||||||
#include <Adafruit_Sensor.h>
|
|
||||||
#include <Adafruit_NeoPixel.h>
|
|
||||||
|
|
||||||
// Prop-Maker Wing
|
|
||||||
#define NEOPIXEL_PIN 2
|
|
||||||
#define POWER_PIN 15
|
|
||||||
|
|
||||||
// Used for Pizeo
|
|
||||||
#define PIEZO_PIN 0
|
|
||||||
|
|
||||||
// # of Pixels Attached
|
|
||||||
#define NUM_PIXELS 8
|
|
||||||
|
|
||||||
// Adafruit_LIS3DH Setup
|
|
||||||
Adafruit_LIS3DH lis = Adafruit_LIS3DH();
|
|
||||||
|
|
||||||
// NeoPixel Setup
|
|
||||||
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_PIXELS, NEOPIXEL_PIN, NEO_GRB + NEO_KHZ800);
|
|
||||||
|
|
||||||
// Set up the 'cubeTask' feed
|
|
||||||
AdafruitIO_Feed *cubetask = io.feed("cubetask");
|
|
||||||
|
|
||||||
/* Time Tracking Cube States
|
|
||||||
* 1: Cube Tilted Left
|
|
||||||
* 2: Cube Tilted Right
|
|
||||||
* 3: Cube Neutral, Top
|
|
||||||
*/
|
|
||||||
int cubeState = 0;
|
|
||||||
|
|
||||||
// Previous cube orientation state
|
|
||||||
int prvCubeState = 0;
|
|
||||||
|
|
||||||
// Tasks (change these to what you're currently working on)
|
|
||||||
String taskOne = "Write Learn Guide";
|
|
||||||
String taskTwo = "Write Code";
|
|
||||||
|
|
||||||
// Adafruit IO sending delay, in seconds
|
|
||||||
int sendDelay = 0.5;
|
|
||||||
|
|
||||||
// Time-Keeping
|
|
||||||
unsigned long currentTime;
|
|
||||||
unsigned long prevTime;
|
|
||||||
int seconds = 0;
|
|
||||||
int minutes = 0;
|
|
||||||
|
|
||||||
void setup()
|
|
||||||
{
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(9600);
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while (!Serial)
|
|
||||||
;
|
|
||||||
Serial.println("Adafruit IO Time Tracking Cube");
|
|
||||||
|
|
||||||
// disabling low-power mode on the prop-maker wing
|
|
||||||
pinMode(POWER_PIN, OUTPUT);
|
|
||||||
digitalWrite(POWER_PIN, HIGH);
|
|
||||||
|
|
||||||
// Initialize LIS3DH
|
|
||||||
if (!lis.begin(0x18))
|
|
||||||
{
|
|
||||||
Serial.println("Couldnt start");
|
|
||||||
while (1)
|
|
||||||
;
|
|
||||||
}
|
|
||||||
Serial.println("LIS3DH found!");
|
|
||||||
lis.setRange(LIS3DH_RANGE_4_G);
|
|
||||||
|
|
||||||
// Initialize NeoPixel Strip
|
|
||||||
strip.begin();
|
|
||||||
Serial.println("Pixels init'd");
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while (io.status() < AIO_CONNECTED)
|
|
||||||
{
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
}
|
|
||||||
|
|
||||||
void updateTime()
|
|
||||||
{
|
|
||||||
// grab the current time from millis()
|
|
||||||
currentTime = millis() / 1000;
|
|
||||||
seconds = currentTime - prevTime;
|
|
||||||
// increase mins.
|
|
||||||
if (seconds == 60)
|
|
||||||
{
|
|
||||||
prevTime = currentTime;
|
|
||||||
minutes++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void updatePixels(uint8_t red, uint8_t green, uint8_t blue)
|
|
||||||
{
|
|
||||||
for (int p = 0; p < NUM_PIXELS; p++)
|
|
||||||
{
|
|
||||||
strip.setPixelColor(p, red, green, blue);
|
|
||||||
}
|
|
||||||
strip.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop()
|
|
||||||
{
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
// Update the timer
|
|
||||||
updateTime();
|
|
||||||
|
|
||||||
// Get a normalized sensor reading
|
|
||||||
sensors_event_t event;
|
|
||||||
lis.getEvent(&event);
|
|
||||||
|
|
||||||
// Detect cube face orientation
|
|
||||||
if (event.acceleration.x > 9 && event.acceleration.x < 10)
|
|
||||||
{
|
|
||||||
//Serial.println("Cube TILTED: Left");
|
|
||||||
cubeState = 1;
|
|
||||||
}
|
|
||||||
else if (event.acceleration.x < -9)
|
|
||||||
{
|
|
||||||
//Serial.println("Cube TILTED: Right");
|
|
||||||
cubeState = 2;
|
|
||||||
}
|
|
||||||
else if (event.acceleration.y < 0 && event.acceleration.y > -1)
|
|
||||||
{
|
|
||||||
cubeState = 3;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{ // orientation not specified
|
|
||||||
//Serial.println("Cube Idle...");
|
|
||||||
}
|
|
||||||
|
|
||||||
// return if the orientation hasn't changed
|
|
||||||
if (cubeState == prvCubeState)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Send to Adafruit IO based off of the orientation of the cube
|
|
||||||
switch (cubeState)
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
Serial.println("Switching to Task 1");
|
|
||||||
// update the neopixel strip
|
|
||||||
updatePixels(50, 0, 0);
|
|
||||||
|
|
||||||
// play a sound
|
|
||||||
#if defined(ARDUINO_ARCH_ESP32)
|
|
||||||
ledcWriteTone(PIEZO_PIN, 650);
|
|
||||||
#else
|
|
||||||
tone(PIEZO_PIN, 650, 300);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Serial.print("Sending to Adafruit IO -> ");
|
|
||||||
Serial.println(taskTwo);
|
|
||||||
cubetask->save(taskTwo, minutes);
|
|
||||||
// reset the timer
|
|
||||||
minutes = 0;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
Serial.println("Switching to Task 2");
|
|
||||||
// update the neopixel strip
|
|
||||||
updatePixels(0, 50, 0);
|
|
||||||
|
|
||||||
// play a sound
|
|
||||||
#if defined(ARDUINO_ARCH_ESP32)
|
|
||||||
ledcWriteTone(PIEZO_PIN, 850);
|
|
||||||
#else
|
|
||||||
tone(PIEZO_PIN, 850, 300);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Serial.print("Sending to Adafruit IO -> ");
|
|
||||||
Serial.println(taskOne);
|
|
||||||
cubetask->save(taskOne, minutes);
|
|
||||||
// reset the timer
|
|
||||||
minutes = 0;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
updatePixels(0, 0, 50);
|
|
||||||
|
|
||||||
// play a sound
|
|
||||||
#if defined(ARDUINO_ARCH_ESP32)
|
|
||||||
ledcWriteTone(PIEZO_PIN, 950);
|
|
||||||
#else
|
|
||||||
tone(PIEZO_PIN, 950, 300);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// save cube state
|
|
||||||
prvCubeState = cubeState;
|
|
||||||
|
|
||||||
// Delay the send to Adafruit IO
|
|
||||||
delay(sendDelay * 1000);
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,95 +0,0 @@
|
||||||
// Adafruit IO Schedule Trigger Example
|
|
||||||
// Tutorial Link: https://learn.adafruit.com/adafruit-io-basics-scheduled-triggers/
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Brent Rubell for Adafruit Industries
|
|
||||||
// Copyright (c) 2020 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
|
|
||||||
// Relay is connected to PyPortal's D3 connector
|
|
||||||
#define RELAY_POWER_PIN 3
|
|
||||||
|
|
||||||
// Set up the 'relay feed'
|
|
||||||
AdafruitIO_Feed *relay = io.feed("relay");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// set up a message handler for the 'relay' feed.
|
|
||||||
// the handleMessage function (defined below)
|
|
||||||
// will be called whenever a message is
|
|
||||||
// received from adafruit io
|
|
||||||
relay->onMessage(handleMessage);
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
// Get the last known value from the feed
|
|
||||||
relay->get();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function is called whenever an 'relay' feed message
|
|
||||||
// is received from Adafruit IO. it was attached to
|
|
||||||
// the 'relay' feed in the setup() function above.
|
|
||||||
void handleMessage(AdafruitIO_Data *data) {
|
|
||||||
|
|
||||||
Serial.print("feed received new data <- ");
|
|
||||||
Serial.println(data->toChar());
|
|
||||||
|
|
||||||
// Check to see if the morning scheduled trigger has executed
|
|
||||||
if (strcmp(data->toChar(), "1") == 0) {
|
|
||||||
Serial.println("Turning lights ON");
|
|
||||||
digitalWrite(RELAY_POWER_PIN, HIGH);
|
|
||||||
}
|
|
||||||
// Check to see if the evening scheduled trigger has executed
|
|
||||||
else if (strcmp(data->toChar(), "0") == 0) {
|
|
||||||
Serial.println("Turning lights OFF");
|
|
||||||
digitalWrite(RELAY_POWER_PIN, LOW);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Serial.println("Unexpected data received from Adafruit IO");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define SPIWIFI_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define ESP32_RESETN 6 // Reset pin
|
|
||||||
#define ESP32_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
SPIWIFI_ACK, ESP32_RESETN, ESP32_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,116 +0,0 @@
|
||||||
// Adafruit IO Publish & Subscribe, Digital Input and Output Example
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Todd Treece for Adafruit Industries
|
|
||||||
// Modified by Brent Rubell for Adafruit Industries
|
|
||||||
// Copyright (c) 2020 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// Button Pin
|
|
||||||
#define BUTTON_PIN 0
|
|
||||||
|
|
||||||
// LED Pin
|
|
||||||
#define LED_PIN LED_BUILTIN
|
|
||||||
|
|
||||||
// button state
|
|
||||||
bool btn_state = false;
|
|
||||||
bool prv_btn_state = false;
|
|
||||||
|
|
||||||
// set up the 'led' feed
|
|
||||||
AdafruitIO_Feed *led = io.feed("led");
|
|
||||||
|
|
||||||
// set up the 'button' feed
|
|
||||||
AdafruitIO_Feed *button = io.feed("button");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// set button pin as an input
|
|
||||||
pinMode(BUTTON_PIN, INPUT);
|
|
||||||
|
|
||||||
// set LED pin as an output
|
|
||||||
pinMode(LED_PIN, OUTPUT);
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// set up a message handler for the count feed.
|
|
||||||
// the handleMessage function (defined below)
|
|
||||||
// will be called whenever a message is
|
|
||||||
// received from adafruit io.
|
|
||||||
led->onMessage(handleMessage);
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
led->get();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
// grab the btn_state state of the button.
|
|
||||||
if(digitalRead(BUTTON_PIN) == LOW)
|
|
||||||
btn_state = false;
|
|
||||||
else
|
|
||||||
btn_state = true;
|
|
||||||
|
|
||||||
// return if the btn state hasn't changed
|
|
||||||
if(btn_state == prv_btn_state)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// save the btn_state state to the 'button' feed on adafruit io
|
|
||||||
Serial.print("sending button -> "); Serial.println(btn_state);
|
|
||||||
button->save(btn_state);
|
|
||||||
|
|
||||||
// store last button state
|
|
||||||
prv_btn_state = btn_state;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function is called whenever a 'led' message
|
|
||||||
// is received from Adafruit IO. it was attached to
|
|
||||||
// the counter feed in the setup() function above.
|
|
||||||
void handleMessage(AdafruitIO_Data *data) {
|
|
||||||
Serial.print("received <- ");
|
|
||||||
|
|
||||||
if(data->toPinLevel() == HIGH)
|
|
||||||
Serial.println("HIGH");
|
|
||||||
else
|
|
||||||
Serial.println("LOW");
|
|
||||||
|
|
||||||
digitalWrite(LED_PIN, data->toPinLevel());
|
|
||||||
}
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define SPIWIFI_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define ESP32_RESETN 6 // Reset pin
|
|
||||||
#define ESP32_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
SPIWIFI_ACK, ESP32_RESETN, ESP32_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
|
|
||||||
|
|
@ -1,80 +0,0 @@
|
||||||
/* Adafruit IO Example Using WiFiManager
|
|
||||||
*
|
|
||||||
* This is a simple Adafruit feed subscribe example that uses
|
|
||||||
* WiFiManager to handle setup of WiFi credentials and connecting
|
|
||||||
* to the network instead of defining the WiFI SSID and password
|
|
||||||
* explicitly in the code.
|
|
||||||
*
|
|
||||||
* To use this example, add your Adafruit IO Username and Key
|
|
||||||
* and setup a feed called "myfeed". When you manually add data
|
|
||||||
* to the feed on io.adafruit.com, you'll see that data written to
|
|
||||||
* the serial output.
|
|
||||||
*
|
|
||||||
* Brad Black - 2022
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <WiFiManager.h>
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
char IO_USERNAME[64] = "my username";
|
|
||||||
char IO_KEY[64] = "my key";
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, "", "");
|
|
||||||
AdafruitIO_Feed *myfeed = io.feed("myfeed");
|
|
||||||
|
|
||||||
WiFiManager wifiManager;
|
|
||||||
|
|
||||||
void handleMessage(AdafruitIO_Data *data)
|
|
||||||
{
|
|
||||||
|
|
||||||
Serial.print("received <- ");
|
|
||||||
Serial.println(data->toString());
|
|
||||||
|
|
||||||
} // handleMessage
|
|
||||||
|
|
||||||
void setup()
|
|
||||||
|
|
||||||
{
|
|
||||||
Serial.begin(115200); // Initialize serial port for debugging.
|
|
||||||
delay(500);
|
|
||||||
|
|
||||||
// wifiManager.resetSettings(); //uncomment to reset the WiFi settings
|
|
||||||
|
|
||||||
wifiManager.setClass("invert"); // enable "dark mode" for the config portal
|
|
||||||
wifiManager.setConfigPortalTimeout(120); // auto close configportal after n seconds
|
|
||||||
wifiManager.setAPClientCheck(true); // avoid timeout if client connected to softap
|
|
||||||
|
|
||||||
if (!wifiManager.autoConnect("WiFi Setup")) // connect to wifi with existing setting or start config
|
|
||||||
{
|
|
||||||
Serial.println("failed to connect and hit timeout");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// if you get here you have connected to the WiFi
|
|
||||||
Serial.println("Connected to WiFi.");
|
|
||||||
|
|
||||||
Serial.printf("Connecting to Adafruit IO with User: %s Key: %s.\n", IO_USERNAME, IO_KEY);
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
myfeed->onMessage(handleMessage);
|
|
||||||
|
|
||||||
myfeed->get();
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
|
|
||||||
while ((io.status() < AIO_CONNECTED))
|
|
||||||
{
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
Serial.println("Connected to Adafruit IO.");
|
|
||||||
}
|
|
||||||
|
|
||||||
} // setup()
|
|
||||||
|
|
||||||
void loop()
|
|
||||||
{
|
|
||||||
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
} // loop()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
|
|
||||||
|
|
@ -1,192 +0,0 @@
|
||||||
/* Adafruit IO Example Using WiFiManager with Custom Adafruit IO parameters
|
|
||||||
*
|
|
||||||
* This is a simple Adafruit feed subscribe example that uses
|
|
||||||
* WiFiManager to handle setup of WiFi credentials and connecting
|
|
||||||
* to the network instead of defining the WiFI SSID and password
|
|
||||||
* explicitly in the code.
|
|
||||||
*
|
|
||||||
* In addition, this example allows you to enter your Adafruit IO username and key
|
|
||||||
* as customer parameters in WiFiManager so that they do not need to be coded into
|
|
||||||
* the sketch.
|
|
||||||
*
|
|
||||||
* This is useful if you want to create projects and share them with others that
|
|
||||||
* may use them on a different WiFi network and use a different Adafruit IO account
|
|
||||||
* for IOT integrations such as collecting sensor data or voice command integration via
|
|
||||||
* IFFT.
|
|
||||||
*
|
|
||||||
* To use this example, setup a feed called "myfeed". When the ESP8266 or ESP32
|
|
||||||
* microcontroller starts, join the "WiFi Setup" SSID and you should be presented
|
|
||||||
* with the config portal. If the config portal does not automatically start you
|
|
||||||
* can browse to http://192.168.4.1 to access it
|
|
||||||
*
|
|
||||||
* Select the SSID and enter the password for WiFi Access in the config portal.
|
|
||||||
* Enter your Adafruit IO username and key in the config portal and select "Save".
|
|
||||||
*
|
|
||||||
* When you manually add data to the feed on io.adafruit.com, you'll see
|
|
||||||
* that data written to the serial output.
|
|
||||||
*
|
|
||||||
* Brad Black - 2022
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <WiFiManager.h>
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
#include <ArduinoJson.h>
|
|
||||||
#include <LittleFS.h>
|
|
||||||
|
|
||||||
char IO_USERNAME[64] = "";
|
|
||||||
char IO_KEY[64] = "";
|
|
||||||
|
|
||||||
static uint8_t objStorage[sizeof(AdafruitIO_WiFi)]; // RAM for the object
|
|
||||||
AdafruitIO_WiFi *io; // a pointer to the object, once it's constructed
|
|
||||||
|
|
||||||
// create WiFiManager object and define our custom parameters
|
|
||||||
|
|
||||||
WiFiManager wifiManager;
|
|
||||||
WiFiManagerParameter custom_IO_USERNAME("iouser", "Adafruit IO Username", IO_USERNAME, 60);
|
|
||||||
WiFiManagerParameter custom_IO_KEY("iokey", "Adafruit IO Key", IO_KEY, 60);
|
|
||||||
|
|
||||||
void handleMessage(AdafruitIO_Data *data)
|
|
||||||
{
|
|
||||||
|
|
||||||
Serial.print("received <- ");
|
|
||||||
Serial.println(data->toString());
|
|
||||||
|
|
||||||
} // handleMessage
|
|
||||||
|
|
||||||
// callback notifying us of the need to save config
|
|
||||||
void saveConfigCallback()
|
|
||||||
{
|
|
||||||
|
|
||||||
Serial.println("Saving new config");
|
|
||||||
|
|
||||||
strcpy(IO_USERNAME, custom_IO_USERNAME.getValue());
|
|
||||||
strcpy(IO_KEY, custom_IO_KEY.getValue());
|
|
||||||
|
|
||||||
DynamicJsonDocument json(256);
|
|
||||||
|
|
||||||
json["IO_KEY"] = IO_KEY;
|
|
||||||
json["IO_USERNAME"] = IO_USERNAME;
|
|
||||||
|
|
||||||
File configFile = LittleFS.open("/config.json", "w");
|
|
||||||
if (!configFile)
|
|
||||||
{
|
|
||||||
Serial.println("Failed to open config file for writing");
|
|
||||||
}
|
|
||||||
|
|
||||||
serializeJson(json, Serial);
|
|
||||||
|
|
||||||
serializeJson(json, configFile);
|
|
||||||
|
|
||||||
configFile.close();
|
|
||||||
} // end save
|
|
||||||
|
|
||||||
void readParamsFromFS()
|
|
||||||
{
|
|
||||||
if (LittleFS.begin())
|
|
||||||
{
|
|
||||||
|
|
||||||
if (LittleFS.exists("/config.json"))
|
|
||||||
{
|
|
||||||
// file exists, reading and loading
|
|
||||||
Serial.println("Reading config file");
|
|
||||||
|
|
||||||
File configFile = LittleFS.open("/config.json", "r");
|
|
||||||
if (configFile)
|
|
||||||
{
|
|
||||||
size_t size = configFile.size();
|
|
||||||
// Allocate a buffer to store contents of the file.
|
|
||||||
std::unique_ptr<char[]> buf(new char[size]);
|
|
||||||
|
|
||||||
configFile.readBytes(buf.get(), size);
|
|
||||||
|
|
||||||
DynamicJsonDocument json(256);
|
|
||||||
auto deserializeError = deserializeJson(json, buf.get());
|
|
||||||
serializeJson(json, Serial);
|
|
||||||
Serial.println();
|
|
||||||
if (!deserializeError)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (json.containsKey("IO_USERNAME"))
|
|
||||||
strcpy(IO_USERNAME, json["IO_USERNAME"]);
|
|
||||||
if (json.containsKey("IO_KEY"))
|
|
||||||
strcpy(IO_KEY, json["IO_KEY"]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Serial.println("Failed to load json config");
|
|
||||||
}
|
|
||||||
configFile.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Serial.println("Failed to mount FS");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void setup()
|
|
||||||
|
|
||||||
{
|
|
||||||
Serial.begin(115200); // Initialize serial port for debugging.
|
|
||||||
delay(500);
|
|
||||||
WiFi.begin();
|
|
||||||
|
|
||||||
readParamsFromFS(); // get parameters from file system
|
|
||||||
|
|
||||||
//wifiManager.resetSettings(); //uncomment to reset the WiFi settings
|
|
||||||
|
|
||||||
wifiManager.setClass("invert"); // enable "dark mode" for the config portal
|
|
||||||
wifiManager.setConfigPortalTimeout(120); // auto close configportal after n seconds
|
|
||||||
wifiManager.setAPClientCheck(true); // avoid timeout if client connected to softap
|
|
||||||
|
|
||||||
wifiManager.addParameter(&custom_IO_USERNAME); // set custom paraeter for IO username
|
|
||||||
wifiManager.addParameter(&custom_IO_KEY); // set custom parameter for IO key
|
|
||||||
|
|
||||||
custom_IO_KEY.setValue(IO_KEY, 64); // set custom parameter value
|
|
||||||
custom_IO_USERNAME.setValue(IO_USERNAME, 64); // set custom parameter value
|
|
||||||
|
|
||||||
wifiManager.setSaveConfigCallback(saveConfigCallback); // set config save notify callback
|
|
||||||
|
|
||||||
if (!wifiManager.autoConnect("WiFi Setup")) // connect to wifi with existing setting or start config
|
|
||||||
{
|
|
||||||
Serial.println("Failed to connect and hit timeout");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// if you get here you have connected to the WiFi
|
|
||||||
Serial.println("Connected to WiFi.");
|
|
||||||
|
|
||||||
// connect to Adafruit IO
|
|
||||||
|
|
||||||
io = new (objStorage) AdafruitIO_WiFi(IO_USERNAME, IO_KEY, "", "");
|
|
||||||
|
|
||||||
Serial.printf("Connecting to Adafruit IO with User: %s Key: %s.\n", IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
io->connect();
|
|
||||||
|
|
||||||
AdafruitIO_Feed *myfeed = io->feed("myfeed");
|
|
||||||
|
|
||||||
myfeed->onMessage(handleMessage);
|
|
||||||
|
|
||||||
myfeed->get();
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
|
|
||||||
while ((io->status() < AIO_CONNECTED))
|
|
||||||
{
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
Serial.println("Connected to Adafruit IO.");
|
|
||||||
}
|
|
||||||
|
|
||||||
} // setup()
|
|
||||||
|
|
||||||
void loop()
|
|
||||||
{
|
|
||||||
|
|
||||||
io->run();
|
|
||||||
|
|
||||||
} // loop()
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,305 +0,0 @@
|
||||||
// Adafruit IO House: Security System
|
|
||||||
//
|
|
||||||
// Learn Guide: https://learn.adafruit.com/adafruit-io-home-security
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Brent Rubell for Adafruit Industries
|
|
||||||
// Copyright (c) 2018 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
// include the NeoPixel library
|
|
||||||
#include "Adafruit_NeoPixel.h"
|
|
||||||
|
|
||||||
// include the SGP30 library
|
|
||||||
#include <Wire.h>
|
|
||||||
#include "Adafruit_SGP30.h"
|
|
||||||
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// delay the main `io.run()` loop
|
|
||||||
#define LOOP_DELAY 3000
|
|
||||||
// delay for each sensor send to adafruit io
|
|
||||||
#define SENSOR_DELAY 1000
|
|
||||||
|
|
||||||
// PIR sensor input pin
|
|
||||||
#define pirPin 13
|
|
||||||
// reed switch input pin
|
|
||||||
#define doorPin 2
|
|
||||||
// piezo (alarm) buzzer
|
|
||||||
#define piezoPin 14
|
|
||||||
|
|
||||||
/**** Time Setup ****/
|
|
||||||
// set the hour to start at
|
|
||||||
int startingHour = 1;
|
|
||||||
// set the second to start at
|
|
||||||
int seconds = 56;
|
|
||||||
// set the minutes to start at
|
|
||||||
int minutes = 56;
|
|
||||||
// set the hour at which the motion alarm should trigger
|
|
||||||
int alarmHour = 16;
|
|
||||||
|
|
||||||
unsigned long currentTime = 0;
|
|
||||||
unsigned long prevTime = 0;
|
|
||||||
int currentHour = startingHour;
|
|
||||||
|
|
||||||
|
|
||||||
/*********NeoPixel Setup*********/
|
|
||||||
// pin the NeoPixel strip and jewel are connected to
|
|
||||||
#define NEOPIXEL_PIN 12
|
|
||||||
// amount of neopixels on the NeoPixel strip
|
|
||||||
#define STRIP_PIXEL_COUNT 60
|
|
||||||
#define JEWEL_PIXEL_COUNT 7
|
|
||||||
// type of neopixels used by the NeoPixel strip and jewel.
|
|
||||||
#define PIXEL_TYPE NEO_GRB + NEO_KHZ800
|
|
||||||
// init. neoPixel Strip
|
|
||||||
Adafruit_NeoPixel strip = Adafruit_NeoPixel(STRIP_PIXEL_COUNT, NEOPIXEL_PIN, PIXEL_TYPE);
|
|
||||||
|
|
||||||
// sketch starts assuming no motion is detected
|
|
||||||
int pirState = LOW;
|
|
||||||
// sketch starts assuming the the door is closed
|
|
||||||
int doorState = LOW;
|
|
||||||
// alarm state
|
|
||||||
bool isAlarm = false;
|
|
||||||
// variable for reading the pin status
|
|
||||||
int pirRead = 0;
|
|
||||||
// SGP30 Sensor Object
|
|
||||||
Adafruit_SGP30 sgp;
|
|
||||||
|
|
||||||
/*** Adafruit IO Feed Setup ***/
|
|
||||||
// 'indoor-lights' feed
|
|
||||||
AdafruitIO_Feed *indoorLights = io.feed("indoor-lights");
|
|
||||||
// `outdoor-lights` feed
|
|
||||||
AdafruitIO_Feed *outdoorLights = io.feed("outdoor-lights");
|
|
||||||
// `front-door` feed
|
|
||||||
AdafruitIO_Feed *frontDoor = io.feed("front-door");
|
|
||||||
// `motion-detector` feed
|
|
||||||
AdafruitIO_Feed *motionFeed = io.feed("motion-detector");
|
|
||||||
// `home-alarm` feed
|
|
||||||
AdafruitIO_Feed *homeAlarm = io.feed("home-alarm");
|
|
||||||
// 'tvoc' feed
|
|
||||||
AdafruitIO_Feed *tvocFeed = io.feed("tvoc");
|
|
||||||
// 'eco2' feed
|
|
||||||
AdafruitIO_Feed *eco2Feed = io.feed("eco2");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
Serial.println("Adafruit IO Home: Security");
|
|
||||||
|
|
||||||
Serial.println("Connecting to Adafruit IO");
|
|
||||||
// start MQTT connection to io.adafruit.com
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// attach a message handler for the `home-alarm` feed
|
|
||||||
homeAlarm->onMessage(handleAlarm);
|
|
||||||
// subscribe to lighting feeds and register message handlers
|
|
||||||
indoorLights->onMessage(indoorLightHandler);
|
|
||||||
outdoorLights->onMessage(outdoorLightHandler);
|
|
||||||
|
|
||||||
// wait for an MQTT connection
|
|
||||||
// NOTE: when blending the HTTP and MQTT API, always use the mqttStatus
|
|
||||||
// method to check on MQTT connection status specifically
|
|
||||||
while(io.mqttStatus() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
// declare PIR sensor as input
|
|
||||||
pinMode(pirPin, INPUT);
|
|
||||||
// declare reed switch as input
|
|
||||||
pinMode(doorPin, INPUT);
|
|
||||||
// set up the SGP30 sensor
|
|
||||||
setupSGP30();
|
|
||||||
// init the neopixel strip and set to `off`
|
|
||||||
strip.begin();
|
|
||||||
strip.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop(){
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
getTime();
|
|
||||||
Serial.println("* read door sensor...");
|
|
||||||
readDoorSensor();
|
|
||||||
Serial.println("* read motion detector");
|
|
||||||
readPIR();
|
|
||||||
Serial.println("* reading SGP30...");
|
|
||||||
readSGP30();
|
|
||||||
|
|
||||||
// check if the alarm toggle is armed from the dashboard
|
|
||||||
if (isAlarm == true) {
|
|
||||||
if (doorState == HIGH || (currentHour>alarmHour && pirState == HIGH)) {
|
|
||||||
playAlarmAnimation();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void playAlarmAnimation() {
|
|
||||||
// plays the alarm piezo buzzer and turn on/off neopixels
|
|
||||||
Serial.println("ALARM TRIGGERED!");
|
|
||||||
|
|
||||||
#if defined(ARDUINO_ARCH_ESP32)
|
|
||||||
// ESP32 doesn't use native tone() function
|
|
||||||
ledcWriteTone(piezoPin, 220);
|
|
||||||
#else
|
|
||||||
tone(piezoPin, 220, 2);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for(int i=0; i<JEWEL_PIXEL_COUNT; ++i) {
|
|
||||||
strip.setPixelColor(i, 255, 0, 0);
|
|
||||||
}
|
|
||||||
strip.show();
|
|
||||||
delay(500);
|
|
||||||
for(int i=0; i<JEWEL_PIXEL_COUNT; ++i) {
|
|
||||||
strip.setPixelColor(i, 0, 0, 0);
|
|
||||||
}
|
|
||||||
strip.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
void readDoorSensor() {
|
|
||||||
// reads the status of the front door and sends to adafruit io
|
|
||||||
doorState = digitalRead(doorPin);
|
|
||||||
if (doorState == LOW) {
|
|
||||||
Serial.println("* Door Closed");
|
|
||||||
frontDoor->save(1);
|
|
||||||
} else {
|
|
||||||
Serial.println("* Door Open");
|
|
||||||
frontDoor->save(3);
|
|
||||||
}
|
|
||||||
delay(SENSOR_DELAY);
|
|
||||||
}
|
|
||||||
|
|
||||||
void readPIR() {
|
|
||||||
// check if motion is detected in front of the home
|
|
||||||
pirRead = digitalRead(pirPin);
|
|
||||||
if (pirRead == HIGH) {
|
|
||||||
if (pirState == LOW) {
|
|
||||||
// we have just turned on
|
|
||||||
Serial.println("* Motion detected in front of home!");
|
|
||||||
motionFeed->save(3);
|
|
||||||
pirState = HIGH;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (pirState == HIGH) {
|
|
||||||
Serial.println("* Motion ended.");
|
|
||||||
motionFeed->save(0);
|
|
||||||
pirState = LOW;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
delay(SENSOR_DELAY);
|
|
||||||
}
|
|
||||||
|
|
||||||
void readSGP30() {
|
|
||||||
// reads the SGP30 sensor and sends data to Adafruit IO
|
|
||||||
if (! sgp.IAQmeasure()) {
|
|
||||||
Serial.println("Measurement failed");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Serial.print("TVOC "); Serial.print(sgp.TVOC); Serial.print(" ppb\t");
|
|
||||||
Serial.print("eCO2 "); Serial.print(sgp.eCO2); Serial.println(" ppm");
|
|
||||||
tvocFeed->save(int(sgp.TVOC));
|
|
||||||
delay(SENSOR_DELAY/2);
|
|
||||||
eco2Feed->save(int(sgp.eCO2));
|
|
||||||
delay(SENSOR_DELAY/2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*** MQTT messageHandlers ***/
|
|
||||||
void handleAlarm(AdafruitIO_Data *data) {
|
|
||||||
// handle the alarm toggle on the Adafruit IO Dashboard
|
|
||||||
String toggleValue = data->toString();
|
|
||||||
Serial.print("> rcv alarm: ");
|
|
||||||
Serial.println(toggleValue);
|
|
||||||
if(toggleValue == String("ON")) {
|
|
||||||
Serial.println("* Alarm Set: ON");
|
|
||||||
isAlarm = true;
|
|
||||||
} else {
|
|
||||||
Serial.println("* Alarm Set: OFF");
|
|
||||||
isAlarm = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// handles the indoor light colorpicker on the Adafruit IO Dashboard
|
|
||||||
void indoorLightHandler(AdafruitIO_Data *data) {
|
|
||||||
Serial.print("-> indoor light HEX: ");
|
|
||||||
Serial.println(data->value());
|
|
||||||
long color = data->toNeoPixel();
|
|
||||||
// set the color of each NeoPixel in the jewel
|
|
||||||
for(int i=0; i<JEWEL_PIXEL_COUNT; ++i) {
|
|
||||||
strip.setPixelColor(i, color);
|
|
||||||
}
|
|
||||||
// 'set' the neopixel jewel to the new color
|
|
||||||
strip.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
// handles the outdoor light colorpicker on the Adafruit IO Dashboard
|
|
||||||
void outdoorLightHandler(AdafruitIO_Data *data) {
|
|
||||||
Serial.print("-> outdoor light HEX: ");
|
|
||||||
Serial.println(data->value());
|
|
||||||
long color = data->toNeoPixel();
|
|
||||||
// set the color of each NeoPixel in the strip
|
|
||||||
for(int i=JEWEL_PIXEL_COUNT; i<STRIP_PIXEL_COUNT+JEWEL_PIXEL_COUNT; ++i) {
|
|
||||||
strip.setPixelColor(i, color);
|
|
||||||
}
|
|
||||||
// 'set' the neopixel strip to the new color
|
|
||||||
strip.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void setupSGP30(){
|
|
||||||
// sets up the SGP30 Sensor
|
|
||||||
if (! sgp.begin()) {
|
|
||||||
Serial.println("Sensor not found :(");
|
|
||||||
while (1);
|
|
||||||
}
|
|
||||||
Serial.print("Found SGP30 serial #");
|
|
||||||
Serial.print(sgp.serialnumber[0], HEX);
|
|
||||||
Serial.print(sgp.serialnumber[1], HEX);
|
|
||||||
Serial.println(sgp.serialnumber[2], HEX);
|
|
||||||
}
|
|
||||||
|
|
||||||
void getTime() {
|
|
||||||
currentTime = millis()/1000;
|
|
||||||
seconds = currentTime - prevTime;
|
|
||||||
|
|
||||||
if (seconds == 60) {
|
|
||||||
prevTime = currentTime;
|
|
||||||
minutes += 1;
|
|
||||||
}
|
|
||||||
if (minutes == 60) {
|
|
||||||
minutes = 0;
|
|
||||||
currentHour += 1;
|
|
||||||
}
|
|
||||||
if (currentHour == 24) {
|
|
||||||
currentHour = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
Serial.print("Time:");
|
|
||||||
Serial.print(currentHour);
|
|
||||||
Serial.print(":");
|
|
||||||
Serial.print(minutes);
|
|
||||||
Serial.print(":");
|
|
||||||
Serial.println(seconds);
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
/************************ Adafruit IO Config *******************************/
|
|
||||||
|
|
||||||
// visit io.adafruit.com if you need to create an account,
|
|
||||||
// or if you need your Adafruit IO key.
|
|
||||||
#define IO_USERNAME "your_username"
|
|
||||||
#define IO_KEY "your_key"
|
|
||||||
|
|
||||||
/******************************* WIFI **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_WiFi client will work with the following boards:
|
|
||||||
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
|
|
||||||
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
|
|
||||||
// - Feather HUZZAH ESP32 -> https://www.adafruit.com/product/3405
|
|
||||||
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
|
|
||||||
// - Feather WICED -> https://www.adafruit.com/products/3056
|
|
||||||
// - Adafruit PyPortal -> https://www.adafruit.com/product/4116
|
|
||||||
// - Adafruit Metro M4 Express AirLift Lite ->
|
|
||||||
// https://www.adafruit.com/product/4000
|
|
||||||
// - Adafruit AirLift Breakout -> https://www.adafruit.com/product/4201
|
|
||||||
// - Adafruit AirLift Shield -> https://www.adafruit.com/product/4285
|
|
||||||
// - Adafruit AirLift FeatherWing -> https://www.adafruit.com/product/4264
|
|
||||||
|
|
||||||
#define WIFI_SSID "your_ssid"
|
|
||||||
#define WIFI_PASS "your_pass"
|
|
||||||
|
|
||||||
// uncomment the following line if you are using airlift
|
|
||||||
// #define USE_AIRLIFT
|
|
||||||
|
|
||||||
// uncomment the following line if you are using winc1500
|
|
||||||
// #define USE_WINC1500
|
|
||||||
|
|
||||||
// uncomment the following line if you are using mrk1010 or nano 33 iot
|
|
||||||
// #define ARDUINO_SAMD_MKR1010
|
|
||||||
|
|
||||||
// comment out the following lines if you are using fona or ethernet
|
|
||||||
#include "AdafruitIO_WiFi.h"
|
|
||||||
|
|
||||||
#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || \
|
|
||||||
defined(ADAFRUIT_PYPORTAL)
|
|
||||||
// Configure the pins used for the ESP32 connection
|
|
||||||
#if !defined(SPIWIFI_SS) // if the wifi definition isnt in the board variant
|
|
||||||
// Don't change the names of these #define's! they match the variant ones
|
|
||||||
#define SPIWIFI SPI
|
|
||||||
#define SPIWIFI_SS 10 // Chip select pin
|
|
||||||
#define NINA_ACK 9 // a.k.a BUSY or READY pin
|
|
||||||
#define NINA_RESETN 6 // Reset pin
|
|
||||||
#define NINA_GPIO0 -1 // Not connected
|
|
||||||
#endif
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS,
|
|
||||||
NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
|
|
||||||
#else
|
|
||||||
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
|
|
||||||
#endif
|
|
||||||
/******************************* FONA **************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_FONA client will work with the following boards:
|
|
||||||
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
|
|
||||||
|
|
||||||
// uncomment the following two lines for 32u4 FONA,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_FONA.h"
|
|
||||||
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
||||||
/**************************** ETHERNET ************************************/
|
|
||||||
|
|
||||||
// the AdafruitIO_Ethernet client will work with the following boards:
|
|
||||||
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
|
|
||||||
|
|
||||||
// uncomment the following two lines for ethernet,
|
|
||||||
// and comment out the AdafruitIO_WiFi client in the WIFI section
|
|
||||||
// #include "AdafruitIO_Ethernet.h"
|
|
||||||
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
|
|
||||||
|
|
@ -1,156 +0,0 @@
|
||||||
// Adafruit IO House: Lights and Temperature
|
|
||||||
//
|
|
||||||
// Learn Guide: https://learn.adafruit.com/adafruit-io-house-lights-and-temperature
|
|
||||||
//
|
|
||||||
// Adafruit invests time and resources providing this open source code.
|
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
|
||||||
// products from Adafruit!
|
|
||||||
//
|
|
||||||
// Written by Brent Rubell for Adafruit Industries
|
|
||||||
// Copyright (c) 2018 Adafruit Industries
|
|
||||||
// Licensed under the MIT license.
|
|
||||||
//
|
|
||||||
// All text above must be included in any redistribution.
|
|
||||||
|
|
||||||
/************************** Configuration ***********************************/
|
|
||||||
|
|
||||||
// edit the config.h tab and enter your Adafruit IO credentials
|
|
||||||
// and any additional configuration needed for WiFi, cellular,
|
|
||||||
// or ethernet clients.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
// include the NeoPixel library
|
|
||||||
#include "Adafruit_NeoPixel.h"
|
|
||||||
|
|
||||||
// include the si7021 library
|
|
||||||
#include "Adafruit_Si7021.h"
|
|
||||||
/************************ Example Starts Here *******************************/
|
|
||||||
|
|
||||||
// pin the NeoPixel strip is connected to
|
|
||||||
#define STRIP_PIN 12
|
|
||||||
// pin the NeoPixel Jewel is connected to
|
|
||||||
#define JEWEL_PIN 2
|
|
||||||
|
|
||||||
// amount of neopixels on the NeoPixel strip
|
|
||||||
#define STRIP_PIXEL_COUNT 34
|
|
||||||
// amount of neopixels on the NeoPixel jewel
|
|
||||||
#define JEWEL_PIXEL_COUNT 7
|
|
||||||
|
|
||||||
// type of neopixels used by the NeoPixel strip and jewel.
|
|
||||||
#define PIXEL_TYPE NEO_GRB + NEO_KHZ800
|
|
||||||
|
|
||||||
// main loop() delay, in seconds
|
|
||||||
#define TEMP_DELAY 7
|
|
||||||
|
|
||||||
// Temperature and Humidity: Si7021 Sensor
|
|
||||||
int temperatureData;
|
|
||||||
int humidityData;
|
|
||||||
|
|
||||||
// initalize neopixel strip
|
|
||||||
Adafruit_NeoPixel strip = Adafruit_NeoPixel(STRIP_PIXEL_COUNT, STRIP_PIN, PIXEL_TYPE);
|
|
||||||
// initalize neopixel jewel
|
|
||||||
Adafruit_NeoPixel jewel = Adafruit_NeoPixel(JEWEL_PIXEL_COUNT, JEWEL_PIN, PIXEL_TYPE);
|
|
||||||
|
|
||||||
// initalize the sensor object
|
|
||||||
Adafruit_Si7021 sensor = Adafruit_Si7021();
|
|
||||||
|
|
||||||
// set up the Adafruit IO feeds
|
|
||||||
AdafruitIO_Feed *indoorLights = io.feed("indoor-lights");
|
|
||||||
AdafruitIO_Feed *outdoorLights = io.feed("outdoor-lights");
|
|
||||||
AdafruitIO_Feed *humidity = io.feed("humidity");
|
|
||||||
AdafruitIO_Feed *temperature = io.feed("temperature");
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
|
|
||||||
// start the serial connection
|
|
||||||
Serial.begin(115200);
|
|
||||||
|
|
||||||
// wait for serial monitor to open
|
|
||||||
while(! Serial);
|
|
||||||
|
|
||||||
// connect to io.adafruit.com
|
|
||||||
Serial.print("Connecting to Adafruit IO");
|
|
||||||
io.connect();
|
|
||||||
|
|
||||||
// subscribe to lighting feeds and register message handlers
|
|
||||||
indoorLights->onMessage(indoorLightHandler);
|
|
||||||
outdoorLights->onMessage(outdoorLightHandler);
|
|
||||||
|
|
||||||
|
|
||||||
// wait for a connection
|
|
||||||
while(io.status() < AIO_CONNECTED) {
|
|
||||||
Serial.print(".");
|
|
||||||
delay(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we are connected
|
|
||||||
Serial.println();
|
|
||||||
Serial.println(io.statusText());
|
|
||||||
|
|
||||||
// initalize the Si7021 sensor
|
|
||||||
if (!sensor.begin()) {
|
|
||||||
Serial.println("Did not find Si7021 sensor!");
|
|
||||||
while (true);
|
|
||||||
}
|
|
||||||
Serial.println("Si7021 sensor set up!");
|
|
||||||
|
|
||||||
// initalize the neopixel strip and jewel.
|
|
||||||
strip.begin();
|
|
||||||
jewel.begin();
|
|
||||||
|
|
||||||
// set all neopixels on the strip and jewel to `off`.
|
|
||||||
strip.show();
|
|
||||||
jewel.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
// io.run(); is required for all sketches.
|
|
||||||
// it should always be present at the top of your loop
|
|
||||||
// function. it keeps the client connected to
|
|
||||||
// io.adafruit.com, and processes any incoming data.
|
|
||||||
io.run();
|
|
||||||
|
|
||||||
temperatureData = sensor.readTemperature() * 1.8 + 32;
|
|
||||||
humidityData = sensor.readHumidity();
|
|
||||||
|
|
||||||
|
|
||||||
Serial.print("-> Sending Temperature to Adafruit IO: ");
|
|
||||||
Serial.println(temperatureData);
|
|
||||||
Serial.print("-> Sending Humidity to Adafruit IO: ");
|
|
||||||
Serial.println(humidityData);
|
|
||||||
|
|
||||||
// send the state of the feed to adafruit io
|
|
||||||
temperature->save(temperatureData);
|
|
||||||
humidity->save(humidityData);
|
|
||||||
|
|
||||||
// delay the loop to avoid flooding Adafruit IO
|
|
||||||
delay(1000*TEMP_DELAY);
|
|
||||||
}
|
|
||||||
|
|
||||||
void indoorLightHandler(AdafruitIO_Data *data) {
|
|
||||||
Serial.print("-> indoor light HEX: ");
|
|
||||||
Serial.println(data->value());
|
|
||||||
|
|
||||||
long color = data->toNeoPixel();
|
|
||||||
|
|
||||||
// set the color of each NeoPixel in the jewel
|
|
||||||
for(int i=0; i<JEWEL_PIXEL_COUNT; ++i) {
|
|
||||||
jewel.setPixelColor(i, color);
|
|
||||||
}
|
|
||||||
// 'set' the neopixel jewel to the new color
|
|
||||||
jewel.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
void outdoorLightHandler(AdafruitIO_Data *data) {
|
|
||||||
Serial.print("-> outdoor light HEX: ");
|
|
||||||
Serial.println(data->value());
|
|
||||||
|
|
||||||
long color = data->toNeoPixel();
|
|
||||||
|
|
||||||
// set the color of each NeoPixel in the strip
|
|
||||||
for(int i=0; i<STRIP_PIXEL_COUNT; ++i) {
|
|
||||||
strip.setPixelColor(i, color);
|
|
||||||
}
|
|
||||||
// 'set' the neopixel strip to the new color
|
|
||||||
strip.show();
|
|
||||||
}
|
|
||||||
125
html/_adafruit_i_o_8cpp.html
Normal file
125
html/_adafruit_i_o_8cpp.html
Normal file
|
|
@ -0,0 +1,125 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Adafruit IO Arduino Library: src/AdafruitIO.cpp File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Adafruit IO Arduino Library
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.13 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#func-members">Functions</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">AdafruitIO.cpp File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><code>#include "<a class="el" href="_adafruit_i_o_8h_source.html">AdafruitIO.h</a>"</code><br />
|
||||||
|
</div><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||||
|
Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:a72ae4369504f4ea432fca7eae32e4f30"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o_8cpp.html#a72ae4369504f4ea432fca7eae32e4f30">errorCallback</a> (char *err, uint16_t len)</td></tr>
|
||||||
|
<tr class="memdesc:a72ae4369504f4ea432fca7eae32e4f30"><td class="mdescLeft"> </td><td class="mdescRight">Prints errors. <a href="#a72ae4369504f4ea432fca7eae32e4f30">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a72ae4369504f4ea432fca7eae32e4f30"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<h2 class="groupheader">Function Documentation</h2>
|
||||||
|
<a id="a72ae4369504f4ea432fca7eae32e4f30"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a72ae4369504f4ea432fca7eae32e4f30">◆ </a></span>errorCallback()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void errorCallback </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">char * </td>
|
||||||
|
<td class="paramname"><em>err</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">uint16_t </td>
|
||||||
|
<td class="paramname"><em>len</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Prints errors. </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">err</td><td>An error string to print. </td></tr>
|
||||||
|
<tr><td class="paramname">len</td><td>The length of the error string. </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.13
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
103
html/_adafruit_i_o_8h.html
Normal file
103
html/_adafruit_i_o_8h.html
Normal file
|
|
@ -0,0 +1,103 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Adafruit IO Arduino Library: src/AdafruitIO.h File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Adafruit IO Arduino Library
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.13 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#nested-classes">Classes</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">AdafruitIO.h File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><code>#include "<a class="el" href="_adafruit_i_o___dashboard_8h_source.html">AdafruitIO_Dashboard.h</a>"</code><br />
|
||||||
|
<code>#include "<a class="el" href="_adafruit_i_o___data_8h_source.html">AdafruitIO_Data.h</a>"</code><br />
|
||||||
|
<code>#include "<a class="el" href="_adafruit_i_o___definitions_8h_source.html">AdafruitIO_Definitions.h</a>"</code><br />
|
||||||
|
<code>#include "<a class="el" href="_adafruit_i_o___feed_8h_source.html">AdafruitIO_Feed.h</a>"</code><br />
|
||||||
|
<code>#include "AdafruitIO_Group.h"</code><br />
|
||||||
|
<code>#include "<a class="el" href="_adafruit_i_o___time_8h_source.html">AdafruitIO_Time.h</a>"</code><br />
|
||||||
|
<code>#include "Adafruit_MQTT.h"</code><br />
|
||||||
|
<code>#include "Arduino.h"</code><br />
|
||||||
|
<code>#include "ArduinoHttpClient.h"</code><br />
|
||||||
|
<code>#include "util/AdafruitIO_Board.h"</code><br />
|
||||||
|
</div>
|
||||||
|
<p><a href="_adafruit_i_o_8h_source.html">Go to the source code of this file.</a></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||||
|
Classes</h2></td></tr>
|
||||||
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit_i_o.html">AdafruitIO</a></td></tr>
|
||||||
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Class for interacting with Adafruit IO. <a href="class_adafruit_i_o.html#details">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>This is part of the Adafruit IO library for the Arduino platform.</p>
|
||||||
|
<p>Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!</p>
|
||||||
|
<p>Written by Tony DiCola, Todd Treece for Adafruit Industries</p>
|
||||||
|
<p>MIT license, all text here must be included in any redistribution. </p>
|
||||||
|
</div></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.13
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
129
html/_adafruit_i_o_8h_source.html
Normal file
129
html/_adafruit_i_o_8h_source.html
Normal file
File diff suppressed because one or more lines are too long
83
html/_adafruit_i_o___dashboard_8cpp.html
Normal file
83
html/_adafruit_i_o___dashboard_8cpp.html
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Adafruit IO Arduino Library: src/AdafruitIO_Dashboard.cpp File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Adafruit IO Arduino Library
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.13 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">AdafruitIO_Dashboard.cpp File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><code>#include "<a class="el" href="_adafruit_i_o___dashboard_8h_source.html">AdafruitIO_Dashboard.h</a>"</code><br />
|
||||||
|
<code>#include "<a class="el" href="_adafruit_i_o_8h_source.html">AdafruitIO.h</a>"</code><br />
|
||||||
|
</div><a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>Adafruit invests time and resources providing this open source code. Please support Adafruit and open source hardware by purchasing products from Adafruit!</p>
|
||||||
|
<p>Copyright (c) 2015-2016 Adafruit Industries Authors: Tony DiCola, Todd Treece Licensed under the MIT license.</p>
|
||||||
|
<p>All text above must be included in any redistribution. </p>
|
||||||
|
</div></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.13
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
105
html/_adafruit_i_o___dashboard_8h.html
Normal file
105
html/_adafruit_i_o___dashboard_8h.html
Normal file
|
|
@ -0,0 +1,105 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Adafruit IO Arduino Library: src/AdafruitIO_Dashboard.h File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Adafruit IO Arduino Library
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.13 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#nested-classes">Classes</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">AdafruitIO_Dashboard.h File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><code>#include "<a class="el" href="_adafruit_i_o___definitions_8h_source.html">AdafruitIO_Definitions.h</a>"</code><br />
|
||||||
|
<code>#include "Arduino.h"</code><br />
|
||||||
|
<code>#include "blocks/ChartBlock.h"</code><br />
|
||||||
|
<code>#include "blocks/ColorBlock.h"</code><br />
|
||||||
|
<code>#include "blocks/GaugeBlock.h"</code><br />
|
||||||
|
<code>#include "blocks/ImageBlock.h"</code><br />
|
||||||
|
<code>#include "blocks/MapBlock.h"</code><br />
|
||||||
|
<code>#include "blocks/MomentaryBlock.h"</code><br />
|
||||||
|
<code>#include "blocks/SliderBlock.h"</code><br />
|
||||||
|
<code>#include "blocks/StreamBlock.h"</code><br />
|
||||||
|
<code>#include "blocks/TextBlock.h"</code><br />
|
||||||
|
<code>#include "blocks/ToggleBlock.h"</code><br />
|
||||||
|
</div>
|
||||||
|
<p><a href="_adafruit_i_o___dashboard_8h_source.html">Go to the source code of this file.</a></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||||
|
Classes</h2></td></tr>
|
||||||
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit_i_o___dashboard.html">AdafruitIO_Dashboard</a></td></tr>
|
||||||
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Class for interacting with Adafruit IO Dashboards. <a href="https://io.adafruit.com/api/docs/#dashboards">https://io.adafruit.com/api/docs/#dashboards</a>. <a href="class_adafruit_i_o___dashboard.html#details">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>This is part of the Adafruit IO library for the Arduino platform.</p>
|
||||||
|
<p>Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!</p>
|
||||||
|
<p>Written by Tony DiCola, Todd Treece for Adafruit Industries</p>
|
||||||
|
<p>MIT license, all text here must be included in any redistribution. </p>
|
||||||
|
</div></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.13
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
97
html/_adafruit_i_o___dashboard_8h_source.html
Normal file
97
html/_adafruit_i_o___dashboard_8h_source.html
Normal file
File diff suppressed because one or more lines are too long
120
html/_adafruit_i_o___data_8cpp.html
Normal file
120
html/_adafruit_i_o___data_8cpp.html
Normal file
|
|
@ -0,0 +1,120 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Adafruit IO Arduino Library: src/AdafruitIO_Data.cpp File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Adafruit IO Arduino Library
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.13 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#func-members">Functions</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">AdafruitIO_Data.cpp File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><code>#include "<a class="el" href="_adafruit_i_o___data_8h_source.html">AdafruitIO_Data.h</a>"</code><br />
|
||||||
|
<code>#include "<a class="el" href="_adafruit_i_o___feed_8h_source.html">AdafruitIO_Feed.h</a>"</code><br />
|
||||||
|
</div><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||||
|
Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:a69484d930b7e8866ae551af391f47293"><td class="memItemLeft" align="right" valign="top">char ** </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___data_8cpp.html#a69484d930b7e8866ae551af391f47293">parse_csv</a> (const char *line)</td></tr>
|
||||||
|
<tr class="memdesc:a69484d930b7e8866ae551af391f47293"><td class="mdescLeft"> </td><td class="mdescRight">Extracts a NULL-terminated array of strings, one for every cell in the row. <a href="#a69484d930b7e8866ae551af391f47293">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a69484d930b7e8866ae551af391f47293"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>Adafruit invests time and resources providing this open source code. Please support Adafruit and open source hardware by purchasing products from Adafruit!</p>
|
||||||
|
<p>Copyright (c) 2015-2016 Adafruit Industries Authors: Tony DiCola, Todd Treece Licensed under the MIT license.</p>
|
||||||
|
<p>All text above must be included in any redistribution. </p>
|
||||||
|
</div><h2 class="groupheader">Function Documentation</h2>
|
||||||
|
<a id="a69484d930b7e8866ae551af391f47293"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a69484d930b7e8866ae551af391f47293">◆ </a></span>parse_csv()</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">char** parse_csv </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">const char * </td>
|
||||||
|
<td class="paramname"><em>line</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Extracts a NULL-terminated array of strings, one for every cell in the row. </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">line</td><td>String containing linebreaks or no linebreaks, escaped by "double quotes". </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>CSV buffer, buf, NULL otherwise. </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.13
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
95
html/_adafruit_i_o___data_8h.html
Normal file
95
html/_adafruit_i_o___data_8h.html
Normal file
|
|
@ -0,0 +1,95 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Adafruit IO Arduino Library: src/AdafruitIO_Data.h File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Adafruit IO Arduino Library
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.13 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#nested-classes">Classes</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">AdafruitIO_Data.h File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><code>#include "<a class="el" href="_adafruit_i_o___definitions_8h_source.html">AdafruitIO_Definitions.h</a>"</code><br />
|
||||||
|
<code>#include "Arduino.h"</code><br />
|
||||||
|
</div>
|
||||||
|
<p><a href="_adafruit_i_o___data_8h_source.html">Go to the source code of this file.</a></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||||
|
Classes</h2></td></tr>
|
||||||
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit_i_o___data.html">AdafruitIO_Data</a></td></tr>
|
||||||
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Class for interacting with Adafruit IO Data Records. <a href="https://io.adafruit.com/api/docs/#data">https://io.adafruit.com/api/docs/#data</a>. <a href="class_adafruit_i_o___data.html#details">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>This is part of the Adafruit IO library for the Arduino platform.</p>
|
||||||
|
<p>Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!</p>
|
||||||
|
<p>Written by Tony DiCola, Todd Treece for Adafruit Industries</p>
|
||||||
|
<p>MIT license, all text here must be included in any redistribution. </p>
|
||||||
|
</div></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.13
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
111
html/_adafruit_i_o___data_8h_source.html
Normal file
111
html/_adafruit_i_o___data_8h_source.html
Normal file
File diff suppressed because one or more lines are too long
302
html/_adafruit_i_o___definitions_8h.html
Normal file
302
html/_adafruit_i_o___definitions_8h.html
Normal file
|
|
@ -0,0 +1,302 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Adafruit IO Arduino Library: src/AdafruitIO_Definitions.h File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Adafruit IO Arduino Library
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.13 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#nested-classes">Classes</a> |
|
||||||
|
<a href="#define-members">Macros</a> |
|
||||||
|
<a href="#typedef-members">Typedefs</a> |
|
||||||
|
<a href="#enum-members">Enumerations</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">AdafruitIO_Definitions.h File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p><a href="_adafruit_i_o___definitions_8h_source.html">Go to the source code of this file.</a></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||||
|
Classes</h2></td></tr>
|
||||||
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit_i_o_group_callback.html">AdafruitIOGroupCallback</a></td></tr>
|
||||||
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Class that contains methods for Adafruit IO MQTT callbacks. <a href="class_adafruit_i_o_group_callback.html#details">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
||||||
|
Macros</h2></td></tr>
|
||||||
|
<tr class="memitem:a4d470d58246c0194ff6e0a7837dc06f2"><td class="memItemLeft" align="right" valign="top"><a id="a4d470d58246c0194ff6e0a7837dc06f2"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#a4d470d58246c0194ff6e0a7837dc06f2">ADAFRUITIO_VERSION_MAJOR</a>   4</td></tr>
|
||||||
|
<tr class="memdesc:a4d470d58246c0194ff6e0a7837dc06f2"><td class="mdescLeft"> </td><td class="mdescRight">Adafruit IO Arduino Major Semvar. <br /></td></tr>
|
||||||
|
<tr class="separator:a4d470d58246c0194ff6e0a7837dc06f2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a696fefb486914e941d63e8206b4c9e99"><td class="memItemLeft" align="right" valign="top"><a id="a696fefb486914e941d63e8206b4c9e99"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#a696fefb486914e941d63e8206b4c9e99">ADAFRUITIO_VERSION_MINOR</a>   2</td></tr>
|
||||||
|
<tr class="memdesc:a696fefb486914e941d63e8206b4c9e99"><td class="mdescLeft"> </td><td class="mdescRight">Adafruit IO Arduino Minor Semvar. <br /></td></tr>
|
||||||
|
<tr class="separator:a696fefb486914e941d63e8206b4c9e99"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a56e4275dff387b4c5793357ec38316ff"><td class="memItemLeft" align="right" valign="top"><a id="a56e4275dff387b4c5793357ec38316ff"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#a56e4275dff387b4c5793357ec38316ff">ADAFRUITIO_VERSION_PATCH</a>   1</td></tr>
|
||||||
|
<tr class="memdesc:a56e4275dff387b4c5793357ec38316ff"><td class="mdescLeft"> </td><td class="mdescRight">Adafruit IO Arduino Patch Semvar. <br /></td></tr>
|
||||||
|
<tr class="separator:a56e4275dff387b4c5793357ec38316ff"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a134faf99717094e02193d0b54f4298e4"><td class="memItemLeft" align="right" valign="top"><a id="a134faf99717094e02193d0b54f4298e4"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#a134faf99717094e02193d0b54f4298e4">AIO_PRINTER</a>   Serial</td></tr>
|
||||||
|
<tr class="memdesc:a134faf99717094e02193d0b54f4298e4"><td class="mdescLeft"> </td><td class="mdescRight">Where debug messages will be printed. <br /></td></tr>
|
||||||
|
<tr class="separator:a134faf99717094e02193d0b54f4298e4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ac77cc5b5491841de2090f84b2b883352"><td class="memItemLeft" align="right" valign="top"><a id="ac77cc5b5491841de2090f84b2b883352"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#ac77cc5b5491841de2090f84b2b883352">AIO_DEBUG_PRINT</a>(...)   {}</td></tr>
|
||||||
|
<tr class="memdesc:ac77cc5b5491841de2090f84b2b883352"><td class="mdescLeft"> </td><td class="mdescRight">Prints debug output. <br /></td></tr>
|
||||||
|
<tr class="separator:ac77cc5b5491841de2090f84b2b883352"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:aeba56a3f9eee903187010ebf80d2f787"><td class="memItemLeft" align="right" valign="top"><a id="aeba56a3f9eee903187010ebf80d2f787"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#aeba56a3f9eee903187010ebf80d2f787">AIO_DEBUG_PRINTLN</a>(...)   {}</td></tr>
|
||||||
|
<tr class="memdesc:aeba56a3f9eee903187010ebf80d2f787"><td class="mdescLeft"> </td><td class="mdescRight">Prints line from debug output. <br /></td></tr>
|
||||||
|
<tr class="separator:aeba56a3f9eee903187010ebf80d2f787"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:af3836c942558dae53a3841ca0158f0c1"><td class="memItemLeft" align="right" valign="top"><a id="af3836c942558dae53a3841ca0158f0c1"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#af3836c942558dae53a3841ca0158f0c1">AIO_ERROR_PRINT</a>(...)   {}</td></tr>
|
||||||
|
<tr class="memdesc:af3836c942558dae53a3841ca0158f0c1"><td class="mdescLeft"> </td><td class="mdescRight">Prints error output. <br /></td></tr>
|
||||||
|
<tr class="separator:af3836c942558dae53a3841ca0158f0c1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a35d6774ab0437ca2d932b4d10b598a89"><td class="memItemLeft" align="right" valign="top"><a id="a35d6774ab0437ca2d932b4d10b598a89"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#a35d6774ab0437ca2d932b4d10b598a89">AIO_ERROR_PRINTLN</a>(...)   {}</td></tr>
|
||||||
|
<tr class="memdesc:a35d6774ab0437ca2d932b4d10b598a89"><td class="mdescLeft"> </td><td class="mdescRight">Prints line from error output. <br /></td></tr>
|
||||||
|
<tr class="separator:a35d6774ab0437ca2d932b4d10b598a89"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:aa73d5472305be80b789525cdc94c6880"><td class="memItemLeft" align="right" valign="top"><a id="aa73d5472305be80b789525cdc94c6880"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#aa73d5472305be80b789525cdc94c6880">AIO_PING_INTERVAL</a>   60000</td></tr>
|
||||||
|
<tr class="memdesc:aa73d5472305be80b789525cdc94c6880"><td class="mdescLeft"> </td><td class="mdescRight">Adafruit IO Ping Interval, in milliseconds. <br /></td></tr>
|
||||||
|
<tr class="separator:aa73d5472305be80b789525cdc94c6880"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a3382ff05f74c0cf331850cbc3c30a912"><td class="memItemLeft" align="right" valign="top"><a id="a3382ff05f74c0cf331850cbc3c30a912"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#a3382ff05f74c0cf331850cbc3c30a912">AIO_THROTTLE_RECONNECT_INTERVAL</a>   60000</td></tr>
|
||||||
|
<tr class="memdesc:a3382ff05f74c0cf331850cbc3c30a912"><td class="mdescLeft"> </td><td class="mdescRight">Time to wait between re-connecting to Adafruit IO after throttled. <br /></td></tr>
|
||||||
|
<tr class="separator:a3382ff05f74c0cf331850cbc3c30a912"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ad0e8615d0d2e18a6837f259550fd2765"><td class="memItemLeft" align="right" valign="top"><a id="ad0e8615d0d2e18a6837f259550fd2765"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#ad0e8615d0d2e18a6837f259550fd2765">AIO_MQTT_CONNECTION_TIMEOUT</a>   60000</td></tr>
|
||||||
|
<tr class="memdesc:ad0e8615d0d2e18a6837f259550fd2765"><td class="mdescLeft"> </td><td class="mdescRight">Time to wait for a successful reconnection after MQTT disconnect. <br /></td></tr>
|
||||||
|
<tr class="separator:ad0e8615d0d2e18a6837f259550fd2765"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a7ac80df26ae7e9e1039492bd8a40595c"><td class="memItemLeft" align="right" valign="top"><a id="a7ac80df26ae7e9e1039492bd8a40595c"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#a7ac80df26ae7e9e1039492bd8a40595c">AIO_NET_CONNECTION_TIMEOUT</a>   60000</td></tr>
|
||||||
|
<tr class="memdesc:a7ac80df26ae7e9e1039492bd8a40595c"><td class="mdescLeft"> </td><td class="mdescRight">Time to wait for a successful reconnection after network disconnect. <br /></td></tr>
|
||||||
|
<tr class="separator:a7ac80df26ae7e9e1039492bd8a40595c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:abb1eaa48c6efd082c114b242386aac9b"><td class="memItemLeft" align="right" valign="top"><a id="abb1eaa48c6efd082c114b242386aac9b"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#abb1eaa48c6efd082c114b242386aac9b">AIO_NET_DISCONNECT_WAIT</a>   300</td></tr>
|
||||||
|
<tr class="memdesc:abb1eaa48c6efd082c114b242386aac9b"><td class="mdescLeft"> </td><td class="mdescRight">Time to wait for a net disconnect to take effect. <br /></td></tr>
|
||||||
|
<tr class="separator:abb1eaa48c6efd082c114b242386aac9b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:af4e3c1d9f074d5bba95212178eb7915c"><td class="memItemLeft" align="right" valign="top"><a id="af4e3c1d9f074d5bba95212178eb7915c"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#af4e3c1d9f074d5bba95212178eb7915c">AIO_ERROR_TOPIC</a>   "/errors"</td></tr>
|
||||||
|
<tr class="memdesc:af4e3c1d9f074d5bba95212178eb7915c"><td class="mdescLeft"> </td><td class="mdescRight">Adafruit IO Error MQTT Topic. <br /></td></tr>
|
||||||
|
<tr class="separator:af4e3c1d9f074d5bba95212178eb7915c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a52729542897c13cfb95acf51ef985bf6"><td class="memItemLeft" align="right" valign="top"><a id="a52729542897c13cfb95acf51ef985bf6"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#a52729542897c13cfb95acf51ef985bf6">AIO_THROTTLE_TOPIC</a>   "/throttle"</td></tr>
|
||||||
|
<tr class="memdesc:a52729542897c13cfb95acf51ef985bf6"><td class="mdescLeft"> </td><td class="mdescRight">Adafruit IO Throttle MQTT Topic. <br /></td></tr>
|
||||||
|
<tr class="separator:a52729542897c13cfb95acf51ef985bf6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a5f598c9f7ee60bd5fbe6ee8a5753bc7d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#a5f598c9f7ee60bd5fbe6ee8a5753bc7d">AIO_SSL_FINGERPRINT</a>   "47 D2 CB 14 DF 38 97 59 C6 65 1A 1F 3E 00 1E 53 CC A5 17 E0"</td></tr>
|
||||||
|
<tr class="separator:a5f598c9f7ee60bd5fbe6ee8a5753bc7d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ac605596c0fee20cbc0ddc4a406485851"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#ac605596c0fee20cbc0ddc4a406485851">AIO_FEED_NAME_LENGTH</a>   258</td></tr>
|
||||||
|
<tr class="memdesc:ac605596c0fee20cbc0ddc4a406485851"><td class="mdescLeft"> </td><td class="mdescRight">group, a dot, and actual feed name. <a href="#ac605596c0fee20cbc0ddc4a406485851">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:ac605596c0fee20cbc0ddc4a406485851"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a8f56c74bee48e5d1a0c60a04bd25d85e"><td class="memItemLeft" align="right" valign="top"><a id="a8f56c74bee48e5d1a0c60a04bd25d85e"></a>
|
||||||
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#a8f56c74bee48e5d1a0c60a04bd25d85e">AIO_DATA_LENGTH</a>   45</td></tr>
|
||||||
|
<tr class="memdesc:a8f56c74bee48e5d1a0c60a04bd25d85e"><td class="mdescLeft"> </td><td class="mdescRight">Maximum length of data sent/recieved from Adafruit IO. <br /></td></tr>
|
||||||
|
<tr class="separator:a8f56c74bee48e5d1a0c60a04bd25d85e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a00c71a214e64699d5457163d99d3de2e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#a00c71a214e64699d5457163d99d3de2e">AIO_CSV_LENGTH</a></td></tr>
|
||||||
|
<tr class="memdesc:a00c71a214e64699d5457163d99d3de2e"><td class="mdescLeft"> </td><td class="mdescRight">Maximum comma-separated-value length from Adafruit IO. <a href="#a00c71a214e64699d5457163d99d3de2e">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:a00c71a214e64699d5457163d99d3de2e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
|
||||||
|
Typedefs</h2></td></tr>
|
||||||
|
<tr class="memitem:ab02283dfe8885d12d99afd2aa6ba8ccc"><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#ab02283dfe8885d12d99afd2aa6ba8ccc">AdafruitIODataCallbackType</a>) (<a class="el" href="class_adafruit_i_o___data.html">AdafruitIO_Data</a> *data)</td></tr>
|
||||||
|
<tr class="separator:ab02283dfe8885d12d99afd2aa6ba8ccc"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
|
||||||
|
Enumerations</h2></td></tr>
|
||||||
|
<tr class="memitem:a2778792a8729edc34a0d45340ac45a59"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#a2778792a8729edc34a0d45340ac45a59">aio_status_t</a> { <br />
|
||||||
|
  <b>AIO_IDLE</b> = 0,
|
||||||
|
<b>AIO_NET_DISCONNECTED</b> = 1,
|
||||||
|
<b>AIO_DISCONNECTED</b> = 2,
|
||||||
|
<b>AIO_FINGERPRINT_UNKOWN</b> = 3,
|
||||||
|
<br />
|
||||||
|
  <b>AIO_NET_CONNECT_FAILED</b> = 10,
|
||||||
|
<b>AIO_CONNECT_FAILED</b> = 11,
|
||||||
|
<b>AIO_FINGERPRINT_INVALID</b> = 12,
|
||||||
|
<b>AIO_AUTH_FAILED</b> = 13,
|
||||||
|
<br />
|
||||||
|
  <b>AIO_SSID_INVALID</b>,
|
||||||
|
<b>AIO_NET_CONNECTED</b> = 20,
|
||||||
|
<b>AIO_CONNECTED</b> = 21,
|
||||||
|
<b>AIO_CONNECTED_INSECURE</b> = 22,
|
||||||
|
<br />
|
||||||
|
  <b>AIO_FINGERPRINT_UNSUPPORTED</b> = 23,
|
||||||
|
<b>AIO_FINGERPRINT_VALID</b> = 24
|
||||||
|
<br />
|
||||||
|
}</td></tr>
|
||||||
|
<tr class="separator:a2778792a8729edc34a0d45340ac45a59"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:af58cf71b871e96df60a5065cdc7a2062"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___definitions_8h.html#af58cf71b871e96df60a5065cdc7a2062">aio_time_format_t</a> { <b>AIO_TIME_SECONDS</b> = 0,
|
||||||
|
<b>AIO_TIME_MILLIS</b> = 1,
|
||||||
|
<b>AIO_TIME_ISO</b> = 2
|
||||||
|
}</td></tr>
|
||||||
|
<tr class="separator:af58cf71b871e96df60a5065cdc7a2062"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>This is part of the Adafruit IO library for the Arduino platform.</p>
|
||||||
|
<p>Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!</p>
|
||||||
|
<p>Written by Tony DiCola, Todd Treece for Adafruit Industries</p>
|
||||||
|
<p>MIT license, all text here must be included in any redistribution. </p>
|
||||||
|
</div><h2 class="groupheader">Macro Definition Documentation</h2>
|
||||||
|
<a id="a5f598c9f7ee60bd5fbe6ee8a5753bc7d"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a5f598c9f7ee60bd5fbe6ee8a5753bc7d">◆ </a></span>AIO_SSL_FINGERPRINT</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define AIO_SSL_FINGERPRINT   "47 D2 CB 14 DF 38 97 59 C6 65 1A 1F 3E 00 1E 53 CC A5 17 E0"</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<p>Latest Adafruit IO SSL Fingerprint </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="ac605596c0fee20cbc0ddc4a406485851"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#ac605596c0fee20cbc0ddc4a406485851">◆ </a></span>AIO_FEED_NAME_LENGTH</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define AIO_FEED_NAME_LENGTH   258</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>group, a dot, and actual feed name. </p>
|
||||||
|
<p>Maximum length of an Adafruit IO Feed: Name; 128 + 1 + 128 for the </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="a00c71a214e64699d5457163d99d3de2e"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a00c71a214e64699d5457163d99d3de2e">◆ </a></span>AIO_CSV_LENGTH</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define AIO_CSV_LENGTH</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="_adafruit_i_o___definitions_8h.html#ac605596c0fee20cbc0ddc4a406485851">AIO_FEED_NAME_LENGTH</a> + \</div><div class="line"> 4</div><div class="ttc" id="_adafruit_i_o___definitions_8h_html_ac605596c0fee20cbc0ddc4a406485851"><div class="ttname"><a href="_adafruit_i_o___definitions_8h.html#ac605596c0fee20cbc0ddc4a406485851">AIO_FEED_NAME_LENGTH</a></div><div class="ttdeci">#define AIO_FEED_NAME_LENGTH</div><div class="ttdoc">group, a dot, and actual feed name. </div><div class="ttdef"><b>Definition:</b> AdafruitIO_Definitions.h:131</div></div>
|
||||||
|
</div><!-- fragment -->
|
||||||
|
<p>Maximum comma-separated-value length from Adafruit IO. </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h2 class="groupheader">Typedef Documentation</h2>
|
||||||
|
<a id="ab02283dfe8885d12d99afd2aa6ba8ccc"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#ab02283dfe8885d12d99afd2aa6ba8ccc">◆ </a></span>AdafruitIODataCallbackType</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">typedef void(* AdafruitIODataCallbackType) (<a class="el" href="class_adafruit_i_o___data.html">AdafruitIO_Data</a> *data)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<p>Data callback type </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h2 class="groupheader">Enumeration Type Documentation</h2>
|
||||||
|
<a id="a2778792a8729edc34a0d45340ac45a59"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a2778792a8729edc34a0d45340ac45a59">◆ </a></span>aio_status_t</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">enum <a class="el" href="_adafruit_i_o___definitions_8h.html#a2778792a8729edc34a0d45340ac45a59">aio_status_t</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<p>aio_status_t offers 13 status states </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a id="af58cf71b871e96df60a5065cdc7a2062"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#af58cf71b871e96df60a5065cdc7a2062">◆ </a></span>aio_time_format_t</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">enum <a class="el" href="_adafruit_i_o___definitions_8h.html#af58cf71b871e96df60a5065cdc7a2062">aio_time_format_t</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<p>Three different types of MQTT time feeds from IO </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.13
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
87
html/_adafruit_i_o___definitions_8h_source.html
Normal file
87
html/_adafruit_i_o___definitions_8h_source.html
Normal file
File diff suppressed because one or more lines are too long
102
html/_adafruit_i_o___ethernet_8h.html
Normal file
102
html/_adafruit_i_o___ethernet_8h.html
Normal file
|
|
@ -0,0 +1,102 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Adafruit IO Arduino Library: src/AdafruitIO_Ethernet.h File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Adafruit IO Arduino Library
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.13 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#nested-classes">Classes</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">AdafruitIO_Ethernet.h File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><code>#include "Adafruit_MQTT.h"</code><br />
|
||||||
|
<code>#include "Adafruit_MQTT_Client.h"</code><br />
|
||||||
|
<code>#include "Arduino.h"</code><br />
|
||||||
|
<code>#include <SPI.h></code><br />
|
||||||
|
<code>#include <Dhcp.h></code><br />
|
||||||
|
<code>#include <Dns.h></code><br />
|
||||||
|
<code>#include <Ethernet.h></code><br />
|
||||||
|
<code>#include <EthernetClient.h></code><br />
|
||||||
|
<code>#include "<a class="el" href="_adafruit_i_o_8h_source.html">AdafruitIO.h</a>"</code><br />
|
||||||
|
</div>
|
||||||
|
<p><a href="_adafruit_i_o___ethernet_8h_source.html">Go to the source code of this file.</a></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||||
|
Classes</h2></td></tr>
|
||||||
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit_i_o___ethernet.html">AdafruitIO_Ethernet</a></td></tr>
|
||||||
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Class for interfacing with the Adafruit Ethernet FeatherWing. <a href="class_adafruit_i_o___ethernet.html#details">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>This is part of the Adafruit IO library for the Arduino platform.</p>
|
||||||
|
<p>Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!</p>
|
||||||
|
<p>Written by Tony DiCola, Todd Treece for Adafruit Industries</p>
|
||||||
|
<p>MIT license, all text here must be included in any redistribution. </p>
|
||||||
|
</div></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.13
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
98
html/_adafruit_i_o___ethernet_8h_source.html
Normal file
98
html/_adafruit_i_o___ethernet_8h_source.html
Normal file
File diff suppressed because one or more lines are too long
95
html/_adafruit_i_o___f_o_n_a_8h_source.html
Normal file
95
html/_adafruit_i_o___f_o_n_a_8h_source.html
Normal file
File diff suppressed because one or more lines are too long
83
html/_adafruit_i_o___feed_8cpp.html
Normal file
83
html/_adafruit_i_o___feed_8cpp.html
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Adafruit IO Arduino Library: src/AdafruitIO_Feed.cpp File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Adafruit IO Arduino Library
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.13 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">AdafruitIO_Feed.cpp File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><code>#include "<a class="el" href="_adafruit_i_o___feed_8h_source.html">AdafruitIO_Feed.h</a>"</code><br />
|
||||||
|
<code>#include "<a class="el" href="_adafruit_i_o_8h_source.html">AdafruitIO.h</a>"</code><br />
|
||||||
|
</div><a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>Adafruit invests time and resources providing this open source code. Please support Adafruit and open source hardware by purchasing products from Adafruit!</p>
|
||||||
|
<p>Copyright (c) 2015-2016 Adafruit Industries Authors: Tony DiCola, Todd Treece Licensed under the MIT license.</p>
|
||||||
|
<p>All text above must be included in any redistribution. </p>
|
||||||
|
</div></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.13
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
98
html/_adafruit_i_o___feed_8h.html
Normal file
98
html/_adafruit_i_o___feed_8h.html
Normal file
|
|
@ -0,0 +1,98 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Adafruit IO Arduino Library: src/AdafruitIO_Feed.h File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Adafruit IO Arduino Library
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.13 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#nested-classes">Classes</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">AdafruitIO_Feed.h File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><code>#include "<a class="el" href="_adafruit_i_o___data_8h_source.html">AdafruitIO_Data.h</a>"</code><br />
|
||||||
|
<code>#include "<a class="el" href="_adafruit_i_o___definitions_8h_source.html">AdafruitIO_Definitions.h</a>"</code><br />
|
||||||
|
<code>#include "<a class="el" href="_adafruit_i_o___m_q_t_t_8h_source.html">AdafruitIO_MQTT.h</a>"</code><br />
|
||||||
|
<code>#include "Adafruit_MQTT.h"</code><br />
|
||||||
|
<code>#include "Arduino.h"</code><br />
|
||||||
|
</div>
|
||||||
|
<p><a href="_adafruit_i_o___feed_8h_source.html">Go to the source code of this file.</a></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||||
|
Classes</h2></td></tr>
|
||||||
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit_i_o___feed.html">AdafruitIO_Feed</a></td></tr>
|
||||||
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Class that provides methods for interfacing with Adafruit IO feed topics. <a href="https://io.adafruit.com/api/docs/mqtt.html#mqtt-topics">https://io.adafruit.com/api/docs/mqtt.html#mqtt-topics</a>. <a href="class_adafruit_i_o___feed.html#details">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>This is part of the Adafruit IO library for the Arduino platform.</p>
|
||||||
|
<p>Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!</p>
|
||||||
|
<p>Written by Tony DiCola, Todd Treece for Adafruit Industries</p>
|
||||||
|
<p>MIT license, all text here must be included in any redistribution. </p>
|
||||||
|
</div></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.13
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
97
html/_adafruit_i_o___feed_8h_source.html
Normal file
97
html/_adafruit_i_o___feed_8h_source.html
Normal file
File diff suppressed because one or more lines are too long
83
html/_adafruit_i_o___group_8cpp.html
Normal file
83
html/_adafruit_i_o___group_8cpp.html
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Adafruit IO Arduino Library: src/AdafruitIO_Group.cpp File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Adafruit IO Arduino Library
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.13 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">AdafruitIO_Group.cpp File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><code>#include "AdafruitIO_Group.h"</code><br />
|
||||||
|
<code>#include "<a class="el" href="_adafruit_i_o_8h_source.html">AdafruitIO.h</a>"</code><br />
|
||||||
|
</div><a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>Adafruit invests time and resources providing this open source code. Please support Adafruit and open source hardware by purchasing products from Adafruit!</p>
|
||||||
|
<p>Copyright (c) 2015-2016 Adafruit Industries Authors: Tony DiCola, Todd Treece Licensed under the MIT license.</p>
|
||||||
|
<p>All text above must be included in any redistribution. </p>
|
||||||
|
</div></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.13
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
99
html/_adafruit_i_o___group_8h_source.html
Normal file
99
html/_adafruit_i_o___group_8h_source.html
Normal file
File diff suppressed because one or more lines are too long
94
html/_adafruit_i_o___m_q_t_t_8h.html
Normal file
94
html/_adafruit_i_o___m_q_t_t_8h.html
Normal file
|
|
@ -0,0 +1,94 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Adafruit IO Arduino Library: src/AdafruitIO_MQTT.h File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Adafruit IO Arduino Library
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.13 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#nested-classes">Classes</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">AdafruitIO_MQTT.h File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><code>#include "Arduino.h"</code><br />
|
||||||
|
</div>
|
||||||
|
<p><a href="_adafruit_i_o___m_q_t_t_8h_source.html">Go to the source code of this file.</a></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||||
|
Classes</h2></td></tr>
|
||||||
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit_i_o___m_q_t_t.html">AdafruitIO_MQTT</a></td></tr>
|
||||||
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Class that contains MQTT subscription callbacks. <a href="class_adafruit_i_o___m_q_t_t.html#details">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>This is part of the Adafruit IO library for the Arduino platform.</p>
|
||||||
|
<p>Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!</p>
|
||||||
|
<p>Written by Tony DiCola, Todd Treece for Adafruit Industries</p>
|
||||||
|
<p>MIT license, all text here must be included in any redistribution. </p>
|
||||||
|
</div></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.13
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
79
html/_adafruit_i_o___m_q_t_t_8h_source.html
Normal file
79
html/_adafruit_i_o___m_q_t_t_8h_source.html
Normal file
|
|
@ -0,0 +1,79 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Adafruit IO Arduino Library: src/AdafruitIO_MQTT.h Source File</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Adafruit IO Arduino Library
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.13 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">AdafruitIO_MQTT.h</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<a href="_adafruit_i_o___m_q_t_t_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifndef ADAFRUITIO_MQTT_H</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#define ADAFRUITIO_MQTT_H</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "Arduino.h"</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">/**************************************************************************/</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">/**************************************************************************/</span></div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_adafruit_i_o___m_q_t_t.html"> 25</a></span> <span class="keyword">class </span><a class="code" href="class_adafruit_i_o___m_q_t_t.html">AdafruitIO_MQTT</a> {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <a class="code" href="class_adafruit_i_o___m_q_t_t.html">AdafruitIO_MQTT</a>() {}</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="comment">/**************************************************************************/</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="comment">/**************************************************************************/</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_adafruit_i_o___m_q_t_t.html#af600ed11b476dea94a58d55e79291c3e">subCallback</a>(<span class="keywordtype">char</span> *val, uint16_t len) = 0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> };</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#endif // ADAFRUITIO_MQTT_H</span></div><div class="ttc" id="class_adafruit_i_o___m_q_t_t_html_af600ed11b476dea94a58d55e79291c3e"><div class="ttname"><a href="class_adafruit_i_o___m_q_t_t.html#af600ed11b476dea94a58d55e79291c3e">AdafruitIO_MQTT::subCallback</a></div><div class="ttdeci">virtual void subCallback(char *val, uint16_t len)=0</div><div class="ttdoc">Creates an instance of a MQTT subscription callback. </div></div>
|
||||||
|
<div class="ttc" id="class_adafruit_i_o___m_q_t_t_html"><div class="ttname"><a href="class_adafruit_i_o___m_q_t_t.html">AdafruitIO_MQTT</a></div><div class="ttdoc">Class that contains MQTT subscription callbacks. </div><div class="ttdef"><b>Definition:</b> AdafruitIO_MQTT.h:25</div></div>
|
||||||
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.13
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
83
html/_adafruit_i_o___time_8cpp.html
Normal file
83
html/_adafruit_i_o___time_8cpp.html
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Adafruit IO Arduino Library: src/AdafruitIO_Time.cpp File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Adafruit IO Arduino Library
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.13 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">AdafruitIO_Time.cpp File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><code>#include "<a class="el" href="_adafruit_i_o___time_8h_source.html">AdafruitIO_Time.h</a>"</code><br />
|
||||||
|
<code>#include "<a class="el" href="_adafruit_i_o_8h_source.html">AdafruitIO.h</a>"</code><br />
|
||||||
|
</div><a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>Adafruit invests time and resources providing this open source code. Please support Adafruit and open source hardware by purchasing products from Adafruit!</p>
|
||||||
|
<p>Copyright (c) 2015-2016 Adafruit Industries Authors: Tony DiCola, Todd Treece Licensed under the MIT license.</p>
|
||||||
|
<p>All text above must be included in any redistribution. </p>
|
||||||
|
</div></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.13
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
119
html/_adafruit_i_o___time_8h.html
Normal file
119
html/_adafruit_i_o___time_8h.html
Normal file
|
|
@ -0,0 +1,119 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<title>Adafruit IO Arduino Library: src/AdafruitIO_Time.h File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Adafruit IO Arduino Library
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.13 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="menudata.js"></script>
|
||||||
|
<script type="text/javascript" src="menu.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
initMenu('',true,false,'search.php','Search');
|
||||||
|
$(document).ready(function() { init_search(); });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<div id="main-nav"></div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="nav-path" class="navpath">
|
||||||
|
<ul>
|
||||||
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#nested-classes">Classes</a> |
|
||||||
|
<a href="#typedef-members">Typedefs</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">AdafruitIO_Time.h File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><code>#include "<a class="el" href="_adafruit_i_o___definitions_8h_source.html">AdafruitIO_Definitions.h</a>"</code><br />
|
||||||
|
<code>#include "<a class="el" href="_adafruit_i_o___m_q_t_t_8h_source.html">AdafruitIO_MQTT.h</a>"</code><br />
|
||||||
|
<code>#include "Adafruit_MQTT.h"</code><br />
|
||||||
|
<code>#include "Arduino.h"</code><br />
|
||||||
|
</div>
|
||||||
|
<p><a href="_adafruit_i_o___time_8h_source.html">Go to the source code of this file.</a></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||||
|
Classes</h2></td></tr>
|
||||||
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit_i_o___time.html">AdafruitIO_Time</a></td></tr>
|
||||||
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Class that contains functions for interacting with the Adafruit IO Time Service. <a href="class_adafruit_i_o___time.html#details">More...</a><br /></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
|
||||||
|
Typedefs</h2></td></tr>
|
||||||
|
<tr class="memitem:a0ad0037af04e78e5b0432a09d03f1d94"><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit_i_o___time_8h.html#a0ad0037af04e78e5b0432a09d03f1d94">AdafruitIOTimeCallbackType</a>) (char *value, uint16_t len)</td></tr>
|
||||||
|
<tr class="separator:a0ad0037af04e78e5b0432a09d03f1d94"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>This is part of the Adafruit IO library for the Arduino platform.</p>
|
||||||
|
<p>Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!</p>
|
||||||
|
<p>Written by Tony DiCola, Todd Treece for Adafruit Industries</p>
|
||||||
|
<p>MIT license, all text here must be included in any redistribution. </p>
|
||||||
|
</div><h2 class="groupheader">Typedef Documentation</h2>
|
||||||
|
<a id="a0ad0037af04e78e5b0432a09d03f1d94"></a>
|
||||||
|
<h2 class="memtitle"><span class="permalink"><a href="#a0ad0037af04e78e5b0432a09d03f1d94">◆ </a></span>AdafruitIOTimeCallbackType</h2>
|
||||||
|
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">typedef void(* AdafruitIOTimeCallbackType) (char *value, uint16_t len)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<p>an instance of Adafruit IO's time callback. </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.13
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue