Lumilikha ng isang Wireless On / Off Switch Para sa Iyong PC

SA Matalino ang system na kumokontrol sa pag-iilaw, mga sistema ng aliwan, at iba pang mga gamit sa bahay ay maaaring madaling idisenyo sa bahay at ito rin ang pinakamabilis na lumalagong konsepto ng modernong mundo. Ang Smart Home Systems ay isang konsepto kung saan ang lahat ng mga de-koryenteng kasangkapan o ang mga aparato ay kinokontrol gamit ang isang solong remote control. Ngayon, ang isang solong sangkap tulad ng isang module ng relay ay maaaring magamit upang makontrol ang iba't ibang mga elektronikong parameter ng isang bahay, halimbawa, paglipat ng mga gamit sa bahay, pagsubaybay sa mga alarma sa seguridad, pag-automate ng pinto ng garahe, atbp. Sa proyektong ito, ang Personal na computer ay makokontrol ng isang Application ng Android . Sa mga sistemang ito, madalas, ang remote control ay isang mobile application. Bilang isang android mobile ay ang pinaka-karaniwan sa mga tao, kaya an android application ay ang pinakamahusay na pagpipilian upang makontrol ang aming PC.



Wireless Computer Switch

Paano Gumawa ng isang Wireless Switch para sa Iyong PC sa Mobile Phone?

Hakbang 1: Pagtitipon sa Mga Bahagi

Upang makagawa ng anumang proyekto, dapat malaman ng isa kung ano ang pangunahing mga sangkap na kakailanganin ng isa upang makumpleto ito. Kaya't ang isang mahusay na diskarte bago simulan ang trabaho ay upang makagawa ng isang kumpletong listahan ng lahat ng mga bahagi upang makatipid ng oras at maiwasan ang pagkakataon na makaalis sa gitna ng proyekto. Ang isang kumpletong listahan ng lahat ng mga bahagi na madaling magagamit sa merkado ay ibinibigay sa ibaba:



  • ESP32
  • 2N2222 NPN Transistor
  • 1k-ohm Resistor (x2)
  • 5V Relay Module
  • Mga kumokonekta na mga wire

Hakbang 2: Mag-install ng Mga Software

Habang gagawa kami ng isang wireless switch, kakailanganin namin ang isang pindutan upang i-on at i-off ito. Nais naming gumamit ng isang mobile phone upang mapatakbo ang pindutang ito kaya kakailanganin naming bumuo ng isang application para doon. Ang pinaka-maginhawang application ay isang android application. Kailangan naming mag-install ng dalawang software upang magamit ang application na ito. Kapwa nakalista ang mga ito sa ibaba:



  • Android Studio.
  • JAVA JDK.

Hakbang 3: Pag-install ng Android Studio

Bago i-install ang Android Studio, mag-install kami JAVA JDK muna. Upang mai-install ito, mag-click sa exe file na na-download mo mula sa itaas na link, at i-click ang susunod hanggang sa matagumpay itong na-install. Ngayon dumaan sa mga sumusunod na hakbang upang makilala ng iyong prompt ng utos ang java bilang isang panlabas o panloob na utos.



  1. Buksan Control Panel at mag-click sa Sistema at Seguridad .
  2. Mag-click sa Sistema .

    Sistema

  3. Mag-click sa Advanced na Pagtatakda ng System at pagkatapos ay mag-click sa Mga variable sa Kapaligiran .

    Advanced na Pagtatakda ng System

  4. Sa seksyong Variable ng System, mag-click sa landas at pagkatapos ay mag-click sa pag-edit. Isang bago I-edit ang Variable sa Kapaligiran lilitaw ang kahon.

    I-edit ang Path



  5. Ngayon punta ka na C: Program Files Java sa iyong PC. Buksan ang folder na JDK, mag-click sa folder ng bin at pagkatapos kopyahin ang landas ng folder na iyon.

    Path ng folder ng bin

  6. Pumunta ngayon sa kahon ng Mag-edit ng Kapaligiran na variable at mag-click sa bago upang makagawa ng isang bagong variable. I-paste ang landas na kinopya mo sa hakbang sa itaas sa bagong variable at i-save ito.
  7. Ngayon upang kumpirmahin, kung ito ay kumpletong naka-install, buksan ang command prompt at uri java –pagpalit .

    Bersyon ng JAVA

