Sisukord:
Video: NodeMCU MQTT Iot Project - lüliti nupp: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
OSOYOO NodeMCU IOT Stardikomplekt
Palun jälgige meid Facebookis, leidke meie uus avaldatud toode ja jagage oma ideed ning videot, kuidas meie tooteid loominguliselt kasutada. Meilt saate raha tagasi või kingitusi! Facebook:
Youtube:
Selles õppetükis ühendame lülitusnupu NodeMCU -ga ja saadame lüliti oleku MQTT maaklerile. Nupu vajutamisel avaldab NodeMCU nupu oleku “vajutatud” MQTT maaklerile ja MQTT klient tellib need sõnumid. Kui nupp vabastatakse, saadetakse teade „pole vajutatud”.
Samm: Ettevalmistus
Riistvara:
NodeMCU plaat x 1
Lülitusnupp x 1
1K takisti x 1
Leivalaud x 1
Jumper juhtmed
Tarkvara:
Arduino IDE (versioon 1.6.4+)
ESP8266 pardapakett ja jadapordi draiver
MQTT klient (MQTTBox siin)
Arduino raamatukogu: PubSubClient
2. samm: ühendusgraafik
Selles õppetükis kasutame lülitit juhtimiseks D2 (GPIO4), seadistage riistvara vastavalt ühenduse graafikule.
Märkus: 1k takisti kasutatakse tõmbetakistina. Sellises vooluahelas, kui lüliti on suletud, on NodeMCU sisend loogiliselt kõrge väärtus, kuid kui lüliti on avatud, tõmbab tõmbetakistus sisendpinget maapinnale (loogiline nullväärtus), vältides sisendis määratlemata olekut.
3. samm: kood
Kopeerige allolev kood Arduino IDE -sse:
/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * Kasutage NodeMCU saadab WiFi kaudu MQTT kliendile lüliti nupu oleku * Õpetuse URL: * CopyRight www.osoyoo.com */ #include #include
int BUTTON_PIN = D2; // nupp on ühendatud GPIO pistikuga D1
// Värskendage neid võrgule sobivate väärtustega. const char*ssid = "********"; // pane siia oma wifi ssid const char*password = "********"; // pane siia oma wifi parool. const char* mqtt_server = "maakler.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";
WiFiClient espClient;
PubSubClient klient (espClient); pikk lastMsg = 0; char msg [50];
void setup_wifi () {
viivitus (100); // Alustame WiFi -võrguga ühenduse loomisest Serial.print ("Ühendamine"); Serial.println (ssid); WiFi.begin (ssid, parool); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Seeria.print ("."); } randomSeed (micros ()); Serial.println (""); Serial.println ("WiFi ühendatud"); Serial.println ("IP -aadress:"); Serial.println (WiFi.localIP ()); }
tühine tagasihelistamine (sümbol* teema, bait* kasulik koormus, allkirjastamata int pikkus)
{} // tagasihelistamine
void reconnect () {
// Loop, kuni oleme uuesti ühendatud, kui (! Client.connected ()) {Serial.print ("MQTT ühenduse proovimine…"); // Loo juhuslik kliendi ID String clientId = "ESP8266Client-"; clientId += string (juhuslik (0xffff), HEX); // proovige ühendust luua // kui teil MQTT maakleril on kliendi ID, kasutajanimi ja parool // muutke järgmine rida väärtuseks if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) {Serial.println ("ühendatud"); // kui olete MQTT maakleriga ühendatud, tellige käsk, kui mõni klient on. tellige ("OsoyooCommand"); } else {Serial.print ("ebaõnnestus, rc ="); Serial.print (client.state ()); Serial.println ("proovi uuesti 5 sekundi pärast"); // Oodake 5 sekundit enne viivituse uuesti proovimist (5000); }}} // lõpetage uuesti ühendamine ()
tühine seadistus () {
Seriaalne algus (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (tagasihelistamine); pinMode (BUTTON_PIN, INPUT); }
void loop () {
if (! client.connected ()) {reconnect (); } klient.loop (); pikk nüüd = millis (); int staatus; // saata sõnum iga 2 sekundi tagant, kui (nüüd - lastMsg> 2000) {lastMsg = now; olek = digitalRead (BUTTON_PIN); String msg = "Nupu olek:"; if (olek == KÕRGE) {msg = msg+ "Vajutatud"; char sõnum [58]; msg.toCharArray (sõnum, 58); Serial.println (sõnum); // avaldada andurite andmed MQTT maaklerile client.publish ("OsoyooData", teade); } else {msg = msg+ "Not Press"; char sõnum [58]; msg.toCharArray (sõnum, 58); Serial.println (sõnum); // avaldada andurite andmed MQTT maaklerile client.publish ("OsoyooData", teade); }}}
Muutke koodi, et see sobiks teie WiFi ja MQTT seadetega järgmiselt: 1) leviala konfiguratsioon: otsige koodirida alt, pange sinna oma SSID ja parool.
const char* ssid = “sinu_hotspot_ssid”; const char* parool = “your_hotspot_password”;
2) MQTT -serveri aadressi seadistus: saate kasutada oma MQTT -maakleri URL -i või IP -aadressi, et määrata väärtus mqtt_server kõrgemale. Projekti testimiseks võite kasutada ka mõnda kuulsat tasuta MQTT-serverit, näiteks „broker.mqtt-dashboard.com”, „iot.eclipse.org” jne.
const char* mqtt_server = “maakler.mqtt-dashboard.com”;
3) MQTT kliendiseaded Kui teie MQTT maakler nõuab kliendi ID, kasutajanime ja parooli autentimist, peate muutma
if (client.connect (clientId.c_str ()))
To
if (client.connect (clientId, userName, passWord)) // pane siia oma clientId/userName/passWord
Kui ei, siis jätke need vaikimisi. Pärast seda valige vastav tahvli tüüp ja pordi tüüp, nagu allpool, ja laadige visand NodeMCU -sse.
- Tahvel: "NodeMCU 0.9 (ESP-12 moodul)"
- Protsessori sagedus: "80MHz" Välgu suurus:"
- 4 miljonit (3 miljonit SPIFFS)”
- Üleslaadimiskiirus: "115200"
- Port: valige oma NodeMCU jaoks jadaport
Samm: MQTT kliendiseaded
Kui te ei tea, kuidas MQTT klienti seadistada, külastage meie viimast artiklit:
Teemade seaded: avaldatav teema: OsoyooCommand
Tellitav teema: OsoyooData
Jookstulemus
Kui üleslaadimine on lõppenud, kui wifi leviala nimi ja parooli seaded on korras ja MQTT maakler on ühendatud, avage jadamonitor, näete järgmist tulemust: Jätkake selle nupu vajutamist, jadamonitor väljastab iga kahe sekundi järel nupu oleku: vajutatud; kui olete selle nupu vabastanud, väljastab seeriamonitor iga kahe sekundi tagant „Nupu olek: pole vajutatud”.
Soovitan:
Microsofti meeskondade vaigistamise nupp: 4 sammu
Microsoft Teamsi vaigistamisnupp: looge hõlpsasti ligipääsetav nupp, et vaigistada/vaigistada Microsoft Teamsi kõne ajal! Kuna 2020. aastal. See projekt kasutab Adafruit Circuit Playground Expressi (CPX) ja suurt nuppu, et luua Microsoft Teamsi jaoks kiirklahvi abil vaigistusnupp
$ 5 koduautomaatika nupp: 4 sammu
5 -dollarine koduautomaatika nupp: 5 -dollarine koduautomaatika nupp Mõnikord on lihtsaim lahendus üks nupp. Tahtsime lihtsat võimalust käivitada oma koduautomaatika jaotises (Hubitat Elevation) „magamamineku” rutiin, mis lülitab enamiku tuled välja, seab teised teatud tasemele ja
Klaasi IoT puutetundlik nupp: 10 sammu
Klaasist asjade puutetundlik nupp: eelmisel päeval lasin poes ringi ITO klaasitüki ja mõtlesin selle hea kasutamise üle. ITO, indium -tinaoksiid, klaasi leidub tavaliselt vedelkristallkuvarites, päikesepatareides, lennukikabiini akendes jne
IoT nupp (D1 Mini): 6 sammu
IoT -nupp (D1 Mini): tegin IoT -nupu (mõelge nendele Amazon Dashi asjadele), mida saate kasutada oma telefoni märguannete saatmiseks (näiteks aias lõõgastudes joogitäite taotlemiseks). Saate hõlpsasti ümber seadistada paljude teiste seadmetega suhtlemiseks
IoT -nupp, mis juhib teie rakendust: 6 sammu
IoT -nupp, mis juhib teie rakendust: Üks asi, mis mulle mikrokontrollerite juures kõige rohkem meeldib, on võimalus kasutada neid sisendseadmena, näiteks Arduino Micro saab kasutada HID -ina (inimese liideseadmena), mis tähendab mõningast kodeerimist ja oskusteavet saate ise teha