Përmbajtje:

NodeMCU MQTT Iot Project - Butoni i ndërrimit: 4 hapa
NodeMCU MQTT Iot Project - Butoni i ndërrimit: 4 hapa

Video: NodeMCU MQTT Iot Project - Butoni i ndërrimit: 4 hapa

Video: NodeMCU MQTT Iot Project - Butoni i ndërrimit: 4 hapa
Video: Погодная станция на ESP8266, MQTT и Epaper дисплее 2024, Korrik
Anonim
Image
Image

Kompleti fillestar OSOYOO NodeMCU IOT

Ju lutemi na ndiqni në facebook, gjeni artikullin tonë të ri të lëshuar dhe ndani idenë dhe videon tuaj se si t'i përdorni në mënyrë krijuese produktet tona. Mund të merrni para ose dhuratë nga ne! Facebook:

Youtube:

Në këtë mësim, ne do të lidhim një buton kalimi në NodeMCU dhe do t'i dërgojmë statusin e ndërprerësit një ndërmjetësi MQTT. Kur shtypet butoni, NodeMCU do të publikojë statusin e butonit të "shtypur" tek ndërmjetësi MQTT dhe klienti MQTT do të regjistrohet në këto mesazhe. Kur lëshohet butoni, "nuk shtypet" do të dërgohet.

Hapi 1: Përgatitja

Grafiku i lidhjes
Grafiku i lidhjes

Hardware:

Bordi NodeMCU x 1

Butoni i ndërrimit x 1

Rezistencë 1K x 1

Breadboard x 1

Telat e kërcyesit

Softuer:

Arduino IDE (versioni 1.6.4+)

Paketa e bordit ESP8266 dhe Shoferi i Portit Serial

Klienti MQTT (MQTTBox këtu)

Biblioteka Arduino: PubSubClient

Hapi 2: Grafiku i lidhjes

Në këtë mësim, ne përdorim D2 (GPIO4) për të kontrolluar ndërprerësin, ju lutemi konfiguroni pajisjen sipas grafikut të lidhjes.

Shënim: rezistenca 1k përdoret si një rezistencë tërheqëse, Në një qark të tillë, kur çelësi është i mbyllur, hyrja NodeMCU është në një vlerë të lartë logjike, por kur çelësi është i hapur, rezistenca tërheqëse tërheq tensionin e hyrjes poshtë në tokë (vlera zero logjike), duke parandaluar një gjendje të pacaktuar në hyrje.

Hapi 3: Kodi

Kodi
Kodi
Kodi
Kodi

Kopjoni kodin e mëposhtëm në Arduino IDE:

/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * * _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * Përdorni NodeMCU dërgoni statusin e butonit të kalimit te klienti MQTT përmes WiFi * URL tutorial: * CopyRight www.osoyoo.com */ #include #include

int BUTTON_PIN = D2; // butoni është i lidhur me pinin GP1O D1

// Përditësoni këto me vlera të përshtatshme për rrjetin tuaj. const char*ssid = "********"; // vendosni ssid -in tuaj wifi këtu const char*password = "********"; // vendosni fjalëkalimin tuaj wifi këtu. const char* mqtt_server = "broker.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";

WiFiClient espClient;

Klienti PubSubClient (espClient); e funditMsg = 0; msg msg [50];

void setup_wifi () {

vonesë (100); // Fillojmë duke u lidhur me një rrjet WiFi Serial.print ("Lidhja me"); Serial.println (ssid); WiFi.filloni (ssid, fjalëkalim); ndërsa (WiFi.status ()! = WL_CONNECTED) {vonesë (500); Serial.print ("."); } farë e rastësishme (mikros ()); Serial.println (""); Serial.println ("WiFi i lidhur"); Serial.println ("Adresa IP:"); Serial.println (WiFi.localIP ()); }

thirrje e pavlefshme (temë* e karakterit, bajt* ngarkesë, gjatësi int e panënshkruar)

{} // përfundoni përgjigjen e thirrjes

rilidhje e pavlefshme () {

// Lakoni derisa të rilidhemi ndërsa (! Client.connected ()) {Serial.print ("Përpjekja për lidhje MQTT …"); // Krijoni një ID të rastit të klientit String clientId = "ESP8266Client-"; clientId += String (i rastësishëm (0xffff), HEX); // Përpjekje për t'u lidhur // nëse ndërmjetësi MQTT ka klientID, emrin e përdoruesit dhe fjalëkalimin // ju lutemi ndryshoni rreshtin vijues në if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) {Serial.println ("lidhur"); // sapo të lidhet me ndërmjetësin MQTT, regjistrohu komandën nëse ndonjë klient.subscribe ("OsoyooCommand"); } else {Serial.print ("dështoi, rc ="); Serial.print (client.state ()); Serial.println ("provo përsëri në 5 sekonda"); // Prisni 5 sekonda para se të provoni vonesën (5000); }}} // përfundoj rilidhjen ()

void setup () {

Serial.filloj (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (kthim në telefon); pinMode (BUTTON_PIN, INPUT); }

lak void () {

nëse (! client.connected ()) {rilidheni (); } client.loop (); tani tani = millis (); int statusi; // dërgoni mesazh çdo 2 sekonda nëse (tani - lastMsg> 2000) {lastMsg = tani; statusi = digitalRead (BUTTON_PIN); String msg = "Statusi i butonit:"; if (statusi == LART) {msg = msg+ "Shtypur"; mesazh char [58]; msg.toCharArray (mesazh, 58); Serial.println (mesazh); // publikoni të dhënat e sensorit tek ndërmjetësi MQTT client.publish ("OsoyooData", mesazh); } else {msg = msg+ "Not Press"; mesazh char [58]; msg.toCharArray (mesazh, 58); Serial.println (mesazh); // publikoni të dhënat e sensorit tek ndërmjetësi MQTT client.publish ("OsoyooData", mesazh); }}}

Ndryshoni kodin për t'iu përshtatur cilësimeve tuaja WiFi dhe MQTT si operacionet e mëposhtme: 1) Konfigurimi i Hotspot: Gjeni linjën e kodit më poshtë, vendosni ssid -in dhe fjalëkalimin tuaj atje.

const char* ssid = "your_hotspot_ssid"; const char* password = "your_hotspot_password";

2) Cilësimi i adresës së serverit MQTT: Ju mund të përdorni URL -në tuaj të ndërmjetësit MQTT ose adresën IP për të vendosur mbi vlerën e serverit mqtt_server. Ju gjithashtu mund të përdorni disa serverë të famshëm falas MQTT për të testuar projektin siç janë "broker.mqtt-dashboard.com", "iot.eclipse.org" etj.

const char* mqtt_server = "ndërmjetësi.mqtt-dashboard.com";

3) Cilësimet e klientit MQTT Nëse ndërmjetësi juaj MQTT kërkon identifikimin e klientit, emrin e përdoruesit dhe fjalëkalimin, duhet të ndryshoni

nëse (client.connect (clientId.c_str ()))

Te

nëse (client.connect (clientId, userName, passWord)) // vendosni klientin tuaj ID/userName/passWord këtu

Nëse jo, thjesht mbajini ato si parazgjedhje. Pasi ta bëni këtë, zgjidhni llojin e bordit përkatës dhe llojin e portit si më poshtë, pastaj ngarkoni skicën në NodeMCU.

  • Bordi:”NodeMCU 0.9 (Moduli ESP-12)”
  • Frekuenca e CPU: "80MHz" Madhësia e blicit:"
  • 4M (3M SPIFFS)"
  • Shpejtësia e Ngarkimit:”115200
  • Port: Zgjidhni Portin tuaj Serial për NodeMCU tuaj

Hapi 4: Cilësimet e klientit MQTT

Cilësimet e klientit MQTT
Cilësimet e klientit MQTT
Cilësimet e klientit MQTT
Cilësimet e klientit MQTT

Nëse nuk dini si të konfiguroni klientin MQTT, ju lutemi vizitoni artikullin tonë të fundit:

Cilësimet e temave: Tema për t'u publikuar: OsoyooCommand

Tema për tu abonuar: OsoyooData

Rezultati i Drejtimit

Pasi të ketë përfunduar ngarkimi, nëse emri i Wi -Fi dhe cilësimi i fjalëkalimit është në rregull dhe ndërmjetësi MQTT është i lidhur, hapni Monitor Serial, do të shihni rezultatin e mëposhtëm: Vazhdoni të shtypni këtë buton, Monitori Serial do të dalë "Statusi i butonit: Shtypur" çdo 2 sekonda.; pasi ta lëshoni këtë buton, Monitori Serial do të nxjerrë "Statusi i butonit: Jo i shtypur" çdo 2 sekonda.

Recommended: