Oprettelse af en trådløs tænd / sluk-kontakt til din pc

EN Smart et system, der styrer belysningen, underholdningssystemer og andre apparater, kan let designes derhjemme og er også det hurtigst voksende koncept i den moderne verden. Smart Home Systems er et koncept, hvor alle elektriske apparater eller enheder styres ved hjælp af en enkelt fjernbetjening. I dag kan en enkelt komponent som et relæmodul bruges til at styre forskellige elektroniske parametre i et hus, for eksempel skifte af husholdningsapparater, overvågning af sikkerhedsalarmer, garageportautomatisering osv. I dette projekt er vores Personlig computer vil blive styret af en Android-applikation. I disse systemer er fjernbetjeningen det meste af tiden en mobil applikation. Som en Android-mobil er den mest almindelige blandt folket, så en Android-applikation er den bedste mulighed for at kontrollere vores pc.

Sådan oprettes en trådløs switch til din pc på mobiltelefonen?

Trin 1: Samling af komponenterne

For at lave ethvert projekt skal man vide, hvad de grundlæggende komponenter, som man har brug for for at fuldføre det, er. Så en god tilgang, inden arbejdet påbegyndes, er at lave en komplet liste over alle komponenterne for at spare tid og undgå chancen for at sidde fast midt i projektet. En komplet liste over alle de komponenter, der let er tilgængelige på markedet, er angivet nedenfor:

Trin 2: Software, der skal installeres

Da vi skal lave en trådløs switch, har vi brug for en knap til at tænde og slukke for den. Vi vil bruge en mobiltelefon til at betjene denne knap, så vi bliver nødt til at udvikle en applikation til det. Den mest bekvemme applikation er en Android-applikation. Vi skal installere to software for at bruge denne applikation. Begge er anført nedenfor:

Trin 3: Installation af Android Studio

Før vi installerer Android Studio, installerer vi JAVA JDK først. For at installere dette skal du klikke på exe fil som du downloadede fra ovenstående link, og klik på næste, indtil den er installeret. Gå nu gennem følgende trin, så din kommandoprompt genkender java som en ekstern eller intern kommando.

  1. Åben Kontrolpanel og klik på System og sikkerhed.
  2. Klik på System.
  3. Klik på Avanceret systemindstilling og klik derefter på Miljøvariabler.
  4. I sektionen Systemvariabel skal du klikke på stien og derefter klikke på rediger. Et nyt Rediger miljøvariabelfeltet vises.
  5. Gå nu til C: \ Programmer \ Java på din pc. Åbn JDK-mappen, klik på bin-mappen og kopier derefter stien til den pågældende mappe.
  6. Gå nu til boksen Rediger miljøvariabel og klik på ny for at oprette en ny variabel. Indsæt den sti, du kopierede i ovenstående trin i den nye variabel, og gem den.
  7. Nu for at bekræfte, hvis det er helt installeret, skal du åbne kommandoprompt og skrive java –version.

Nu som du har installeret Java JDK med succes på din computer. Lad os nu installere Android Studio på din computer. Installation af denne software er meget let. Du skal åbne den downloadede fil og klikke på næste, indtil din software er fuldt installeret.

Trin 4: Forbindelse til Firebase

Nu, da vi har installeret Android Studio, lad os starte det og lave et nyt projekt for at forbinde det til firebase. For at gøre dette skal du følge følgende trin.

1. Start Android Studio, og lav et nyt projekt ved at klikke på Tom aktivitet.

2. Navngiv nu dit projekt som computerSwitc,Vælg Kotlinsom sprog, og vælg minimum API-niveau i henhold til din mobiltelefon.

3. da vi skal bruge internettet til at kontrollere stifterne på hindbær pi. Vi indstiller tilladelse i vores app til at få adgang til lokal wifi. For at gøre dette skal du gå til app> manifesterer> AndroidManifest.xml og tilføj følgende kommando.

3. Klik nu på n Værktøjer.En rullemenu vises, hvorfra du vælger Firebase.

