Innholdsfortegnelse:

KiKi Keyboard Bot: 5 trinn
KiKi Keyboard Bot: 5 trinn

Video: KiKi Keyboard Bot: 5 trinn

Video: KiKi Keyboard Bot: 5 trinn
Video: Полный курс по Next js - Изучи Nextjs за 2 часа! | React SSR +таймкоды 2024, Juli
Anonim
KiKi Keyboard Bot
KiKi Keyboard Bot

Jeg trenger ganske ofte å koble til PC -en min fra jobb, men jeg liker ikke å la den stå på hele tiden. Problemet er at min gamle pc ikke støtter WOL. Den kan imidlertid sovne og vekkes opp igjen med av / på -tasten på tastaturet. Imidlertid er det ingen hjemme enn hunden som skal få den til å leve og så …

KiKi the KeyboardBot ble født.

Den vil koble til hjemmeassistent over MQTT og har også en veldig enkel frittstående webside, den er ikke pen, men den får jobben gjort.

Rekvisita

3D PrinterPLA -filament

Avbitertang

Wire strippere

Loddejern

Wemos D1 Mini

Micro 9G Servo

Trinn 1: Skrive ut etuiet og Servo Horn Extension

Skrive ut esken og servohornsforlengelsen
Skrive ut esken og servohornsforlengelsen

Først starter du med å skrive ut saken, jeg gir SKP -filen hvis du skulle tenke på det i Sketchup (Maker Edition). Jeg har også pakket STL -filen hvis du bare vil fortsette og laste den inn i skiven din og få den skrevet ut uendret.

Jeg skrev ut saken uten støtter som den første jeg skrev ut det var en bugger å fjerne dem, mangel på støtter fungerte bra skjønt, det var en liten bit av sagg, men når det hele montert opp sin fine.

Jeg skrev ut med en sengetemperatur på 50 og en ekstrudertemperatur på 200 som var anbefalt for filamentet jeg brukte.

Som med saken gir jeg også SKP- og STL -filene for servohornet, servohornet ble ikke skrevet ut ordentlig for meg, til slutt klippet jeg bare av monteringshylsen og limte den, kablet den på en av originalene horn da jeg var utålmodig for å få dette til å fungere.

Trinn 2: Montering

montering
montering
montering
montering
montering
montering

Fjern 3 -pinners topptekst fra enden av servolederen.

Stikk ledningen gjennom servo -utsparingen i saken og ut gjennom utgangshullet i siden.

Legg nå ledningen forsiktig ned på siden av servoen og sett den over saken slik at ledningen sitter i fordypningen inne i hullet for servoen, trekk ledningen tett og skyv servoen forsiktig hjem, det skal være fint tettsittende passform.

Kle ledningen inn i fordypningen på utsiden av saken og stikk den gjennom fordypningen til D1 Mini. Rull kabelen tilbake og stikk den tilbake igjen slik at den ser ganske ryddig ut i saken.

Skyv D1 Mini inn i huset med WiFi -modulen til toppen. Ledningen skal sitte over toppen av modulen og deretter mates tilbake under kretskortet.

Du kan nå kutte servokabelen til en akseptabel lengde.

Fjern D1 Mini ved å skyve den fra motsatt side av kretskortet til USB -kontakten.

Når den er fjernet, skilles den fra hverandre, stripes og tinnes de tre ledningene til ledningen.

Lod dem til undersiden av kretskortet i følgende rekkefølge.

Rød -> 5V

Brun -> GND

Oransje -> D4

De tre pinnene er alle ved siden av hverandre, så det er enkelt å holde ledningen ryddig.

Brett nå ledningen forsiktig under brettet mot midten og hold den fin og flat, rull den over toppen av brettet og skyv brettet forsiktig hjem. Ikke skyv D1 helt inn, la den stikke langt nok ut, så det er enkelt å koble USB -kabelen til, og du kan komme til tilbakestillingsknappen.

Hvis du klarte å få trykket hornet slik at det passer over kapstanen på servoen, monter det nå slik at toppen av hornet er mer eller mindre parallelt med arbeidsplaten. Fest det på plass med den lille skruen som fulgte med servoen.

Hvis du ikke klarte å få trykket hornet, klipp av hylsen og fest den til et av hornene som fulgte, superlim og et par små kabelbånd gjorde jobben for meg.

Trinn 3: Blinker

Last ned ino -filen til arduino -prosjektfilen til en mappe calle KiKi.

Åpne filen i Arduino IDE.

Rediger følgende linjer slik at de passer til ditt Home Assistant -oppsett.

25 const PROGMEM uint16_t MQTT_SERVER_PORT = 1883; (hvis du har endret standardporten)

26 const PROGMEM char* MQTT_CLIENT_ID = "HostName";

27 const PROGMEM char* MQTT_USER = "MQTTUSER";

