You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hey I was trying to make a website that can toggle the state of an LED using the liberally but I don't know how to publish a message from the website to the server here is that code if it help the last part is what should send the message to the MQTT server but It doesn't work
void setup() {
Serial.begin(115200);
// Connect to WiFi network
Serial.println();
Serial.println();
Serial.println("http server and mqtt broker");
Serial.print("Connecting to ");
Serial.println(ssid);
// Start http server
server.begin();
Serial.println("http server started");
// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("");
// Start the mqtt broker
broker.setMaxNumClients(10); // set according to your system.
broker.startBroker();
Serial.println("broker started");
// Print the IP address
Serial.print("Use this ip: ");
Serial.println(WiFi.localIP());
Serial.print("and this port: ");
Serial.println(mqttPort);
Serial.println("To connect to mqtt broker");
}
void loop() {
// Check if a client has connected
httpClient = server.available();
if (!httpClient) {
vTaskDelay(10);
return;
}
boolean wait = true;
while (!httpClient.available() and wait) {
vTaskDelay(300);
wait = false;
}
// Adding the HTML form with a button to toggle the ledControl topic
httpClient.println("");
httpClient.println("");
httpClient.println("<title>Toggle LED</title>");
httpClient.println("");
httpClient.println("
Hey I was trying to make a website that can toggle the state of an LED using the liberally but I don't know how to publish a message from the website to the server here is that code if it help the last part is what should send the message to the MQTT server but It doesn't work
#include <Arduino.h>
#include <WiFi.h>
#include "EmbeddedMqttBroker.h"
using namespace mqttBrokerName;
const char *ssid = ".....";
const char *password = "....";
const char *AP_NameChar = "WebServerAndBroker";
/******************* mqtt broker ********************/
uint16_t mqttPort = 1883;
MqttBroker broker(mqttPort);
/****************** http server ********************/
uint16_t httpPort = 80;
WiFiServer server(httpPort);
WiFiClient httpClient;
void setup() {
Serial.begin(115200);
// Connect to WiFi network
Serial.println();
Serial.println();
Serial.println("http server and mqtt broker");
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
//WiFi.mode(WIFI_AP_STA);
//MDNS.begin(AP_NameChar,WiFi.localIP());
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
WiFi.begin(ssid, password);
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// Start http server
server.begin();
Serial.println("http server started");
// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("");
// Start the mqtt broker
broker.setMaxNumClients(10); // set according to your system.
broker.startBroker();
Serial.println("broker started");
// Print the IP address
Serial.print("Use this ip: ");
Serial.println(WiFi.localIP());
Serial.print("and this port: ");
Serial.println(mqttPort);
Serial.println("To connect to mqtt broker");
}
void loop() {
// Check if a client has connected
httpClient = server.available();
if (!httpClient) {
vTaskDelay(10);
return;
}
boolean wait = true;
while (!httpClient.available() and wait) {
vTaskDelay(300);
wait = false;
}
if (!httpClient.available()) {
return;
}
String request = httpClient.readStringUntil('\r');
Serial.println(request);
httpClient.println("HTTP/1.1 200 OK");
httpClient.println("Content-type:text/html");
httpClient.println();
// Adding the HTML form with a button to toggle the ledControl topic
httpClient.println("");
httpClient.println("");
httpClient.println("<title>Toggle LED</title>");
httpClient.println("");
httpClient.println("
Toggle LED
");httpClient.println("<form action="/toggle" method="get">");
httpClient.println("<button type="submit">Toggle LED");
httpClient.println("");
httpClient.println("");
httpClient.println("");
// Handling the toggle request
if (request.indexOf("/toggle") != -1) {
// Toggle the ledControl topic
static bool ledState = false;
ledState = !ledState;
if (ledState) {
broker.publish("ledControl", "1");
} else {
broker.publish("ledControl", "0");
}
}
}
The text was updated successfully, but these errors were encountered: