Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-23 15:10
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
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
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
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:
Paneli i ndërrimit të DIY Flight Sim: 7 hapa (me fotografi)
Paneli i ndërrimit të DIY Flight Sim: Pasi kalova shumë vite në komunitetin e fluturimit dhe u përfshiva në avionë gjithnjë e më të komplikuar, e gjeta veten të etur për aftësinë për të mbajtur duart në çelsat fizikë në vend që të përpiqesha të fluturoja me dorën e djathtë gjatë përdorimit të m
Kontrollimi i ekranit të shtatë segmenteve duke përdorur regjistrimin e ndërrimit të Arduino dhe 74HC595: 6 hapa
Kontrolli i shfaqjes së shtatë segmenteve duke përdorur Arduino dhe 74HC595 Shift Register: Hej, çfarë ka, djema! Akarsh këtu nga CETech. Shtatë ekranet e segmenteve janë të mirë për tu parë dhe janë gjithmonë një mjet i dobishëm për të shfaqur të dhëna në formën e shifrave, por ka një pengesë në to, e cila është ajo kur kontrollojmë një ekran me shtatë segmente në të vërtetë
7 Numëruesi i segmentit të ekranit me regjistrin e ndërrimit: 3 hapa
7 Numërues i Segmentit të Shfaqur me Shift Register: Ky është projekti fillestar i përsosur nëse jeni vetëm duke mësuar se si të përdorni një regjistër ndërrimi dhe si funksionon me kod. Për më tepër, ky projekt është një fillim i shkëlqyeshëm nëse jeni i ri në ekranin e segmentit 7. Para se të filloni këtë projekt, sigurohuni që të shikoni
Kaskada e regjistrave të ndërrimit 74HC595 të kontrolluar përmes Arduino dhe Ethernet: 3 hapa
Kaskada e Regjistrave të Shiftit 74HC595 Kontrolluar përmes Arduino dhe Ethernet: Sot do të doja të prezantoja një projekt që e kam zbatuar në dy versione. Projekti përdor 12 regjistra ndërrimi 74HC595 dhe 96 LED, bord Arduino Uno me mburojë Ethernet Wiznet W5100. 8 LED janë të lidhur me secilin regjistër ndërrimi. Numrat 0
Shtesat e Ndërrimit të Murit Sonoff: 4 Hapa
Shtesat Sonoff Wall Switch: Nëse përdorni çelësa muri Sonoff T1, jeni larguar nga përdorimi i serverëve të bazuar në cloud për automatizimin e shtëpisë dhe dëshironi të merrni më shumë funksionalitet nga çelësi i dritës i montuar në mur. Ky udhëzues ju tregon se si të shtoni një sensor të temperaturës