I know my hardware works to show a local LAN web page: Arduino Nano
and ENC28J60 Nano Ethernet shield. Saw an “IT WORKS” page for the
arduino nano using the old (pre-MQTT) sketch with only a token, not user
and password. Problem I am having is in the suggested sketch, there is
support for 5100 Ethernet shield, etc but not for the ENC28J60.
Will there be any support for this little shield? Is there a way I can modify
say a 5100 sketch and make this work?
This was all discussed pre-MQTT Arduino requirements but I have not
seen a solution for the new MQTT interface.
This basic sketch should work for the ENC28J60 but it’s just a bit too big for a Nano or a Uno. The UIP library is a pig like most of the Wifi shields. Compiles fine for the Mega.
Cheers,
Craig
/**************************************************************
* For this example you need UIPEthernet library:
* https://github.com/ntruchsess/arduino_uip
*
* Typical wiring would be:
* VCC -- 5V
* GND -- GND
* CS -- D10
* SI -- D11
* SCK -- D13
* SO -- D12
* INT -- D2
*
*
**************************************************************/
#define CAYENNE_DEBUG // Uncomment to show debug messages
#define CAYENNE_PRINT Serial // Comment this out to disable prints and save space
#include <UIPEthernet.h>
#include <CayenneMQTTEthernetClient.h>
// Cayenne authentication info. This should be obtained from the Cayenne Dashboard.
char username[] = "MQTT_USERNAME";
char password[] = "MQTT_PASSWORD";
char clientID[] = "CLIENT_ID";
void setup() {
Serial.begin(9600);
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());
// Some examples of other functions you can use to send data.
//Cayenne.celsiusWrite(1, 22.0);
//Cayenne.luxWrite(2, 700);
//Cayenne.virtualWrite(3, 50, TYPE_PROXIMITY, UNIT_CENTIMETER);
}
// 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");
}