It’s the basic timer program, modified to work with the TinyZero, but here it is less the credentials:
/*
This example shows how to connect to Cayenne using an Ethernet W5100 shield and send/receive sample data.
The CayenneMQTT Library is required to run this sketch. If you have not already done so you can install it from the Arduino IDE Library Manager.
Steps:
- Set the Cayenne authentication info to match the authentication info from the Dashboard.
- Compile and upload the sketch.
- A temporary widget will be automatically generated in the Cayenne Dashboard. To make the widget permanent click the plus sign on the widget.
*/
#include <Wire.h> // For I2C communication with sensor
#include <WiFi101.h> // For connecting to WiFi
#define CAYENNE_DEBUG // Uncomment to show debug messages
#define CAYENNE_PRINT SerialUSB // Comment this out to disable prints and save space
#include <CayenneMQTTWiFi101.h> // Cayenne library to connect to transmit data
/*********************** EDIT THIS SECTION TO MATCH YOUR INFO /
// WiFi network information
char ssid[] =“REMOVED”;
char wifiPassword[] ="REMOVED ";
// Cayenne authentication info. This should be obtained from the Cayenne Dashboard.
char username[]=“REMOVED”;
char password[]=“REMOVED”;
char clientID[]=“REMOVED”;
/************************************************************/
// Define Serial object based on which TinyCircuits processor board is used.
#if defined(ARDUINO_ARCH_SAMD)
#define SerialMonitorInterface SerialUSB
#else
#define SerialMonitorInterface Serial
#endif
void setup() {
SerialMonitorInterface.begin(9600);
Wire.begin();
WiFi.setPins(8, 2, A3, -1); // VERY IMPORTANT FOR TINYCIRCUITS WIFI SHIELD
while (!SerialMonitorInterface); // Will halt program until the Serial Monitor is opened
// Connect to WiFi and Cayenne
connectWifi();
// Print out the local IP address
SerialMonitorInterface.println(“”);
SerialMonitorInterface.println("IP address: ");
IPAddress ip = WiFi.localIP();
SerialMonitorInterface.println(ip);
Cayenne.begin(username, password, clientID);
}
void loop() {
Cayenne.loop();
}
// Default function for sending sensor data at intervals to Cayenne.
// You can also use functions for specific channels, e.g CAYENNE_OUT(1) for sending channel 1 data.
CAYENNE_OUT_DEFAULT()
{
// Write data to Cayenne here. This example just sends the current uptime in milliseconds on virtual channel 0.
Cayenne.virtualWrite(0, millis());
}
// Default function for processing actuator commands from the Cayenne Dashboard.
// You can also use functions for specific channels, e.g CAYENNE_IN(1) for channel 1 commands.
CAYENNE_IN_DEFAULT()
{
CAYENNE_LOG(“Channel %u, value %s”, request.channel, getValue.asString());
//Process message here. If there is an error set an error message using getValue.setError(), e.g getValue.setError(“Error message”);
}
// This function goes through the steps to connect to WiFi using the WiFi101 library
void connectWifi(void){
// Connect to Wifi network:
SerialMonitorInterface.print("Connecting Wifi: ");
SerialMonitorInterface.println(ssid);
WiFi.begin(ssid, wifiPassword);
// Loop until connection is secured
while (WiFi.status() != WL_CONNECTED){
SerialMonitorInterface.print(“.”);
delay(500);
}
// Success message and put WiFi in low power mode to save energy
WiFi.maxLowPowerMode();
SerialMonitorInterface.println(“”);
SerialMonitorInterface.println(“WiFi connected”);
}