Innehållsförteckning:

KiKi Keyboard Bot: 5 steg
KiKi Keyboard Bot: 5 steg

Video: KiKi Keyboard Bot: 5 steg

Video: KiKi Keyboard Bot: 5 steg
Video: Vlad and Niki - best stories about Toys for children 2024, Juli
Anonim
KiKi Keyboard Bot
KiKi Keyboard Bot

Jag behöver ganska ofta koppla till min dator från jobbet, men jag gillar inte att låta den vara på hela tiden. Problemet är att min gamla dator inte stöder WOL. Den kan dock somna och väckas igen med strömbrytaren på tangentbordet. Men med ingen hemma utom hunden för att stimulera den till livet och så …

KiKi KeyboardBot föddes.

Den kommer att länka till hemassistent via MQTT och har en mycket enkel fristående webbsida inbyggd också, den är inte vacker men den får jobbet gjort.

Tillbehör

3D PrinterPLA -filament

Avbitartång

Wire Strippers

Lödkolv

Wemos D1 Mini

Micro 9G Servo

Steg 1: Skriva ut fodralet och Servohornsförlängningen

Skriva ut fodralet och servohornsförlängningen
Skriva ut fodralet och servohornsförlängningen

Börja först med att skriva ut fallet, jag tillhandahåller SKP -filen om du vill pyssla med den i Sketchup (Maker Edition). Jag har också förpackat STL -filen om du bara vill gå vidare och ladda den i din skivare och få den utskriven omodifierad.

Jag skrev ut fodralet utan stöd som den första jag skrev ut det var en bugger att ta bort dem, brist på stöd fungerade bra men det fanns en liten hänga, men när det var allt bra upp.

Jag skrev ut med en sängtemperatur på 50 och en extruder -temperatur på 200, vilket var rekommenderat för filamentet jag använde.

Som med fallet tillhandahåller jag också SKP- och STL -filerna för servohornet, servohornet skrevs inte ut ordentligt för mig, till slut klippte jag bara av monteringshylsan och limmade bara, kabelbandade den på en av originalen horn eftersom jag var otålig för att få detta att fungera.

Steg 2: Montering

hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning

Ta bort 3 -stiftshuvudet från slutet av servoledningen.

Stick ledningen genom servo urtaget i höljet och ut genom utgångshålet i sidan.

Lägg nu försiktigt ledningen längs sidan av servon och lägg den över fodralet så att ledningen sitter i urtagningen inuti hålet för servon, dra i ledningen och tryck försiktigt hem servon, det ska vara trevligt tätt passform.

Klä in ledningen i urtaget på utsidan av fodralet och stick den genom urtaget för D1 Mini. Rulla tillbaka kabeln och stick tillbaka den igen så att den ser ganska snygg ut i fodralet.

Skjut in D1 Mini i dess hölje med WiFi -modulen upptill. Ledningen ska sitta över modulens ovansida och sedan matas tillbaka under kretskortet.

Du kan nu klippa servokabeln till en acceptabel längd.

Ta bort D1 Mini genom att trycka den från motsatt sida av kretskortet till USB -uttaget.

När det har tagits bort, separera, ta bort och tina de tre trådarna på ledningen.

Lödda dem på undersidan av kretskortet i följande ordning.

Röd -> 5V

Brun -> GND

Orange -> D4

De tre stiften ligger alla intill varandra så det är lätt att hålla ledningen städad.

Vik försiktigt ledningen under brädet mot mitten och håll den snygg och platt, rulla den över brädans ovansida och skjut försiktigt hem brädan. Tryck inte in D1 hela vägen, låt den peta ut tillräckligt långt så att det är enkelt att ansluta USB -kabeln och du kan komma till återställningsknappen.

Om du lyckades få tryckt ut hornet så att det passar över kapstanen på servon, montera det nu så att hornets topp är mer eller mindre parallell med bänkskivan. Fixera det på plats med den lilla skruven som följde med servon.

Om du inte kunde skriva ut hornet, klipp av hylsan och fixa den till ett av de medföljande hornen, superlim och ett par små buntband gjorde jobbet för mig.

Steg 3: Blinkar

Ladda ino -filen till din arduino -projektfil till en mapp calle KiKi.

Öppna filen i Arduino IDE.

Redigera följande rader så att de passar din Home Assistant -inställning.

25 const PROGMEM uint16_t MQTT_SERVER_PORT = 1883; (om du har ändrat standardporten)

