Added examples for W5500, thanks to real-bombinho
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
#include <SPI.h>
|
||||
#include <Ethernet.h>
|
||||
|
||||
#include "TinyMqtt.h" // https://github.com/hsaturn/TinyMqtt
|
||||
|
||||
#define WIZRST 20 //Specify pin to use for reseting W5500 = GPIO20
|
||||
#define WIZCS 17 //Specify the pin for SPI CS = GPIO17 = D5
|
||||
|
||||
#define PORT 1883
|
||||
MqttBroker broker(PORT);
|
||||
unsigned long Time;
|
||||
unsigned long freeRam;
|
||||
|
||||
/** Basic Mqtt Broker
|
||||
*
|
||||
* +-----------------------------+
|
||||
* | ESP |
|
||||
* | +--------+ |
|
||||
* | | broker | | 1883 <--- External client/s
|
||||
* | +--------+ |
|
||||
* | |
|
||||
* +-----------------------------+
|
||||
*
|
||||
* Your ESP will become a MqttBroker.
|
||||
* You can test it with any client such as mqtt-spy for example
|
||||
*
|
||||
*/
|
||||
|
||||
#if defined(USE_ETHERNET)
|
||||
|
||||
byte mac[] = { 0x00, 0xAA, 0xBB, 0xE0, 0x01, 0x25 }; //MAC Address
|
||||
//IPAddress ip = (192,168,0,88); //Fixed IP Address
|
||||
|
||||
#else
|
||||
|
||||
const char* ssid = "xxxxxxx";
|
||||
const char* password = "xxxxxxxx";
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
void WizReset() {
|
||||
Serial.print("Resetting Wiz W5500 Ethernet Board... ");
|
||||
pinMode(WIZRST, OUTPUT);
|
||||
digitalWrite(WIZRST, HIGH);
|
||||
delay(250);
|
||||
digitalWrite(WIZRST, LOW);
|
||||
delay(50);
|
||||
digitalWrite(WIZRST, HIGH);
|
||||
delay(350);
|
||||
Serial.println("Done.");
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
|
||||
#if defined(USE_ETHERNET)
|
||||
|
||||
Ethernet.init(WIZCS);
|
||||
SPI.begin();
|
||||
WizReset();
|
||||
Console << TinyConsole::green << "Starting Ethernet...." << endl;
|
||||
Ethernet.begin(mac); //Connect using DHCP
|
||||
//Ethernet.begin(mac,ip); //Connect using Fixed IP
|
||||
if (Ethernet.hardwareStatus() == EthernetNoHardware) {
|
||||
Console << TinyConsole::red << "Ethernet shield was not found. Sorry, can't run without hardware. :(" << endl;
|
||||
} else
|
||||
if (Ethernet.linkStatus() == LinkOFF) {
|
||||
Console << TinyConsole::red << "Ethernet cable is not connected." << endl;
|
||||
}
|
||||
Console << TinyConsole::green << "Local Ethernet IP address: " << Ethernet.localIP() << endl;
|
||||
broker.begin();
|
||||
Console << "Broker ready (eth) : " << Ethernet.localIP() << " on port " << PORT << endl;
|
||||
|
||||
#else
|
||||
|
||||
if (strlen(ssid)==0)
|
||||
Console << TinyConsole::red << "****** PLEASE MODIFY ssid/password *************" << endl;
|
||||
WiFi.disconnect(); //Remove previous SSID & Password
|
||||
WiFi.begin(ssid, password); // Connect to the network
|
||||
Console << TinyConsole::white << "WiFi Connecting to " << ssid << " ...";
|
||||
int i = 0;
|
||||
while (WiFi.status() != WL_CONNECTED) { // Wait for the Wi-Fi to connect
|
||||
delay(1000);
|
||||
Console << TinyConsole::white << ".";
|
||||
i++;
|
||||
if (i > 20) break;
|
||||
}
|
||||
Console << endl << endl;
|
||||
Console << TinyConsole::green << "Connected to " << ssid << " IP address: " << WiFi.localIP() << endl;
|
||||
broker.begin();
|
||||
Console << "Broker ready (wifi) : " << WiFi.localIP() << " on port " << PORT << endl;
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
broker.loop();
|
||||
if(millis()-Time>10000) {
|
||||
Time=millis();
|
||||
#ifdef ARDUINO_ARCH_RP2040
|
||||
if(rp2040.getFreeHeap()!=freeRam) {
|
||||
freeRam=rp2040.getFreeHeap();
|
||||
#else
|
||||
if(ESP.getFreeHeap()!=freeRam) {
|
||||
freeRam=ESP.getFreeHeap();
|
||||
#endif
|
||||
|
||||
|
||||
Serial.print("RAM:");
|
||||
Serial.println(freeRam);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user