Ngayon bilang matagumpay mong na-install ang Java JDK sa iyong computer. Ipaalam sa amin ngayon i-install ang Android Studio sa iyong computer. Napakadali ng pag-install ng software na ito. Kailangan mong buksan ang na-download na file at mag-click sa susunod hanggang sa ganap na mai-install ang iyong software.

Hakbang 4: Koneksyon Sa Firebase

Ngayon dahil na-install namin ang Android Studio, ilunsad namin ito at gumawa ng isang bagong proyekto upang ikonekta ito sa firebase. Upang magawa ito, sundin ang mga sumusunod na hakbang.

1. Ilunsad ang Android Studio at gumawa ng isang bagong proyekto sa pamamagitan ng pag-click sa Walang laman na Gawain .

Bagong proyekto

2. Ngayon pangalanan ang iyong proyekto bilang computerSwitc, pumili ka Kotlin bilang wika, at piliin ang minimum na antas ng API alinsunod sa iyong mobile phone.

Bagong proyekto

3. Dahil gagamitin namin ang internet upang makontrol ang mga pin ng raspberry pi. Magtatakda kami ng pahintulot sa aming app na mag-access sa lokal na wifi. Upang gawin ito, pumunta sa app> manifests> AndroidManifest.xml at idagdag ang sumusunod na utos.

 

Pahintulot sa Internet

3. Ngayon, i-click ang n Mga kasangkapan. Ang isang drop-down na menu ay lilitaw mula sa kung saan, piliin Firebase.

Koneksyon sa Firebase

4. Ang isang malaking menu ay lilitaw sa kanang bahagi ng screen na magbibigay ng menu ng halos bawat serbisyo na ibinibigay ng firebase. Ngunit sa ngayon ang aming pangunahing pokus ay sa Real-Time Database. Kaya mag-click sa Real-Time Database. Isang link sa “ I-save at Kunin ang Data ”Lilitaw. I-click ang link na iyon.

Katulong sa Firebase

5. kumonekta sa Kumonekta Sa Firebase pindutan Dadalhin ka nito sa default na web browser. Una, hihilingin sa iyo na mag-log in sa iyong Gmail account. Pagkatapos mag-click sa Idagdag ang Realtime Database sa iyong app at tanggapin ang mga pagbabago.

6. Ngayon punta ka na Firebase Console . Makikita mo doon ang isang proyekto na nagawa. Ang logo ng android sa icon ng projet na iyon ay nangangahulugang kabilang na ito sa isang android application.

7. Mula sa Bumuo ang menu na lilitaw sa kaliwang bahagi ng screen, piliin ang Database. Isang pindutan ng Lumikha ng Database lilitaw sa kanan. Mag-click sa pindutang iyon.

8. Lilitaw ang isang menu na humihiling na itakda ang mode ng iyong database. Mag-click sa mode ng pagsubok at pagkatapos ay mag-click Paganahin .

Mode ng Pagsubok

9. Ngayon isang talagang mahalagang hakbang na dapat tandaan ay baguhin ang Cloud Firestore sa Real-Time Database. Upang magawa ito mag-click sa pindutan na ipinapakita sa imahe sa ibaba at baguhin ang nais na pagpipilian.

Realtime Firebase

10. Ngayon mag-click sa Panuntunan tab at baguhin ang mga pagsasaayos sa Totoo . Kapag tapos na ang lahat, mag-click Ilathala .

Pagbabago ng Mga Configurasyon