4. En stor menu vises på højre side af skærmen, der giver menuen for næsten alle tjenester, som firebase leverer. Men lige nu er vores hovedfokus på realtidsdatabase. Så klik på Realtidsdatabase. Et link til “Gem og hent data”Vises. Klik på dette link.

5. Tilslut Opret forbindelse til Firebaseknap. Det fører dig til standardwebbrowseren. For det første beder den dig om at logge ind på din Gmail-konto. Klik derefter på Føj Realtime Database til din appog accepter ændringerne.

6. Gå nu til Firebase Console. Der vil du se et allerede lavet projekt. Android-logoet på projektets ikon betyder, at det allerede hører til en Android-applikation.

7. Fra Udvikle menu, der vises på venstre side af skærmen, skal du vælge Database. En knap til Opret database vises til højre. Klik på den knap.

8. En menu vises, der beder om at indstille tilstanden til din database. Klik på test modeog klik derefter på Aktiver.

9. Nu er et virkelig vigtigt skridt at huske at ændre Cloud Firestore til Realtidsdatabase.For at gøre det skal du klikke på knappen vist i nedenstående billede og ændre den ønskede mulighed.

10. Klik nu på Regler fanen, og skift konfigurationerne til Rigtigt. Når alt er gjort, skal du klikke på Offentliggøre.

11. En ting, du skal gøre andet end at forbinde firebase, er at opdatere databaseversionen. For at klikke på gå til dok. Klik nu på guiderog vælg Android-vejledningerfra listen, der vises på skærmen. Rul ned, indtil en tabel vises. Se efter realtidsdatabase i tabellen, og find dens version. i mit tilfælde er det 19.1.0

12. Klik på Gradle-scripts,en menu på venstre side af skærmen. Vælg derefter bygget. gradle (Modul: app). Nu i koden skal du søge efter versionen af ​​Real-Time-databasen og erstatte den med den nye.

13. Synkroniser nu projektet ved at klikke på synkroniseringsknappen, der vises øverst på skærmen.

Trin 5: Lav layout

Nu, da vores Android-applikation er forbundet til firebase, lad os lave et layout af vores app, der vil blive brugt af brugeren til at tænde eller slukke for computeren. For at lave et layout skal du gå til app> res> layout> activity_main.xml. hvor vi vil designe et layout. Kopiér nedenstående kode for at få en tekstvisning.

    

Layoutet på vores app vil se sådan ud:

Trin 6: Backend-kodning i Kotlin

Da vi har lavet frontend af applikationen, lad os bevæge os et skridt foran og skrive backend-koden for at forbinde den med firebase. Vi har tilsluttet en vippekontakt, der sender en 0 til firebase-databasen, når den er i slukket tilstand, og den sender en 1 til firebase-databasen, når den er i tændt tilstand.

Klik nu på i venstre hjørne app> java> com.example.computerswitch> main_activity,og tilføj følgende kode der i din klasse. Hvis der opstår en fejl i biblioteket, skal du trykke på ALT + ENTER at inkludere dette bibliotek automatisk.

var database = FirebaseDatabase.getInstance () var myRef = database.reference intern lateinit var btnSwitch: Switch override fun onCreate (savedInstanceState: Bundle?) {super.onCreate (savedInstanceState) setContentView (R.layout.activity_main) btnSwitch = find(R.id.switch2) som Switch btnSwitch.setOnClickListener {if (btnSwitch.isChecked) {myRef.child ("switch"). SetValue ("1")} ellers {myRef.child ("switch"). SetValue (" 0 ")}}}

I nedenstående billede kan du se, at hvis kontakten er tændt, overføres "1" til firebase-databasen. Tilsvarende erstattes her en "0", når kontakten er slukket.

Trin 7: Kom godt i gang med Arduino

