Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02
OSOYOO NodeMCU IOT Startsett
Følg oss på facebook, finn vårt nye utgitte element og del ideen din og videoen om hvordan du kan bruke produktene våre kreativt. Du kan få penger tilbake eller gi fra oss! Facebook:
Youtube:
I denne leksjonen vil vi koble en bryterknapp til NodeMCU, og sende bryterstatusen til en MQTT -megler. Når du trykker på knappen, vil NodeMCU publisere knappestatusen "trykket" til MQTT -megler, og MQTT -klienten vil abonnere på disse meldingene. Når trykknappen slippes, sendes "ikke trykket".
Trinn 1: Forberedelse
Maskinvare:
NodeMCU -kort x 1
Bryterknapp x 1
1K motstand x 1
Brødbrett x 1
Jumper ledninger
Programvare:
Arduino IDE (versjon 1.6.4+)
ESP8266 brettpakke og seriell portdriver
MQTT Client (MQTTBox her)
Arduino bibliotek: PubSubClient
Trinn 2: Tilkoblingsgraf
I denne leksjonen bruker vi D2 (GPIO4) til å kontrollere bryteren. Vennligst sett opp maskinvaren i henhold til tilkoblingsgrafen.
Merk: 1k-motstanden brukes som en nedtrekksmotstand. I en slik krets, når bryteren er lukket, har NodeMCU-inngangen en logisk høy verdi, men når bryteren er åpen, trekker nedtrekksmotstanden inngangsspenningen ned til bakken (logisk nullverdi), og forhindrer en udefinert tilstand ved inngangen.
Trinn 3: Kode
Kopier koden nedenfor til Arduino IDE:
/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * Bruk NodeMCU sender bryterknappstatus til MQTT -klient via WiFi * Opplærings -URL: * CopyRight www.osoyoo.com */ #include #include
int BUTTON_PIN = D2; // -knappen er koblet til GPIO -pinne D1
// Oppdater disse med verdier som passer for nettverket ditt. const char*ssid = "********"; // legg wifi -ssid her const char*password = "********"; // legg wifi -passordet ditt her. const char* mqtt_server = "megler.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";
WiFiClient espClient;
PubSubClient -klient (espClient); lang sisteMsg = 0; røykemelding [50];
ugyldig setup_wifi () {
forsinkelse (100); // Vi starter med å koble til et WiFi -nettverk Serial.print ("Koble til"); Serial.println (ssid); WiFi.begin (ssid, passord); mens (WiFi.status ()! = WL_CONNECTED) {forsinkelse (500); Serial.print ("."); } randomSeed (micros ()); Serial.println (""); Serial.println ("WiFi tilkoblet"); Serial.println ("IP -adresse:"); Serial.println (WiFi.localIP ()); }
ugyldig tilbakeringing (tegn* emne, byte* nyttelast, usignert int -lengde)
{} // avslutte tilbakeringing
ugyldig tilkobling () {
// Sløyfe til vi blir koblet til igjen mens (! Client.connected ()) {Serial.print ("prøver MQTT -tilkobling …"); // Lag en tilfeldig klient-ID String clientId = "ESP8266Client-"; clientId += String (tilfeldig (0xffff), HEX); // Prøv å koble til // hvis du MQTT -megler har clientID, brukernavn og passord // vennligst endre følgende linje til if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ()))) {Serial.println ("tilkoblet"); // når du er koblet til MQTT -megler, abonnerer du på kommando hvis noen klient.abonnerer ("OsoyooCommand"); } annet {Serial.print ("mislyktes, rc ="); Serial.print (client.state ()); Serial.println ("prøv igjen om 5 sekunder"); // Vent 5 sekunder før forsøk på nytt (5000); }}}} // avslutt tilkoblingen på nytt ()
ugyldig oppsett () {
Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (tilbakeringing); pinMode (BUTTON_PIN, INPUT); }
void loop () {
if (! client.connected ()) {reconnect (); } client.loop (); lenge nå = millis (); int status; // send melding hvert 2. sekund hvis (nå - lastMsg> 2000) {lastMsg = nå; status = digitalRead (BUTTON_PIN); String msg = "Knappestatus:"; if (status == HIGH) {msg = msg+ "Presset"; røyemelding [58]; msg.toCharArray (melding, 58); Serial.println (melding); // publisere sensordata til MQTT megler client.publish ("OsoyooData", melding); } annet {msg = msg+ "Ikke trykk"; røyemelding [58]; msg.toCharArray (melding, 58); Serial.println (melding); // publisere sensordata til MQTT megler client.publish ("OsoyooData", melding); }}}
Rediger koden slik at den passer til dine egne WiFi- og MQTT -innstillinger som følgende operasjoner: 1) Hotspot Configration: Finn under kodelinjen, sett ditt eget ssid og passord der.
const char* ssid = “your_hotspot_ssid”; const char* password = “your_hotspot_password”;
2) MQTT -serveradresseinnstilling: Du kan bruke din egen MQTT -megler -URL eller IP -adresse for å angi over mqtt_server -verdien. Du kan også bruke en berømt gratis MQTT-server til å teste prosjektet, for eksempel “broker.mqtt-dashboard.com”, “iot.eclipse.org” etc.
const char* mqtt_server = “megler.mqtt-dashboard.com”;
3) MQTT -klientinnstillinger Hvis din MQTT -megler krever klient -ID, brukernavn og passordgodkjenning, må du endre
hvis (client.connect (clientId.c_str ()))
Til
if (client.connect (clientId, userName, passWord)) // legg ditt clientId/userName/passWord her
Hvis ikke, må du bare beholde dem som standard. Etter at du har gjort det, velger du korresponderende brettype og porttype som nedenfor, og laster deretter opp skissen til NodeMCU.
- Styret:”NodeMCU 0.9 (ESP-12 Module)”
- CPU -frekvens: "80MHz" Flash -størrelse:"
- 4M (3M SPIFFS)”
- Last opp hastighet:”115200 ″
- Port: Velg din egen serieport for NodeMCU
Trinn 4: MQTT -klientinnstillinger
Hvis du ikke vet hvordan du konfigurerer MQTT-klienten, kan du gå til vår siste artikkel:
Emneinnstillinger: Emne å publisere: OsoyooCommand
Emne for å abonnere: OsoyooData
Løpende resultat
Når opplastingen er fullført, hvis wifi hotspot -navn og passordinnstilling er ok og MQTT -megler er tilkoblet, åpner du Serial Monitor, du vil se følgende resultat: Fortsett å trykke på denne knappen, Serial Monitor sender ut "Knappstatus: Trykt" hvert 2. sekund; når du slipper denne knappen, sender seriell monitor ut "Knappstatus: Ikke trykket" hvert 2. sekund.
Anbefalt:
IOT Home Automation DIY Project #1: 7 Steps
IOT Home Automation DIY Project # 1: # INNLEDNING Hjemmeautomatisering er automatiseringsprosessen for husholdningsapparater som AC, vifte, kjøleskap, lys og listen fortsetter, slik at de kan kontrolleres med telefonen, datamaskinen eller til og med eksternt. Dette prosjektet omhandler esp2866
Hacking a London Underground Jubilee Line Door Button: 12 Steps (med bilder)
Hacking a London Underground Jubilee Line Door Button: London Transport Museum -butikken selger nedlagte dørknapper fra Jubilee Line (både venstre og høyre er tilgjengelig). Hvis du tenker på å gjennomføre et prosjekt som trenger en knapp og et indikatorlys av noe slag, ville du være
Totoro Project - IoT & MQTT & ESP01: 7 trinn (med bilder)
Totoro Project - IoT & MQTT & ESP01: Totoro Project er et fint IoT -prosjekt du kan kopiere i mange andre forskjellige former. Ved hjelp av ESP01 -kortet, med MQTT -protokollen, kan du kommunisere statusen til knappen til MQTT -megleren (i min case AdafruitIO). En nyttig guide for MQTT og Ad
Pressly: DIY Almighty Smartphone Button: 10 Steps (med bilder)
Pressly: DIY Almighty Smartphone Button: De fleste fysiske tastene har blitt jaget av telefoner, takket være den voldsomme økningen av berøringsskjermteknologi, men her er et DIY-prosjekt som ønsker å bringe en smartere slags fysisk nøkkel til smarttelefonen din. Pressly er en maskinvareknapp som er koblet til en 3,5 mm
HelloWorld With Exit Button AndroidStudio: 4 Steps
HelloWorld With Exit Button AndroidStudio: Denne opplæringen lærer deg hvordan du bygger Android -app som viser Hello World -tekst og Exit -knapp for å gå ut av aktiviteten