11. Ang isang bagay na kailangan mong gawin maliban sa pagkonekta sa firebase, ay ang i-update ang bersyon ng database. Para doon, mag-click sa pumunta sa docs . Ngayon mag-click sa mga gabay at piliin Mga Gabay sa Android mula sa listahan na lilitaw sa screen. Mag-scroll pababa hanggang sa lumitaw ang isang talahanayan. Maghanap ng Real-Time Database sa talahanayan na iyon at hanapin ang bersyon nito. sa aking kaso, ito ay 19.1.0

Bersyon

12. Mag-click sa Gradle Script, isang menu sa kaliwang bahagi ng screen. Pagkatapos piliin itinayo gradle (Modyul: app). Ngayon sa code, hanapin ang bersyon ng database ng Real-Time at palitan ito ng bago.

Bersyon ng Firebase

13. Ngayon i-sync ang proyekto sa pamamagitan ng pag-click sa pindutan ng pag-sync na lumilitaw sa tuktok ng screen.

Hakbang 5: Paggawa ng Layout

Ngayon, habang ang aming android application ay konektado sa firebase, gumawa kami ng isang layout ng aming app na gagamitin ng gumagamit upang buksan o patayin ang computer. Upang makagawa ng isang layout, pumunta sa app> res> layout> aktibidad_main.xml. kung saan magdidisenyo kami ng isang layout. Kopyahin ang code na ibinigay sa ibaba doon upang makagawa ng isang text view.

 

Ganito ang magiging hitsura ng layout ng aming app:

Layout ng App

Hakbang 6: Backend Coding sa Kotlin

Tulad ng ginawa namin sa harap ng application, ilipat natin ang isang hakbang nang maaga at isulat ang backend code upang ikonekta ito sa firebase. Nakakonekta namin ang isang toggle switch na magpapadala ng 0 sa firebase database kapag wala sa estado, at magpapadala ito ng 1 sa firebase database kapag nasa estado ito.

Ngayon, sa kaliwang sulok, mag-click sa app> java> com.example.computerswitch> main_activity, at idagdag ang sumusunod na code doon sa iyong klase. Kung mayroong anumang error sa library, Pindutin ang ALT + ENTER upang maisama ang library na iyon nang awtomatiko.

var database = FirebaseDatabase.getInstance () var myRef = database.referensya panloob na lateinit var btnSwitch: Lumipat sa override na masaya saCreate (saveInstanceState: Bundle?) {super.onCreate (saveInstanceState) setContentView (R.layout.activity_main) btnSwitchd = findView. id.switch2) bilang Switch btnSwitch.setOnClickListener {if (btnSwitch.isChecked) {myRef.child ('switch'). setValue ('1')} iba pa {myRef.child ('switch'). setValue ('0') }}}

Sa imahe sa ibaba, makikita mo na kung nakabukas ang switch, ang '1' ay na-upload sa firebase database. Katulad nito, isang '0' ay papalitan dito kapag ang nakabukas ay naka-patay.

Halaga

Hakbang 7: Pagsisimula Sa Arduino