Hvis du ikke har arbejdet med Arduino IDE før, skal du ikke bekymre dig, fordi der vises trin for trin for at konfigurere Arduino IDE nedenfor.

  1. Download den nyeste version af Arduino IDE fra Arduino.
  2. Tilslut dit Arduino-kort til pc'en, og åbn Kontrolpanel. Klik på Hardware og lyd.Nu åben Enheder og printer og find den port, som dit kort er tilsluttet. I mit tilfælde er det COM14, men det er anderledes på forskellige computere.
  3. Klik på File og derefter på Preferences. Kopier følgende link i Ekstra bestyrelsesleder URL. “https://dl.espressif.com/dl/package_esp32_index.json ”
  4. For at bruge ESP32 med Arduino IDE skal vi nu importere specielle biblioteker, der giver os mulighed for at brænde kode på ESP32 og bruge den. disse to biblioteker er vedhæftet i nedenstående link. For at inkludere biblioteket, gå til Skitse> Inkluder bibliotek> Tilføj ZIP-bibliotek. En boks vises. Find ZIP-mappen på din computer, og klik på OK for at inkludere mapperne.
  5. Nu goto Skitse> Inkluder bibliotek> Administrer biblioteker.
  6. En menu åbnes. Skriv i søgefeltet Arduino JSON.En liste vises. Installere Arduino JSON af Benoit Blanchon.
  7. Klik nu på Værktøjer.En rullemenu vises. Indstil tavlen til ESP Dev-modul.
  8. Klik på værktøjsmenuen igen, og indstil den port, du har observeret i kontrolpanelet før.
  9. Upload nu koden, der er vedhæftet i nedenstående link, og klik på upload-knappen for at brænde koden på ESP32 mikrokontroller.

Så nu når du uploader koden, kan der opstå en fejl. Dette er den mest almindelige fejl, der kan opstå, hvis du bruger en ny version af Arduino IDE og Arduino JSON. Følgende er de fejl, du kan se på skærmen.

I filen inkluderet fra C: \ Brugere \ Pro \ Dokumenter \ Arduino \ biblioteker \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, fra C: \ Brugere \ Pro \ Desktop \ smartHome \ kode \ code.ino: 2: C : \ Brugere \ Pro \ Dokumenter \ Arduino \ biblioteker \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: fejl: StaticJsonBuffer er en klasse fra ArduinoJson 5. Se arduinojson.org/upgrade for at lære, hvordan du opgraderer dit program til ArduinoJson version 6 StaticJsonBuffer jsonBuffer; ^ I filen inkluderet fra C: \ Brugere \ Pro \ Dokumenter \ Arduino \ biblioteker \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, fra C: \ Brugere \ Pro \ Desktop \ smartHome \ kode \ code.ino: 2: C: \ Brugere \ Pro \ Dokumenter \ Arduino \ biblioteker \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: fejl: StaticJsonBuffer er en klasse fra ArduinoJson 5. Se arduinojson.org/upgrade for at lære at opgradere dit program til ArduinoJson version 6 returnerer StaticJsonBuffer() .parseObject (_data); ^ Der blev fundet flere biblioteker til "WiFi.h" Brugt: C: \ Brugere \ Pro \ AppData \ Lokal \ Arduino15 \ pakker \ esp32 \ hardware \ esp32 \ 1.0.2 \ biblioteker \ WiFi Ikke brugt: C: \ Program Files ( x86) \ Arduino \ biblioteker \ WiFi Brug af bibliotek WiFi i version 1.0 i mappe: C: \ Brugere \ Pro \ AppData \ Lokalt \ Arduino15 \ pakker \ esp32 \ hardware \ esp32 \ 1.0.2 \ biblioteker \ WiFi Brug af bibliotek IOXhop_FirebaseESP32-master i mappe: C: \ Brugere \ Pro \ Dokumenter \ Arduino \ biblioteker \ IOXhop_FirebaseESP32-master (arv) Brug af bibliotek HTTPClient i version 1.2 i mappe: C: \ Brugere \ Pro \ AppData \ Lokalt \ Arduino15 \ pakker \ esp32 \ hardware \ esp32 \ 1.0.2 \ biblioteker \ HTTPClient Brug af bibliotek WiFiClientSecure ved version 1.0 i mappe: C: \ Brugere \ Pro \ AppData \ Local \ Arduino15 \ pakker \ esp32 \ hardware \ esp32 \ 1.0.2 \ biblioteker \ WiFiClientSecure Brug af bibliotek ArduinoJson på version 6.12.0 i mappe: C: \ Brugere \ Pro \ Dokumenter \ Arduino \ biblioteker \ ArduinoJson exitstatus 1 Fejl ved kompilering til ESP32 Dev-modul.