28 const PROGMEM char* 28 MQTT_PASSWORD = "MQTTPASS";

For MQTT STATE og COMMAND -emnene liker jeg å bestille stedet/enheten/(status/switch), men du kan bruke hvilken konvensjon du vil.

29 const char* MQTT_ROBOT_STATE_TOPIC = "plassering/pc/status"; const char*

30 MQTT_ROBOT_COMMAND_TOPIC = "location/pc/switch";

Rediger nå disse ytterligere linjene for å angi enhetens vertsnavn.

159 wifi_station_set_hostname ("HOSTNAME");

169 if (! WifiManager.autoConnect ("HOSTNAME")) {

Angi det fullt kvalifiserte domenenavnet til MQTT -serveren.

175 WiFi.hostByName ("MQTTSERVER", MQTT_SERVER_IP);

Koble D1 Mini til PC -en og velg COM -porten den er montert på.

Åpne Serial Monitor.

Last opp filen.

Når opplastingen er fullført, sjekk den serielle skjermen.

Hvis det er et nytt kort, vil det ikke være noen innstillinger, og du må koble til det trådløse tilgangspunktet det oppretter, og velg deretter det riktige trådløse nettverket og skriv inn passordet.

Når du lagrer detaljene tilbake, vil de skrive dem til enheten og bruke dem igjen hver gang den starter på nytt.

Nå som den er koblet til det trådløse nettverket, ser du en serie som ligner på seriemonitoren …

192.168.1.xxx eller hva som helst av nettverket ditt er.

Hvis du kobler deg til dette med en nettleser, vil du se en veldig enkel webside med en enkelt knapp som ved å klikke på den vil aktivere servoarmen.

Trinn 4: Justere Servo Home og aktivert posisjon

Jeg stikker en stor klump med bluetack på undersiden av etuiet og klemmer den deretter til skrivebordet mitt, slik at servohornet sitter over midten av tasten som skal trykkes.

I utgangspunktet stiller jeg opp på en av de andre tastene, ikke strømmen, for hver gang jeg tester vil den sette pc'en i dvale.

For tastaturet mitt satte Logitech K260 startposisjonen til 135, og dette sitter servohornet like over tasten.

Jeg satte den aktiverte plasseringen til 120 som trykker knappen langt nok ned for å sikre at den faktisk er aktivert.

Tydeligvis må du tukle med disse innstillingene for å få dem satt opp pent for tastaturet ditt, det er bare et tilfelle av å justere innstillingen for utgangsposisjon først, laste opp skissen og se på den.

Når du er fornøyd med hjemmeposisjonen, fortsett og angi den aktiverte posisjonen, for tastaturet mitt er det rundt 15 grader ned fra utgangsposisjonen. Hvis du endrer hjemmeposisjonen, prøv først å justere den aktiverte posisjonen til hjemmeposisjon - 15. Last opp til kode til D1 og se hvordan det fungerer. Det tar ikke mye tid i det hele tatt å finne ut av det.

Fordelen med å bruke bluetacken er at den vil holde enheten på plass perfekt når du har justert posisjonene dine riktig, men hvis den aktiverte posisjonen er for lav, vil den ganske enkelt slå enheten av skrivebordet ditt og ikke skade.

Trinn 5: Tilkobling til hjemmeassistent

På hjemmeassistenten din, åpne filen du lagrer bryterinnstillingene i, og legg til følgende.

- plattform: mqtt

navn: "YOURDEVICE"

state_topic: "plassering/enhet/status"

command_topic: "location/device/switch"

payload_on: "PÅ"

payload_off: "OFF"

optimistisk: usant

Sørg for at du redigerer DIN ENHET til noe passende, og at tilstands-/kommandoemnene stemmer overens med det du angav i ino -kode fra forrige trinn.

Du vil nå legge til enheten i konfigurasjonen slik at den vises på HA -grensesnittet.

Jeg lister opp alle gruppene mine og gruppedefinisjoner i konfigurasjon. Yaml, så bare legg til enheten der inne på linje med …

studie: navn: Studie

enheter:

- switch.study_pc

Sjekk at konfigurasjonen din er trygg ved å gå inn

/srv/homeassistant/bin/hass -script check_config -c /home/homeeassistant/.homeassistant/

Hvis du ikke ser noen feil, fortsett og start HA på nytt

systemctl start hjemme-assistent på nytt@homeassistant.

Når alt er lastet inn, bør du se en ny knapp på HA -grensesnittet som slår PCen på eller av via magien til KiKi.

PS, hvis du får tilgang til en maskin over ssh, kan du aktivere KiKi med wget …

wget -qO- https:// ip of kiki/? Req = 1>/dev/null

eller legg den i en bash script -fil, kall skriptet, sparer å måtte huske argumentene.

Anbefalt: