Een draadloze aan / uit-schakelaar voor uw pc maken
EEN Slim systeem dat de verlichting regelt, entertainmentsystemen en andere apparaten kan gemakkelijk thuis worden ontworpen en is ook het snelst groeiende concept van de moderne wereld. Smart Home Systems is een concept waarbij alle elektrische apparaten of apparaten worden bediend met één afstandsbediening. Tegenwoordig kan een enkele component zoals een relaismodule worden gebruikt om verschillende elektronische parameters van een huis te besturen, bijvoorbeeld het schakelen van huishoudelijke apparaten, het bewaken van beveiligingsalarmen, automatisering van garagedeuren, enz. Persoonlijke computer zal worden gecontroleerd door een Android-applicatie. In deze systemen is de afstandsbediening meestal een mobiele applicatie. Omdat een Android-mobiel de meest voorkomende is onder de mensen, dus een Android-applicatie is de beste optie om onze pc te bedienen.
Hoe maak je een draadloze switch voor je pc op een mobiele telefoon?
Stap 1: de componenten verzamelen
Om een project te maken, moet men weten wat de basiscomponenten zijn die men nodig heeft om het te voltooien. Een uitstekende aanpak voordat u met de werkzaamheden begint, is dus om een volledige lijst van alle componenten te maken om tijd te besparen en om te voorkomen dat u midden in het project vastloopt. Hieronder vindt u een volledige lijst van alle componenten die gemakkelijk op de markt verkrijgbaar zijn:
Stap 2: Software die moet worden geïnstalleerd
Omdat we een draadloze schakelaar gaan maken, hebben we een knop nodig om deze aan en uit te zetten. We willen een mobiele telefoon gebruiken om deze knop te bedienen, dus daarvoor zullen we een applicatie moeten ontwikkelen. De handigste applicatie is een Android-applicatie. We hebben twee software nodig om deze applicatie te gebruiken. Beiden zijn hieronder opgesomd:
Stap 3: Android Studio installeren
Voordat we Android Studio installeren, zullen we eerst JAVA JDK installeren. Om dit te installeren, klikt u op het exe het dossier die u via de bovenstaande link hebt gedownload, en klik op Volgende totdat het met succes is geïnstalleerd. Doorloop nu de volgende stappen zodat uw opdrachtprompt java herkent als een externe of interne opdracht.
- Open Controlepaneel en klik op Systeem en veiligheid.
- Klik op Systeem.
- Klik op Geavanceerde systeeminstellingen en klik vervolgens op Omgevingsvariabelen.
- Klik in het gedeelte Systeemvariabele op het pad en klik vervolgens op bewerken. Een nieuw Bewerk omgevingsvariabelebox zal verschijnen.
- Ga nu naar C: \ Program Files \ Java op uw pc. Open de JDK-map, klik op de bin-map en kopieer het pad van die map.
- Ga nu naar het vak Wijzig omgevingsvariabele en klik op nieuw om een nieuwe variabele te maken. Plak het pad dat u in de bovenstaande stap hebt gekopieerd in de nieuwe variabele en sla het op.
- Om te bevestigen of het volledig is geïnstalleerd, opent u de opdrachtprompt en typt u java –versie.
Nu u met succes Java JDK op uw computer hebt geïnstalleerd. Laten we nu Android Studio op uw computer installeren. Het installeren van deze software is heel eenvoudig. U moet het gedownloade bestand openen en op Volgende klikken totdat uw software volledig is geïnstalleerd.
Stap 4: verbinding met Firebase
Nu we Android Studio hebben geïnstalleerd, kunnen we het starten en een nieuw project maken om het met de firebase te verbinden. Volg hiervoor de volgende stappen.
1. Start Android Studio en maak een nieuw project door op het Lege activiteit.
2. Geef nu uw project een naam als computerSwitch,selecteer Kotlinals taal en selecteer het minimale API-niveau volgens uw mobiele telefoon.
Omdat we internet gaan gebruiken om de pinnen van de Raspberry Pi te bedienen. We zullen toestemming in onze app instellen om toegang te krijgen tot lokale wifi. Ga hiervoor naar app> manifesten> AndroidManifest.xml en voeg de volgende opdracht toe.
3. Klik nu op n Hulpmiddelen.Er verschijnt een vervolgkeuzemenu waaruit u kunt selecteren Firebase.
4. Een groot menu zal verschijnen aan de rechterkant van het scherm dat het menu zal bieden van bijna elke service die firebase aanbiedt. Maar op dit moment ligt onze belangrijkste focus op Real-Time Database. Dus klik op Real-Time Database. Een link naar "Gegevens opslaan en ophalen" zal verschijnen. Klik op die link.
5. Maak verbinding Maak verbinding met Firebaseknop. Het brengt u naar de standaardwebbrowser. Eerst wordt u gevraagd om in te loggen op uw Gmail-account. Klik dan op Voeg de Realtime Database toe aan uw appen accepteer de wijzigingen.
6. Ga nu naar Firebase Console. Daar ziet u een reeds gemaakt project. Het Android-logo op het pictogram van dat project betekent dat het al bij een Android-applicatie hoort.
7. Vanaf de Ontwikkelen menu dat aan de linkerkant van het scherm verschijnt, selecteert u Database. Een knop van Maak een database verschijnt aan de rechterkant. Klik op die knop.
8. Er verschijnt een menu waarin u wordt gevraagd de modus van uw database in te stellen. Klik op testmodusen klik vervolgens op Inschakelen.
9. Een heel belangrijke stap om te onthouden is het wijzigen van de Cloud Firestore naar Realtime database.Klik hiervoor op de knop in de onderstaande afbeelding en verander de gewenste optie.
10. Klik nu op het Reglement tabblad en verander de configuraties in Klopt. Als alles klaar is, klikt u op Publiceren.
11. Een ding dat u moet doen, behalve het aansluiten van de firebase, is de databaseversie bijwerken. Klik daarvoor op ga naar documenten. Klik nu op gidsenen selecteer Android-gidsenuit de lijst die op het scherm verschijnt. Scroll naar beneden tot een tabel verschijnt. Zoek naar Real-Time Database in die tabel en zoek de versie ervan. in mijn geval is dat zo 19.1.0
12. Klik op Gradle-scripts,een menu aan de linkerkant van het scherm. Selecteer vervolgens gebouwd. gradle (Module: app). Zoek nu in de code naar de versie van de Real-Time-database en vervang deze door de nieuwe.
13. Synchroniseer nu het project door op de synchronisatieknop bovenaan het scherm te klikken.
Stap 5: Layout maken
Nu onze Android-applicatie is verbonden met de firebase, kunnen we een lay-out van onze app maken die door de gebruiker zal worden gebruikt om de computer aan of uit te zetten. Ga naar om een lay-out te maken app> res> layout> activity_main.xml. waar we een lay-out zullen ontwerpen. Kopieer de onderstaande code om een tekstweergave te maken.
De lay-out van onze app ziet er als volgt uit:
Stap 6: Backend-codering in Kotlin
Laten we, aangezien we de frontend van de applicatie hebben gemaakt, een stap verder gaan en de backend-code schrijven om deze met de firebase te verbinden. We hebben een tuimelschakelaar aangesloten die een 0 naar de firebase-database stuurt wanneer deze is uitgeschakeld, en een 1 naar de firebase-database wanneer deze is ingeschakeld.
Klik nu in de linkerhoek op app> java> com.voorbeeld.computerswitch> hoofdactiviteit,en voeg de volgende code daar in je klas toe. Als er een fout in de bibliotheek optreedt, drukt u op ALT + ENTER om die bibliotheek automatisch op te nemen.
var database = FirebaseDatabase.getInstance () var myRef = database.reference internal lateinit var btnSwitch: Switch override fun onCreate (savedInstanceState: Bundle?) {super.onCreate (savedInstanceState) setContentView (R.layout.activity_maind) btnSwitchd(R.id.switch2) als Switch btnSwitch.setOnClickListener {if (btnSwitch.isChecked) {myRef.child ("switch"). SetValue ("1")} else {myRef.child ("switch"). SetValue (" 0 ")}}}
In de onderstaande afbeelding kunt u zien dat als de schakelaar is ingeschakeld, "1" wordt geüpload naar de firebase-database. Evenzo wordt hier een "0" vervangen als de schakelaar wordt uitgeschakeld.
Stap 7: Aan de slag met Arduino
Als u nog niet eerder aan Arduino IDE hebt gewerkt, hoeft u zich geen zorgen te maken, want hieronder wordt stap voor stap weergegeven hoe u de Arduino IDE instelt.
- Download de nieuwste versie van Arduino IDE van Arduino.
- Verbind je Arduino-bord met de pc en open het Configuratiescherm. Klik op Hardware en geluid.Nu open Apparaten en printer en zoek de poort waarop je board is aangesloten. In mijn geval wel COM14, maar het is anders op verschillende computers.
- Klik op Bestand en vervolgens op Voorkeuren. Kopieer de volgende link in het URL van aanvullende Board Manager. "https://dl.espressif.com/dl/package_esp32_index.json ”
- Om ESP32 met Arduino IDE te gebruiken, moeten we speciale bibliotheken importeren waarmee we code op ESP32 kunnen branden en gebruiken. deze twee bibliotheken zijn bijgevoegd in de onderstaande link. Ga naar om de bibliotheek op te nemen Schets> Bibliotheek opnemen> ZIP-bibliotheek toevoegen. Er verschijnt een vak. Zoek de ZIP-map op uw computer en klik op OK om de mappen op te nemen.
- Ga nu naar Schets> Bibliotheek opnemen> Bibliotheken beheren.
- Er wordt een menu geopend. Typ in de zoekbalk Arduino JSON.Er verschijnt een lijst. Installeren Arduino JSON door Benoit Blanchon.
- Klik nu op het Hulpmiddelen.Er verschijnt een vervolgkeuzemenu. Zet het bord op ESP-ontwikkelmodule.
- Klik opnieuw op het menu Tool en stel de poort in die u eerder in het configuratiescherm hebt waargenomen.
- Upload nu de code die is bijgevoegd in de onderstaande link en klik op de uploadknop om de code op het ESP32-microcontroller.
Dus wanneer u de code uploadt, kan er een fout optreden. Dit is de meest voorkomende fout die kan optreden als u een nieuwe versie van de Arduino IDE en de Arduino JSON gebruikt. Hieronder volgen de fouten die u mogelijk op het scherm ziet.
In bestand opgenomen uit C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, vanuit C: \ Users \ Pro \ Desktop \ smartHome \ code \ code.ino: 2: C : \ Users \ Pro \ Documents \ Arduino \ bibliotheken \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: fout: StaticJsonBuffer is een klasse van ArduinoJson 5. Zie arduinojson.org/upgrade om te zien hoe u uw programma kunt upgraden naar ArduinoJson versie 6 StaticJsonBufferjsonBuffer; ^ In bestand opgenomen in C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, vanuit C: \ Users \ Pro \ Desktop \ smartHome \ code \ code.ino: 2: C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: fout: StaticJsonBuffer is een klasse van ArduinoJson 5. Zie arduinojson.org/upgrade om te zien hoe u uw programma kunt upgraden naar ArduinoJson versie 6 retourneert StaticJsonBuffer () .parseObject (_data); ^ Er zijn meerdere bibliotheken gevonden voor "WiFi.h" Gebruikt: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ pakketten \ esp32 \ hardware \ esp32 \ 1.0.2 \ bibliotheken \ WiFi Niet gebruikt: C: \ Program Files ( x86) \ Arduino \ bibliotheken \ WiFi Bibliotheek-WiFi gebruiken op versie 1.0 in map: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ pakketten \ esp32 \ hardware \ esp32 \ 1.0.2 \ bibliotheken \ WiFi Bibliotheek gebruiken IOXhop_FirebaseESP32-master in map: C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master (legacy) Met behulp van bibliotheek HTTPClient op versie 1.2 in map: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ packages \ esp32 \ hardware \ esp32 \ 1.0.2 \ bibliotheken \ HTTPClient Bibliotheek WiFiClientSecure gebruiken op versie 1.0 in map: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ pakketten \ esp32 \ hardware \ esp32 \ 1.0.2 \ bibliotheken \ WiFiClientSecure Bibliotheek ArduinoJson gebruiken op versie 6.12.0 in map: C: \ Users \ Pro \ Documents \ Arduino \ libraries \ ArduinoJson exit status 1 Fout bij compileren voor board ESP32 Dev Module.
U hoeft zich nergens zorgen over te maken, want we kunnen deze fouten verhelpen door enkele eenvoudige stappen te volgen. Deze fouten ontstaan omdat de nieuwe versie van Arduino JSON een andere klasse heeft in plaats van StaticJsonBuffer.Dit is de klasse van JSON 5. We kunnen deze fout dus eenvoudig elimineren door de versie van Arduino JSON van onze Arduino IDE te downgraden. Ga gewoon naar Schets> Bibliotheek opnemen> Bibliotheken beheren.Zoeken naarArduino JSON door Benoit Blanchondie je eerder hebt geïnstalleerd. Verwijder het eerst en stel vervolgens de versie in op 5.13.5. Nu we een oude versie van Arduino JSON hebben ingesteld, installeer je deze opnieuw en compileer je de code opnieuw. Deze keer zal uw code met succes worden gecompileerd.
Klik hier om de code te downloaden.
Stap 8: Het circuit in elkaar zetten
Nu onze app klaar en volledig functioneel is, gaan we kijken hoe we het circuit op de computer gaan aansluiten.
- Neem eerst een schakelbord en sluit alle stekkers van het computersysteem erin aan, d.w.z. monitor, printer, CPU, PSU, enz.
- Pak nu de verbindingsschakelaar van dit bord en maak een snede tussen de draad zodat twee draden, zwart en rood, van binnenuit zichtbaar zijn.
- Haal de rode draad eruit en knip deze in het midden af. Sluit het ene uiteinde van de draad aan op het NO-punt van de relaismodule en het andere uiteinde op het COM-punt van het relaispunt. (doe niets met de zwarte draad)
- Bevestig nu de ESP32 in het breadboard en zet hem aan met een 5V-batterij. Verbind de Vcc en aarde van de relaismodule in het breadboard met de positieve en negatieve aansluitingen van de batterij.
- Maak de volgende configuratie met de transistor op het breadboard.
Stap 9: Code
De code is vrij eenvoudig, maar wordt hieronder toch kort uitgelegd.
1. Bij de start zijn twee bibliotheken meegeleverd zodat firebase kan worden gebruikt met ESP32.
#inclusief#inclusief
2. Vervolgens wordt informatie gegeven over uw firebase-database en de wifi-verbinding en wordt de pin van ESP aangegeven die zal worden gebruikt met de relaismodule.
#define FIREBASE_HOST "xxxxx" // vervang het door uw firebase host #define FIREBASE_AUTH "xxxxx" // vervang het door uw firebase auth #define WIFI_SSID "xxxxx" // vervang dit door uw WIFI SSID #define WIFI_PASSWORD "xxxxx" // vervang het door je wifi-wachtwoord int swi = 34; // verbind pin34 van ESP met relaismodule
3. leegte setup ()is een functie die slechts één keer wordt uitgevoerd wanneer het circuit wordt ingeschakeld of de knop Enable wordt ingedrukt. Hier wordt de code geschreven om de ESP-kaart met de WIFI te verbinden. De pin van het ESP die wordt gebruikt met de relaismodule wordt hier ook als OUTPUT gedeclareerd.
leegte setup () {Serial.begin (115200); pinMode (swi, OUTPUT); // maak verbinding met wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ("verbinden"); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); vertraging (500); } Serial.println (); Serial.print ("verbonden:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }
4. leegte lus () is een functie die herhaaldelijk in een lus wordt uitgevoerd. Hier wordt de waarde van de firebase gelezen. Is deze waarde gelijk aan “1”, dan wordt het HIGH signaal naar de relaismodule gestuurd en zal de computer inschakelen. Als deze waarde "0" is, wordt de computer uitgeschakeld.
void loop () {// lees waarde if (Firebase.getFloat ("switch") == 1) {digitalWrite (swi, HIGH); } else {digitalWrite (swi, LOW); } // afhandelingsfout if (Firebase.failed ()) {Serial.print ("instelling / nummer mislukt:"); Serial.println (Firebase.error ()); terugkeren; } vertraging (1000); }