Der er intet at bekymre sig om, fordi vi kan fjerne disse fejl ved at følge nogle enkle trin. Disse fejl opstår, fordi den nye version af Arduino JSON har en anden klasse i stedet for StaticJsonBuffer.Dette er klassen af ​​JSON 5. Så vi kan simpelthen fjerne denne fejl ved at nedgradere versionen af ​​Arduino JSON af vores Arduino IDE. Gå bare til Skitse> Inkluder bibliotek> Administrer biblioteker.Søge efterArduino JSON af Benoit Blanchonsom du har installeret før. Afinstaller det først, og sæt derefter dets version til 5.13.5. Nu, da vi har indstillet en gammel version af Arduino JSON, skal du installere den igen og kompilere koden igen. Denne gang kompileres din kode med succes.

Klik her for at downloade koden.

Trin 8: Samling af kredsløbet

Nu, da vores app er klar og fuldt funktionel, lad os se, hvordan vi forbinder kredsløbet til computeren.

  1. Først og fremmest skal du tage et omstillingsbord og tilslutte alle stikkene til computersystemet i det, dvs. skærm, printer, CPU, PSU osv.
  2. Tag nu forbindelseskontakten på dette kort og lav et snit imellem ledningen, så to ledninger, sorte og røde, er synlige indefra.
  3. Tag den røde ledning ud og skær den fra midten. Tilslut den ene ende af ledningen i relæmodulets NO-punkt og den anden ende i relæpunktets COM-punkt. (gør ikke noget med den sorte ledning)
  4. Fix nu ESP32 i brødpladen, og tænd for den ved hjælp af et 5V batteri. Forbind Vcc og jord på relæmodulet i brødpladen med de positive og negative poler på batteriet.
  5. Lav følgende konfiguration med transistoren på brødbrættet.

Trin 9: Kode

Koden er ret enkel, men den forklares stadig kort nedenfor.

1. I starten er to biblioteker inkluderet, så firebase kan bruges med ESP32.

#omfatte #omfatte 

2. Derefter gives oplysninger om din firebase-database og Wifi-forbindelsen, og der erklæres pin af ESP, der vil blive brugt sammen med relæmodulet.

#definer FIREBASE_HOST "xxxxx" // udskift den med din firebase-vært #definer FIREBASE_AUTH "xxxxx" // udskift den med din firebase-godkendelse #definer WIFI_SSID "xxxxx" // erstat denne med din WIFI SSID #definer WIFI_PASSWORD "xxxxx // erstat det med din wifi-adgangskode int swi = 34; // tilslut pin34 af ESP med relæmodul

3. ugyldig opsætning ()er en funktion, der kun kører en gang, når kredsløbet er tændt, eller der trykkes på Enable-knappen. Her er koden skrevet for at forbinde ESP-kortet til WIFI. Stiften på ESP, der bruges sammen med relæmodulet, erklæres også her som OUTPUT.

ugyldig opsætning () {Serial.begin (115200); pinMode (swi, OUTPUT); // opret forbindelse til wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ("forbinder"); mens (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); forsinkelse (500); } Serial.println (); Serial.print ("forbundet:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

4. ugyldig sløjfe () er en funktion, der kører gentagne gange i en løkke. Her læses værdien fra firebasen. Hvis denne værdi er lig med “1”, sendes HIGH-signalet til relæmodulet, og computeren tændes. Når denne værdi er “0”, slukkes computeren.

void loop () {// read value if (Firebase.getFloat ("switch") == 1) {digitalWrite (swi, HIGH); } andet {digitalWrite (swi, LOW); } // håndteringsfejl, hvis (Firebase.failed ()) {Serial.print ("setting / number failed:"); Serial.println (Firebase.error ()); Vend tilbage; } forsinkelse (1000); }
Facebook Twitter Google Plus Pinterest