2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38
Startovací sada OSOYOO NodeMCU IOT
Sledujte nás na Facebooku, najděte naši novou vydanou položku a podělte se o svůj nápad a video o tom, jak kreativně využívat naše produkty. Můžete od nás získat peníze zpět nebo dárky! Facebook:
Youtube:
V této lekci připojíme přepínač k NodeMCU a odešleme stav přepínače makléři MQTT. Když je tlačítko stisknuto, NodeMCU zveřejní stav tlačítka „stisknuto“brokerovi MQTT a klient MQTT se přihlásí k odběru těchto zpráv. Po uvolnění tlačítka se odešle „nestlačeno“.
Krok 1: Příprava
Hardware:
Deska NodeMCU x 1
Přepínací tlačítko x 1
1K odpor x 1
Prkénko x 1
Propojovací vodiče
Software:
Arduino IDE (verze 1.6.4+)
Balíček desky ESP8266 a ovladač sériového portu
Klient MQTT (MQTTBox zde)
Knihovna Arduino: PubSubClient
Krok 2: Graf připojení
V této lekci používáme k ovládání přepínače D2 (GPIO4), nastavte hardware podle grafu připojení.
Poznámka: rezistor 1k používá jako stahovací odpor. V takovém obvodu, když je spínač sepnutý, je vstup NodeMCU na logicky vysoké hodnotě, ale když je spínač otevřený, stahovací odpor táhne vstupní napětí až na zem (logická nulová hodnota), čímž se zabrání nedefinovanému stavu na vstupu.
Krok 3: Kód
Zkopírujte níže uvedený kód do Arduino IDE:
/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * Použijte NodeMCU odeslat stav tlačítka přepínače klientovi MQTT přes WiFi * URL tutoriálu: * CopyRight www.osoyoo.com */ #include #include
int BUTTON_PIN = D2; // Tlačítko je připojeno ke kolíku GPIO D1
// Aktualizujte je pomocí hodnot vhodných pro vaši síť. const char*ssid = "********"; // sem vložte svůj wifi ssid const char*heslo = "********"; // sem vložte své wifi heslo. const char* mqtt_server = "broker.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";
WiFiClient espClient;
Klient PubSubClient (espClient); long lastMsg = 0; char msg [50];
neplatné nastavení_wifi () {
zpoždění (100); // Začneme připojením k WiFi síti Serial.print („Připojování k“); Serial.println (ssid); WiFi.begin (ssid, heslo); while (WiFi.status ()! = WL_CONNECTED) {zpoždění (500); Serial.print ("."); } randomSeed (micros ()); Serial.println (""); Serial.println ("WiFi připojeno"); Serial.println ("IP adresa:"); Serial.println (WiFi.localIP ()); }
neplatné zpětné volání (znak* téma, byte* užitečné zatížení, délka bez znaménka)
{} // ukončení zpětného volání
void reconnect () {
// Smyčka, dokud se znovu nepřipojíme while (! Client.connected ()) {Serial.print ("Pokus o připojení MQTT …"); // Vytvoření náhodného ID klienta Řetězec clientId = "ESP8266Client-"; clientId += String (náhodný (0xffff), HEX); // Pokus o připojení // pokud váš broker MQTT má ID klienta, uživatelské jméno a heslo // prosím změňte následující řádek na if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) {Serial.println ("připojeno"); // po připojení k brokerovi MQTT, příkaz subscribe if any client.subscribe ("OsoyooCommand"); } else {Serial.print ("se nezdařilo, rc ="); Serial.print (client.state ()); Serial.println („zkuste to znovu za 5 sekund“); // Počkejte 5 sekund, než se zpoždění opakuje (5 000); }}} // konec opětovného připojení ()
neplatné nastavení () {
Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (zpětné volání); pinMode (BUTTON_PIN, INPUT); }
prázdná smyčka () {
if (! client.connected ()) {reconnect (); } client.loop (); nyní dlouho = millis (); int stav; // odesílání zpráv každé 2 sekundy if (now - lastMsg> 2000) {lastMsg = now; status = digitalRead (BUTTON_PIN); String msg = "Stav tlačítka:"; if (status == HIGH) {msg = msg+ "Pressed"; char zpráva [58]; msg.toCharArray (zpráva, 58); Serial.println (zpráva); // publikování dat senzoru na MQTT broker client.publish ("OsoyooData", zpráva); } else {msg = msg+ "Not Press"; char zpráva [58]; msg.toCharArray (zpráva, 58); Serial.println (zpráva); // publikování dat senzoru na MQTT broker client.publish ("OsoyooData", zpráva); }}}
Upravte kód tak, aby odpovídal vašemu vlastnímu nastavení WiFi a MQTT, následujícími operacemi: 1) Konfigurace hotspotu: Najděte níže řádek kódu, vložte tam svůj vlastní ssid a heslo.
const char* ssid = „your_hotspot_ssid“; const char* heslo = „your_hotspot_password“;
2) Nastavení adresy serveru MQTT: K nastavení výše hodnoty mqtt_server můžete použít vlastní URL nebo IP adresu brokera MQTT. K testování projektu můžete také použít nějaký slavný bezplatný server MQTT, například „broker.mqtt-dashboard.com“, „iot.eclipse.org“atd.
const char* mqtt_server = „broker.mqtt-dashboard.com“;
3) Nastavení klienta MQTT Pokud váš broker MQTT vyžaduje ID klienta, uživatelské jméno a heslo, musíte změnit
if (client.connect (clientId.c_str ()))
Na
if (client.connect (clientId, userName, passWord)) // sem vložte clientId/userName/passWord
Pokud tomu tak není, ponechte je jako výchozí. Poté proveďte výběr odpovídajícího typu desky a typu portu, jak je uvedeno níže, a poté nahrajte skicu na NodeMCU.
- Deska: „NodeMCU 0.9 (modul ESP-12)“
- Frekvence CPU: „80 MHz“Velikost blesku: „
- 4M (3M SPIFFS) “
- Rychlost nahrávání: "115200"
- Port: Vyberte si vlastní sériový port pro váš NodeMCU
Krok 4: Nastavení klienta MQTT
Pokud nevíte, jak konfigurovat klienta MQTT, navštivte náš poslední článek:
Nastavení témat: Téma k publikování: OsoyooCommand
Téma k odběru: OsoyooData
Výsledek běhu
Jakmile je nahrávání dokončeno, pokud je název a heslo hotspotu wifi v pořádku a je připojen broker MQTT, otevřete sériový monitor, zobrazí se následující výsledek: Stiskněte toto tlačítko, sériový monitor vydá „Stav tlačítka: stisknuto“každé 2 sekundy; jakmile toto tlačítko uvolníte, bude sériový monitor vydávat „Stav tlačítka: Nestisknuto“každé 2 sekundy.
Doporučuje:
Tuchless Switch pro domácí spotřebiče -- Ovládejte svá domácí zařízení bez jakéhokoli přepínače: 4 kroky
Tuchless Switch pro domácí spotřebiče || Ovládejte svá domácí zařízení bez jakéhokoli přepínače: Jedná se o bezproblémový přepínač pro domácí spotřebiče. Můžete to použít na jakémkoli veřejném místě, což pomůže v boji proti jakémukoli viru. Obvod založený na obvodu tmavého snímače vyrobeného operačním zesilovačem a LDR. Druhá důležitá část tohoto obvodu SR Flip-Flop se sekvenčním
Elektronicky blokovací přepínače (*vylepšené!*): 3 kroky
Elektronicky blokovací přepínače (*vylepšené!*): Výraz „přepínače“vychází z designu starých autorádií, kde by byla řada tlačítek přednastavených na různé kanály a mechanicky blokovaná tak, aby bylo možné najednou zasunout pouze jedno. Chtěl jsem najít wa
Dotkněte se přepínače ON-OFF se službou UTSOURCE: 3 kroky
Dotykový spínač ON-OFF se službou UTSOURCE: Dotykový spínač jsme již vytvořili pomocí tranzistoru NPN. Ale tento přepínač měl pouze jednu funkci pro zapnutí obvodu, ale žádný způsob, jak vypnout obvod bez odpojení napájení. V tomto obvodu budeme stavět dotykový spínač
Řídicí modul PSP přepínače Raspberry Pi ATX: 3 kroky
Řídicí modul přepínače Raspberry Pi ATX PSU: V systému složeném z RaspberryPi napájeného napájecím zdrojem ATX je cílem tohoto obvodu umožnit zapnutí nebo vypnutí systému jediným tlačítkem. Tento tutoriál byl vyvinut podle sitelec.org
Přepínače skříně robota: 4 kroky
Přepínače skříně robota: Potřebuji hlavní západkový vypínač pro napájení a dva dočasné spínače k vypnutí počítačů. Také potřebuji nabíjecí kabel pro těsto s LED pro potvrzení nabíjení a konektor SMA pro WIFI. Pro tento venkovní robot musí být všechny vodotěsné