Kung hindi ka pa nagtrabaho sa Arduino IDE dati, huwag mag-alala dahil ang isang hakbang-hakbang na pag-set up ng Arduino IDE ay ipinapakita sa ibaba.

  1. I-download ang pinakabagong bersyon ng Arduino IDE mula sa Arduino.
  2. Ikonekta ang iyong Arduino board sa PC at buksan ang Control Panel. Mag-click sa Hardware at Sound. Bukas na Mga Device at Printer at hanapin ang port kung saan nakakonekta ang iyong board. Sa aking kaso ito ay COM14, ngunit iba ito sa iba`t ibang mga computer.

    Paghanap ng Port

  3. Mag-click sa File at pagkatapos ay mag-click sa Mga Kagustuhan. Kopyahin ang sumusunod na link sa URL ng Karagdagang Board Manager. ' https://dl.espressif.com/dl/package_esp32_index.json '

    Mga Kagustuhan

  4. Ngayon, upang magamit ang ESP32 sa Arduino IDE, kailangan naming mag-import ng mga espesyal na aklatan na magpapahintulot sa amin na magsunog ng code sa ESP32 at magamit ito. ang dalawang aklatan na ito ay nakakabit sa link na ibinigay sa ibaba. Upang isama ang library, goto Sketch> Isama ang Library> Magdagdag ng ZIP Library . May lalabas na isang kahon. Hanapin ang ZIP folder sa iyong computer at i-click ang OK upang isama ang mga folder.

    Isama ang Library

  5. Ngayon goto Sketch> Isama ang Library> Pamahalaan ang Mga Aklatan.

    Pamahalaan ang Mga Aklatan

  6. Magbubukas ang isang Menu. Sa search bar, i-type Arduino JSON. Lilitaw ang isang listahan. I-install Arduino JSON ni Benoit Blanchon.

    Arduino JSON

  7. Ngayon mag-click sa Mga kasangkapan. Lilitaw ang isang dropdown menu. Itakda ang board sa Module ng Dev Dev.

    Setting Board

  8. Mag-click muli sa menu ng Tool at itakda ang port na napansin mo sa control panel dati.

    Setting Port

  9. Ngayon i-upload ang code na nakakabit sa link sa ibaba at mag-click sa upload button upang sunugin ang code sa Microcontroller ng ESP32 .

    I-upload

Kaya't ngayon kapag na-upload mo ang code, maaaring maganap ang isang error. Ito ang pinakakaraniwang error na maaaring mangyari kung gumagamit ka ng isang bagong bersyon ng Arduino IDE at ng Arduino JSON. Ang mga sumusunod ay ang mga error na maaari mong makita sa screen.

Sa file na kasama mula sa C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, mula sa C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: Ang StaticJsonBuffer ay isang klase mula sa ArduinoJson 5. Mangyaring tingnan ang arduinojson.org/pag-upgrade upang malaman kung paano i-upgrade ang iyong programa sa ArduinoJson bersyon 6 StaticJsonBuffer jsonBuffer; ^ Sa file na kasama mula sa C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, mula sa C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: error: Ang StaticJsonBuffer ay isang klase mula sa ArduinoJson 5. Mangyaring tingnan ang arduinojson.org/pag-upgrade upang malaman kung paano i-upgrade ang iyong programa sa ArduinoJson bersyon 6 ibalik ang StaticJsonBuffer (). ParseObject (_data); ^ Maraming mga aklatan ang natagpuan para sa 'WiFi.h' Ginamit: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  library  WiFi Hindi nagamit: C:  Program Files ( x86)  Arduino  libraries  WiFi Paggamit ng library WiFi sa bersyon 1.0 sa folder: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Paggamit ng library IOXhop_FirebaseESP32-master sa folder: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (legacy) Paggamit ng library HTTPClient sa bersyon 1.2 sa folder: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Paggamit ng library WiFiClientSecure sa bersyon 1.0 sa folder: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Paggamit ng library ArduinoJson sa bersyon 6.12.0 sa folder: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson exit status 1 Error sa pag-compile para sa board ng ESP32 Dev Module.

Walang dapat ikabahala dahil maaari nating alisin ang mga error na ito sa pamamagitan ng pagsunod sa ilang mga simpleng hakbang. Ang mga error na ito ay nagmumula dahil ang bagong bersyon ng Arduino JSON ay may ibang klase sa halip StaticJsonBuffer. Ito ang klase ng JSON 5. Kaya maaari lamang naming matanggal ang error na ito sa pamamagitan ng pag-downgrade ng bersyon ng Arduino JSON ng aming Arduino IDE. Pumunta lamang sa Sketch> Isama ang Library> Pamahalaan ang Mga Aklatan. Maghanap para sa Arduino JSON ni Benoit Blanchon na na-install mo na dati. Uninstall muna ito at pagkatapos ay itakda ang bersyon nito sa 5.13.5. Ngayon na nagtatakda kami ng isang lumang bersyon ng Arduino JSON, muling i-install ito at muling magkumpuni ng code. Sa oras na ito, ang iyong code ay matagumpay na makakabuo.

Upang mai-download ang code, mag-click dito

Hakbang 8: Pag-iipon ng Circuit

Ngayon dahil handa at kumpleto ang pag-andar ng aming app, tingnan natin kung paano namin ikonekta ang circuit sa computer.

  1. Una sa lahat, kumuha ng isang switchboard at ikonekta ang lahat ng mga plugs ng computer system dito ie Monitor, printer, CPU, PSU, atbp.
  2. Ngayon kunin ang switch ng pagkonekta ng board na ito at gumawa ng hiwa sa pagitan ng kawad upang ang dalawang wires, itim at pula, ay makikita mula sa loob.
  3. Kunin ang pulang kawad at gupitin ito mula sa gitna. Ikonekta ang isang dulo ng kawad sa WALANG punto ng module ng relay at ang iba pang dulo sa COM point ng relay point. (huwag gumawa ng anumang bagay sa itim na kawad)
  4. Ngayon ayusin ang ESP32 sa breadboard at i-power ito gamit ang isang 5V na baterya. Ikonekta ang Vcc at ground ng module ng Relay sa breadboard, gamit ang positibo at negatibong mga terminal ng baterya.
  5. Gawin ang sumusunod na pagsasaayos gamit ang transistor sa breadboard.

Hakbang 9: Code

Ang code ay medyo simple, ngunit pa rin, ito ay maikling ipinaliwanag sa ibaba.

1. Sa simula, kasama ang dalawang aklatan upang magamit ang firebase sa ESP32.

# isama ang # isama

2. Pagkatapos ang impormasyon tungkol sa iyong firebase database at ang koneksyon sa Wifi ay ibinigay at ang pin ng ESP ay idineklara na gagamitin sa relay module.

#define FIREBASE_HOST 'xxxxx' // palitan ito ng iyong firebase host #define FIREBASE_AUTH 'xxxxx' // palitan ito ng iyong firebase auth #define WIFI_SSID 'xxxxx' // palitan ito ng iyong WIFI SSID #define WIFI_PASSWORD 'xxxxx' // palitan ito ng iyong wifi password int swi = 34; // ikonekta ang pin34 ng ESP na may relay module

3. walang bisa ang pag-setup () ay isang pagpapaandar na tumatakbo lamang ng isang beses kapag ang circuit ay pinapagana o ang Enable button ay pinindot. Narito ang code na nakasulat t ikonekta ang board ng ESP sa WIFI. Ang pin ng ESP na ginamit sa module ng relay ay idineklara rin bilang OUTPUT dito.

void setup () {Serial.begin (115200); pinMode (swi, OUTPUT); // kumonekta sa wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('pagkonekta'); habang (WiFi.status ()! = WL_CONNected) {Serial.print ('.'); pagkaantala (500); } Serial.println (); Serial.print ('konektado:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

Apat. walang bisa loop () ay isang pagpapaandar na paulit-ulit na tumatakbo sa isang loop. Dito, nabasa ang halaga mula sa firebase. Kung ang halagang ito ay katumbas ng '1', pagkatapos ang HIGH signal ay ipapadala sa module ng relay at ang computer ay bubuksan. Kapag ang halagang ito ay '0', papatayin ang computer.

void loop () {// read value if (Firebase.getFloat ('switch') == 1) {digitalWrite (swi, HIGH); } iba pa {digitalWrite (swi, LOW); } // hawakan ang error kung (Firebase.failed ()) {Serial.print ('setting / number failed:'); Serial.println (Firebase.error ()); bumalik; } pagkaantala (1000); }