Hirdetés
- Teljes hátraarc az Intelnél, házon belül maradhat a NEX üzletág
- Drágul a Raspberry Pi, de lesz egy új, olcsó verzió
- Horvát fricska Elon Musk önvezető Tesláira
- Amilyen gyorsan jött, olyan gyorsan ment is a világ legdrágább csúcs-VGA-ja?
- Rémisztő árakkal szembesülnek a notebookgyártók az új mobil platformoknál
-
PROHARDVER!
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
vargalex
félisten
Igyekeztem teljesen dinamikusra írni. Azaz, a relék GPIO-it elegendő csak a pin_relays tömbbe felvenni, a többi (weboldalon a megfelelő gombok generálása, a kapcsolás) automatikusan történik a tömb alapján. A kód:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#define DEFAULT_STATE LOW
// Replace with your network credentials
const char* ssid = "TP-Link";
const char* password = "asdf1234";
// GPIOs for controlling the relays
uint8_t pin_relays[] = { D1, D2 };
ESP8266WebServer server(80);
// html page rendering
void renderPage() {
String webPage = "";
String relay_state="";
webPage = "<html><head><link rel=\"stylesheet\" href=\"https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css\">";
webPage += "<script src=\"https://code.jquery.com/jquery-1.11.3.min.js\"></script>";
webPage += "<script src=\"https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js\"></script></head>";
webPage += "<body><h1>ESP8266 Relay Web Server</h1>";
for (int relayIndex = 0; relayIndex<sizeof(pin_relays)/sizeof(uint8_t); relayIndex++) {
relay_state="";
if (digitalRead(pin_relays[relayIndex])) {
relay_state="checked";
}
webPage += "<p>Relay #" + String(relayIndex) + " ( GPIO" + String(pin_relays[relayIndex]) + " ) <input type=\"checkbox\" " + relay_state + " data-role=\"flipswitch\" onchange=\"window.location.href='/?relay=" + String(relayIndex) + "'\"></p>";
}
server.send(200, "text/html", webPage);
}
// handling requests
void handle_root() {
if (server.hasArg("relay")) {
int relayIndex = server.arg("relay").toInt();
digitalWrite(pin_relays[relayIndex], !digitalRead(pin_relays[relayIndex]));
Serial.print("Relay ");
Serial.print(relayIndex);
Serial.print(" state changed to ");
Serial.println(digitalRead(pin_relays[relayIndex]));
}
renderPage();
}
void setup(void){
// preparing GPIOs
for (int relayIndex = 0; relayIndex<sizeof(pin_relays)/sizeof(uint8_t); relayIndex++) {
pinMode(pin_relays[relayIndex], OUTPUT);
digitalWrite(pin_relays[relayIndex], DEFAULT_STATE);
}
//Turn on serial output
delay(1000);
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.println("");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// logging to serial output
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
// web server setup
server.on("/", handle_root);
server.begin();
Serial.println("HTTP server started");
}
void loop(void){
server.handleClient();
}Látható, hogy a pin_relays tömb most 2 elemű, így a renderelt weboldal jelenleg így néz ki:

Ahogy a setup függvényben látható, alapban alacsony állapotra húzza az érintett GPIO-kat. Persze ez a kiindulási állapot a DEFAULT_STATE-ban módosítható.
Új hozzászólás Aktív témák
- Milyen autót vegyek?
- Kuponkunyeráló
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Spórolós topik
- One otthoni szolgáltatások (TV, internet, telefon)
- SpeedCsiga: Beépíthető konnektorok – A modern konyhák és irodák láthatatlan hősei
- Debrecen és környéke adok-veszek-beszélgetek
- Milyen okostelefont vegyek? OFF topik
- DJI topic
- Elektromos autók - motorok
- További aktív témák...
- Crucial 8GB DDR4 3200MHz Laptop RAM (SODIMM), hibátlan állapotban
- Üzletből, garanciával, Lenovo ThinkPad P14s Gen2. Ryzen 5 Pro-5650u/16GBRAM/512GBSSD/FULLHD IPS
- SAMSUNG Odyssey G4 LS27BG400EUXEN + INGYEN SZÁLLÍTÁS
- Apple iPhone 14 Pro Max - 256GB / Space Gray / 83% + Spigen tokok
- Logitech Trueforce G923 kormány és pedál szett váltóval, break moddal
- Gamer PC-Számítógép! Csere-Beszámítás! R5 3600 / GTX 1080 8GB / 32GB DDR4 / 512 SSD!
- Apple iPhone 13 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Navee S40 elektromos roller // Számla // Garancia //
- Samsung Galaxy A54 5G /8/128GB / Kártyafüggetlen / 12HÓ Garancia /
- Gamer egerek és billentyűzetek kitűnő árakon!
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

ekkold

