Stap 4: Code
Code:
Sluit de micro usbkabel aan op uw microprocessor en laptop (de kabel u niet vernietigden - de mannelijke hoofd u gesoldeerd serveert voor het voeden van alleen). Ik alles in arduino geprogrammeerd. Merk op dat u ook in lua en bepaalde javascript alternatieven programmeren kunt. Ik persoonlijk het beste bevalt van arduino en vind het gemakkelijkste. Hieronder en de bijgevoegde vindt u de code die ik met reacties gebruikt. Als u vragen hebt, schrijf hen in de commentaren.
0) als u nieuw bij de arduino, Wees niet geïntimideerd bent. Gewoon downloaden van de nieuwste versie van arduino.cc en installeren. Volg de onderstaande stappen. U hoeft alleen elementaire logica denken te begrijpen van de code en geen hersenen helemaal voor het uploaden van mijn code.
Ik gebruikte twee bibliotheken:
1) Blynk library, de nieuwste versie vinden op http://www.blynk.cc/getting-started/
2) elapsedMillis library, https://github.com/pfeerick/elapsedMillis
Merk ook op dat u wilt installeren van je board. Als u de wemos d1 mini gebruikt zoals ik deed, navigeer naar http://www.wemos.cc/tutorial/get_started_in_arduino.html. Selecteer uw versie van de Raad van bestuur en volg de stappen van de installaties. Ik beveel de automatische installatie via de arduino board manager (het is super snel en gemakkelijk). Vergeet om te selecteren uw bord later bij het uploaden.
Zonder de nieuwste versie van de bibliotheken en de instelling van de juiste bord, zal uw code niet werken!
Belangrijk: de vergunning token in de code is degene die u zoekt in uw telefoon of tablet in de blynk-app en per e-mail naar jezelf in de vorige stap. Dit is essentieel. Ook vergeet niet om het wifi wachtwoord en ssid te wijzigen.
Opmerking: De pin-layout van de mini wemos verschilt van de een op de standaard ESP8266. Hiermee rekening houden bij het werken met wemos en blynk. Zie bijgevoegde foto. Donkergroen is de pin lay-out in Blynk, in de arduino die u gewoon gebruik maken van het pin-nummer gemarkeerd op het bord voorafgegaan door "D". Voorbeeld: "digitalWrite (D1, laag);"
De code:
geschreven door Ruben Marc Speybrouck
Bekijk mijn instructables voor meer grote spullen:
#define BLYNK_PRINT seriële / / opmerking dit uit te schakelen van prenten en ruimtebesparend #include #include
WidgetTerminal terminal(V1);
Moet je Auth Token in de Blynk App. / / Ga naar de projectinstellingen (moer pictogram). char auth [] = "60b462d1df8c465bb4d7c7f9a21856a0" ;//
int switchstate = 0; int switchstate2 = 0; int relaystate = 0;
het opslaan van de variabelen die invoer leest.
#include elapsedMillis timeElapsed; unsigned int interval = 1000; Wacht één seconde (1000 microseconden) tussen knooppersen om over te schakelen van het licht op of weer uitschakelen. Dit voorkomt glitches en verbetert de stabiliteit. Na veel experimenteren vond ik een seconde te werken het beste. Gebruik geen vertraging hiervoor omdat vertraging zal ook het onderbreken van uw wifi-verbinding gedurende één seconde, maken op beginstand zetten. timeElapsed functies toestaan de void lus blijven uitvoeren, in tegenstelling tot de vertraging van de eenvoudige werking en zijn dus de enigen die moeten worden gebruikt bij het werken met netwerkcommunicatie
void setup {Serial.begin(9600); Blynk.begin (auth, "SSID", "Wachtwoord"); Vul uw ssid (de naam van uw wifi-netwerk) en wachtwoord hier. Merk op dat de aanhalingstekens moeten blijven.
pinMode (D4, uitvoer); pinMode (D2, uitvoer); pinMode (D3, uitvoer); pinMode (D5, uitvoer); pinMode (D8, uitvoer);
digitalWrite (D4, hoge); digitalWrite (D2, hoge); digitalWrite (D3, hoge); digitalWrite (D5, hoge); digitalWrite (D8, hoge); delay(1000);
digitalWrite (D4, laag); digitalWrite (D2, laag); digitalWrite (D3, laag); digitalWrite (D5, laag); digitalWrite (D8, laag);
Ik vond dat alles aan en uit te schakelen tijdens het opstarten van statische elektriciteit en andere onregelmatigheden ontdoen krijgt. En toegevoegde bonus om dit te doen is dat de klikken van het Relais u laten weten precies wanneer het apparaat is verbonden met het internet en volledig opgestart
delay(1000);
Terminal.println (F ("Blynk v"BLYNK_VERSION": apparaat begonnen")); Terminal.Flush(); Deze krijgt de terminal widget van de app van uw blynk begon}
void loop {Blynk.run (); //initiate verbinding met de server van de blynk, voor uw telefoon app unsigned long currentMillis = millis(); / / start tellen milliseconden voor vertragingen tussen knooppersen
switchstate = digitalRead(D3); switchstate2 = digitalRead(D5); D3 is waren uw fysieke drukknop is, D5 is de knop in mijn blynk-app dat ik kies. Merk op dat gpios in de blynk-app verschillende nummers hebben. Serial.Print(switchstate); Serial.Print ("---"); Serial.Print(switchstate2); Serial.Print ("---"); Serial.Print ("de RELAY IS:"); Serial.println(relaystate);
Ik opgenomen voor het oplossen van seriële afdrukken. Dit werkt alleen via usb van de microprocessor regeling aan uw laptop met arduino van seriële monitor open.
Als (relaystate == LOW) {als (switchstate == HIGH || switchstate2 == HIGH) {//if de fysieke knop of in de app wordt gedrukt als (timeElapsed > interval) / / als meer dan één seconde is verstreken sinds de vorige keer een knop werd ingedrukt, uitvoeren van de code en de estafette-status wijzigen. {relaystate = HIGH, digitalWrite (D8, hoog), digitalWrite (D4, hoge); terminal.println ("slaapkamer licht switched ON"); terminal.flush(); delay(5); timeElapsed = 0; / / reset van de teller op 0, zodat het tellen begint...} }
else {delay(5); / / kleine vertraging ter verbetering van de stabiliteit}}
Als de estafette op positie af (laag), zet het als de blynk app-knop wordt gedrukt of als de fysieke knop is ingedrukt. Op de stand van de variabele relaystate wijzigen / / Print naar het blynk app terminal widget dat de slaapkamer nu brandt.
anders als (relaystate == HIGH) {als (switchstate == HIGH || switchstate2 == HIGH) {als (timeElapsed > interval) / / als meer dan één seconde is verstreken sinds de vorige keer een knop werd ingedrukt, uitvoeren van de code en de estafette-status wijzigen.
{
relaystate = laag; Terminal.println ("slaapkamer licht switched OFF"); Terminal.Flush(); digitalWrite (D8, laag); digitalWrite (D4, laag); delay(5); timeElapsed = 0; } }
else {delay(5);}}
Als de estafette op positie op, schakel het uit als de blynk app-knop wordt gedrukt of als de fysieke knop is ingedrukt. De status van de variabele relaystate op off wijzigen / / Print naar het blynk app terminal widget dat het licht van de slaapkamer nu uitgeschakeld is.
}
De code is ook bevestigd in een apart bestand, niet kopiëren en plakken als het ruïne de lay-out.