Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
OSOYOO NodeMCU IOT-startpakket
Volg ons op facebook, vind ons nieuw uitgebrachte item en deel uw idee en video over hoe u onze producten creatief kunt gebruiken. U kunt bij ons geld terugkrijgen of weggeven! Facebook:
Youtube:
In deze les zullen we een schakelknop verbinden met de NodeMCU en de schakelstatus naar een MQTT-makelaar sturen. Wanneer de knop wordt ingedrukt, zal NodeMCU de knopstatus "ingedrukt" publiceren naar MQTT-broker en de MQTT-client zal zich abonneren op deze berichten. Wanneer de drukknop wordt losgelaten, wordt "niet ingedrukt" verzonden.
Stap 1: Voorbereiding
Hardware:
NodeMCU-bord x 1
Schakelknop x 1
1K weerstand x 1
Broodplank x 1
Doorverbindingsdraden
Software:
Arduino IDE (versie 1.6.4+)
ESP8266-kaartpakket en het stuurprogramma voor de seriële poort
MQTT-client (MQTTBox hier)
Arduino-bibliotheek: PubSubClient
Stap 2: Verbindingsgrafiek
In deze les gebruiken we D2(GPIO4) om de switch te bedienen. Stel de hardware in volgens de verbindingsgrafiek.
Opmerking: de 1k-weerstand wordt gebruikt als een pull-down-weerstand. In zo'n circuit, wanneer de schakelaar gesloten is, heeft de NodeMCU-ingang een logische hoge waarde, maar wanneer de schakelaar open is, trekt de pull-down-weerstand de ingangsspanning down to ground (logische nulwaarde), waardoor een ongedefinieerde toestand bij de ingang wordt voorkomen.
Stap 3: Coderen
Kopieer de onderstaande code naar Arduino IDE:
/* _ _ _ _ _ _ _ _ _ _ * / _ / /_)/ _ \| | | |/ _ / / _ / / _) _ \| / *| |_| |_ | |_| | |_| | |_| | |_| ((_| |_| | | | | * \_/(_/ \_/ \_ |\_/ \_(_)_)_/|_|_|_| * (_/ * Gebruik de NodeMCU stuurt de status van de schakelknop naar de MQTT-client via wifi * Tutorial-URL: * CopyRight www.osoyoo.com */ #include #include
int BUTTON_PIN = D2; // knop is verbonden met GPIO-pin D1
// Werk deze bij met waarden die geschikt zijn voor uw netwerk. const char* ssid = "********";//plaats hier uw wifi-ssid const char* wachtwoord = "********";//plaats hier uw wifi-wachtwoord. const char* mqtt_server = "broker.mqttdashboard.com"; //const char* mqtt_server = "iot.eclipse.org";
WiFiClient espClient;
PubSubClient-client (espClient); lange laatsteMsg = 0; char bericht [50];
ongeldig setup_wifi() {
vertraging (100); // We beginnen door verbinding te maken met een WiFi-netwerk Serial.print ("Verbinden met "); Seriële.println(ssid); WiFi.begin(ssid, wachtwoord); while (WiFi.status() != WL_CONNECTED) {vertraging (500); Serieel.print("."); } randomSeed(micros()); Serieel.println(""); Serial.println("WiFi verbonden"); Serial.println("IP-adres: "); Serial.println(WiFi.localIP()); }
void callback(char* topic, byte* payload, unsigned int lengte)
{ } // terugbellen beëindigen
ongeldig opnieuw verbinden() {
// Loop totdat we opnieuw verbonden zijn while (!client.connected()) { Serial.print("Poging tot MQTT-verbinding…"); // Maak een willekeurige client-ID String clientId = "ESP8266Client-"; clientId += String (willekeurig (0xffff), HEX); // Poging om verbinding te maken // als je MQTT-makelaar een client-ID, gebruikersnaam en wachtwoord heeft // verander de volgende regel in if (client.connect(clientId, userName, passWord)) if (client.connect(clientId.c_str())) { Serial.println("verbonden"); // eenmaal verbonden met MQTT-broker, abonneer de opdracht indien van toepassing client.subscribe ("OsoyooCommand"); } else { Serial.print("mislukt, rc="); Serial.print(client.state()); Serial.println ("probeer het over 5 seconden opnieuw"); // Wacht 5 seconden voordat u de vertraging opnieuw probeert (5000); } } } // end reconnect()
ongeldige setup() {
Serieel.begin(115200); setup_wifi(); client.setServer(mqtt_server, 1883); client.setTerugbellen (terugbellen); pinMode (BUTTON_PIN, INPUT); }
lege lus() {
if (!client.connected()) { opnieuw verbinden(); } cliënt.loop(); lang nu = millis(); int-status; // stuur elke 2 seconden een bericht als (nu - lastMsg > 2000) { lastMsg = nu; status=digitalRead (BUTTON_PIN); String msg="Knopstatus: "; if(status==HIGH) { msg= msg+ "Ingedrukt"; char bericht[58]; msg.naarCharArray(bericht, 58); Serial.println(bericht); //publiceer sensorgegevens naar MQTT broker client.publish ("OsoyooData", bericht); } else { msg= msg+ "Niet drukken"; char bericht[58]; msg.naarCharArray(bericht, 58); Serial.println(bericht); //publiceer sensorgegevens naar MQTT broker client.publish ("OsoyooData", bericht); } } }
Bewerk de code zodat deze past bij uw eigen WiFi- en MQTT-instellingen als volgt: 1) Hotspot-configuratie: zoek de onderstaande coderegel, plaats uw eigen ssid en wachtwoord daar.
const char* ssid = “your_hotspot_ssid”;const char* password = “your_hotspot_password”;
2) MQTT-serveradresinstelling: u kunt uw eigen MQTT-broker-URL of IP-adres gebruiken om boven de mqtt_server-waarde in te stellen. Je kunt ook een beroemde gratis MQTT-server gebruiken om het project te testen, zoals "broker.mqtt-dashboard.com", "iot.eclipse.org" enz.
const char* mqtt_server = "broker.mqtt-dashboard.com";
3) MQTT-clientinstellingen Als uw MQTT-makelaar client-ID, gebruikersnaam en wachtwoordverificatie vereist, moet u dit wijzigen:
if (client.connect(clientId.c_str()))
Tot
if (client.connect(clientId, userName, passWord)) // plaats hier uw clientId/userName/passWord
Als dat niet het geval is, houdt u ze gewoon als standaard. Kies daarna het overeenkomstige bordtype en poorttype zoals hieronder en upload de schets naar de NodeMCU.
- Bord: "NodeMCU 0.9 (ESP-12-module)"
- CPU-frequentie: "80 MHz" Flash-grootte:"
- 4M (3M SPIFFS)”
- Uploadsnelheid: "115200"
- Poort: kies uw eigen seriële poort voor uw NodeMCU
Stap 4: MQTT-clientinstellingen
Als je niet weet hoe je de MQTT-client moet configureren, bezoek dan ons laatste artikel:
Onderwerpen Instellingen:Onderwerp om te publiceren: OsoyooCommand
Onderwerp om in te schrijven: OsoyooData
Lopend resultaat
Zodra de upload is voltooid, als de wifi-hotspotnaam en het wachtwoord in orde zijn en de MQTT-broker is verbonden, opent u de seriële monitor, u ziet het volgende resultaat: blijf op deze knop drukken, de seriële monitor geeft elke 2 seconde "Knopstatus: ingedrukt" weer;nadat u deze knop loslaat, geeft de seriële monitor elke 2 seconden de melding "Knopstatus: niet ingedrukt".
Aanbevolen:
IOT-huisautomatisering DIY-project # 1: 7 stappen
IOT Home Automation DIY Project #1: # INLEIDING Domotica is het automatiseringsproces van huishoudelijke apparaten zoals AC, Ventilator, Koelkast, verlichting en de lijst gaat maar door, zodat ze kunnen worden bediend met je telefoon, computer of zelfs op afstand. Dit project gaat over de esp2866
IoT met NodeMCU en MQTT: 4 stappen
IoT Met NodeMCU en MQTT: [Nl] Ooit moest ik voor een industriële toepassing een PCB maken met 8 droge contacten, een beetje spelen met MQTT en besloot om het aan te passen om te werken met NodeMCU esp-f v4. Om het een eenvoudige manier te maken om goedkope domotica te maken.[Pt-Br] Cert
ESP8266 NODEMCU BLYNK IOT-zelfstudie - Esp8266 IOT Blunk en Arduino IDE gebruiken - Led's bedienen via internet: 6 stappen
ESP8266 NODEMCU BLYNK IOT-zelfstudie | Esp8266 IOT Blunk en Arduino IDE gebruiken | LED's bedienen via internet: Hallo jongens, in deze instructables zullen we leren hoe we IOT kunnen gebruiken met onze ESP8266 of Nodemcu. We zullen daarvoor de blynk-app gebruiken. Dus we zullen onze esp8266/nodemcu gebruiken om de LED's via internet te bedienen. Dus de Blynk-app wordt verbonden met onze esp8266 of Nodemcu
ESPHA - IOT-PROJECT: 4 stappen (met afbeeldingen)
ESPHA - IOT PROJECT: In deze projectnaam wordt "ESPHA" met behulp van een Arduino, esp8266 en een website (gemaakt door mij) worden enkele elektronische sensorgegevens en gadgets gecontroleerd en gemanipuleerd. Hier heb ik "RGB LED" waaronder u de LED-status regelt (1 voor
USB-aangedreven brander! Dit project kan door plastic / hout / papier branden (leuk project moet ook heel fijn hout zijn): 3 stappen
USB-aangedreven brander! Dit project kan door plastic / hout / papier branden (leuk project moet ook heel fijn hout zijn): MAAK DIT NIET MET USB!!!! ik kwam erachter dat het je computer kan beschadigen door alle opmerkingen. mijn computer is in orde. Gebruik een 600mA 5v telefoonoplader. ik heb dit gebruikt en het werkt prima en niets kan worden beschadigd als je een veiligheidsstekker gebruikt om de stroom te stoppen