26 const PROGMEM char* MQTT_CLIENT_ID = "HostName";

27 const PROGMEM char* MQTT_USER = "MQTTUSER";

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

För MQTT STATE och COMMAND -ämnen gillar jag att beställa plats/enhet/(status/switch) men du kan använda vilken konvention du vill.

29 const char* MQTT_ROBOT_STATE_TOPIC = "plats/dator/status"; const char*

30 MQTT_ROBOT_COMMAND_TOPIC = "plats/dator/switch";

Redigera nu dessa ytterligare rader för att ställa in enhetens värdnamn.

159 wifi_station_set_hostname ("HOSTNAME");

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

Ange det fullt kvalificerade domännamnet på din MQTT -server.

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

Anslut D1 Mini till din PC och välj COM -porten som den är monterad på.

Öppna Serial Monitor.

Ladda upp filen.

Kontrollera den seriella bildskärmen när överföringen är klar.

Om det är ett nytt kort kommer det inte att finnas några inställningar och du måste ansluta till det trådlösa AP som det skapar, välj sedan rätt trådlöst nätverk och ange lösenordet.

När du sparar detaljerna kommer den att skriva dem till enheten och återanvända dem varje gång den startas om.

Nu är den ansluten till ditt trådlösa nätverk, du kommer att se i seriemonitorn en linje som liknar …

192.168.1.xxx eller vad som helst av ditt nätverks räckvidd.

Om du ansluter till detta med en webbläsare ser du en mycket enkel webbsida med en enda knapp som vid aktivering av servo -armen aktiveras.

Steg 4: Justera Servo Home och aktiverad position

Jag klistrar en stor klump av bluetack på undersidan av fodralet och kramar sedan till det på mitt skrivbord så att servohornet sitter ovanför mitten av tangenten som ska tryckas ned.

Inledningsvis ställer jag upp mig på en av de andra tangenterna, inte strömförsörjningen, eftersom varje gång jag testar kommer datorn att sova.

För mitt tangentbord Logitech K260 ställde jag in utgångsläget till 135 och detta sitter servohornet precis ovanför tangenten.

Jag ställde in den aktiverade platsen till 120 som trycker på knappen tillräckligt långt ner för att se till att den faktiskt är aktiverad.

Uppenbarligen måste du pyssla med dessa inställningar för att få dem att ställas in snyggt för ditt tangentbord, det är bara att justera inställningen för utgångspositionen först, ladda upp skissen och ögonkulna den.

När du är nöjd med utgångsläget, fortsätt och ställ in din aktiverade position, för mitt tangentbord är det cirka 15 grader ner från utgångsläget. Om du ändrar din hemposition, försök först och främst att justera din aktiverade position till utgångsposition - 15. Ladda upp till kod till D1 och se hur det fungerar. Det tar inte mycket tid alls att lösa det.

Fördelen med att använda bluetacken är att den kommer att hålla enheten på plats perfekt när du har justerat dina positioner ordentligt, men om den aktiverade positionen är för låg kommer den helt enkelt att släppa av enheten från ditt skrivbord och inte skada den.

Steg 5: Hooking It Up to Home Assistant

På din hemassistentinstans öppnar du filen där du lagrar dina switchinställningar och lägger till följande.

- plattform: mqtt

namn: "DIN ENHET"

state_topic: "plats/enhet/status"

command_topic: "location/device/switch"

payload_on: "PÅ"

payload_off: "OFF"

optimistisk: falskt

Se till att du redigerar YOURDEVICE till något lämpligt och att tillstånds-/kommandoämnena matchar det du ställde in ino -kod från föregående steg.

Du kommer nu att vilja lägga till enheten i konfigurationen så att den visas på HA -gränssnittet.

Jag listar alla mina grupper och gruppdefinitioner i configuration.yaml så lägg helt enkelt till enheten där i linje med …

studie: namn: Studera

enheter:

- switch.study_pc

Kontrollera att din konfiguration är säker genom att ange

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

Om du inte ser några fel, fortsätt och starta om HA

systemctl starta om home-assistant@homeassistant.

När allt har laddats bör du se en ny knapp på ditt HA -gränssnitt som slår din dator på eller av via KiKis magi.

PS, om du använder en maskin via ssh kan du aktivera KiKi med wget …

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

eller stoppa den i en bash -skriptfil kallar manuset, sparar att behöva komma ihåg argumenten.

Rekommenderad: