Innehållsförteckning:
- Steg 1: Skaffa hårdvarudelarna
- Steg 2: Snabbstart
- Steg 3: Skaffa programvarudelarna
- Steg 4: Installera drivrutiner och kortprofiler
- Steg 5: Lite användbar information
- Steg 6: Ladda koden till NodeMCU
- Steg 7: Fäst servon i NodeMCU
- Steg 8: Finjustera NearBot
- Steg 9: Hur det fungerar
- Steg 10: Du borde veta …
- Steg 11: Det är allt
Video: Mångsidig NearBot: 11 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Denna instruerbara visar dig hur du bygger en mångsidig robotutlösare som kan flytta något som en knapp, omkopplare eller ratt på olika enheter när du (med din telefon eller en fyr i fickan) är i närheten. Det betyder att den automatiskt kan låsa upp och låsa igen en dörrspärr när * bara du * passerar, stänger av en sprinklerventil så att du kan passera oskadat genom vattnet som en slags förortsmose, lägre högtalarvolym medan du är i garaget bandrum, trigga en iPod som spelar en dramatisk ingångslåt eller berätta ett skämt (Jaden Smiths tweet?) medan du är i rummet, eller pausa en film när du reser dig för att använda toaletten.
Detta projekt kräver inte lödning eller specialverktyg
Om du tycker om denna instruktion nog, kan du överväga att rösta på denna instruerbara i Robotics 2017 -tävlingen!
Steg 1: Skaffa hårdvarudelarna
Du kommer behöva:
- NodeMCU v2 eller V3
- Micro 9G Servomotor ca $ 1,40 USD gratis frakt på eBay eller Aliexpress
- Arduino Jumper Wires Kvinna till Man.
- Ett hölje för NearBot - jag använde en plastlåda som jag hittade.
- Mikro -USB -datakabel (skrotdelar)
- USB -strömkälla (telefonladdare)
Om du inte har en smartphone med en mobil hotspot -funktion behöver du också:
- ESP-01-modul ca $ 2,50 USD gratis frakt på DealExtreme, GearBest, Ebay eller Aliexpress.
- 1 Par AAA -batterier
- dubbel AAA batterihållare med strömbrytare
Steg 2: Snabbstart
Det här steget innehåller en snabbstartguide om du gillar sånt. Resten av denna instruerbara går steg för steg och lägger till mer fördjupad information
// Inköpslista: // NodeMCU V3 (Lolin) ESP8266 mikrokontroller
// SG90 9G Servomotor
// USB Power Bank eller USB -väggadapter.
// Micro USB data/laddningskabel
// Arduino hane till hona typ bygelkablar
//INNAN DU BÖRJAR:
// 1. Om du inte redan har laddat ner Arduino IDE kan du få den gratis (donation valfri) på:
// 2. öppna Arduino IDE (om du inte redan läser detta i Arduino IDE!) …
// 3. Gå till filer och klicka på inställningen i Arduino IDE …
// 4. kopiera nedanstående kod i Extra boards Manager: //https://arduino.esp8266.com/stable/package_esp8266com_index.json
// 5. klicka på OK för att stänga inställningsfliken …
// 6. Gå till verktyg och styrelse och välj sedan styrelsechef …
// 7. Navigera till esp8266 av esp8266 community och installera programvaran för Arduino …
// 8. Du kan behöva ladda ner och installera CH340 -drivrutinen om du inte kan få NodeMCU att prata med din Arduino IDE:
// När all ovanstående process har slutförts läses vi för att programmera vår esp8266 NodeMCU mikrokontroller med Arduino IDE.
//9.välj NodeMCU V1.0 ESP12E från kortmenyn /
/10. Välj den COM -port du använder.
// 11. välj koden (ladda ner från www.makersa.ga) och klicka på ladda upp. /
/12. Anslut servon till NodeMCU med hjälp av bygelkablar. D0 för signal, jord till mark, +VCC till VO eller 3V. /
/13. Justera servohornet med en skruvmejsel.
// 14. Justera maximal och minsta rörelsegrad med hjälp av koden.
// 15. Ladda upp igen till NodeMCU när koden uppdateras.
// Du kanske tycker det är viktigt att ta reda på vilken NodeMCU -version du har. Här är en jämförelseguide:
frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v1 pinout diagram: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v2 pinout diagram: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v3 pinout diagram:
// Förklaring till riggarna:
// Tillverkad av NodeMCU ESP8266 mikrokontroller, batteri eller USB -strömförsörjning och SG90 Servo
// Du kan använda en andra omodifierad esp8266 -modul som en varningspunkts hotspot -AP istället för att använda en smartphone, ingen programmering behövs.
Steg 3: Skaffa programvarudelarna
Du måste först ladda ner gratis Arduino IDE
Arduino Web Editor fungerar inte med NodeMCU när jag skriver detta, så du måste installera IDE på din dator istället.
Du måste också hämta NearBot -filerna från www. MakerSa.ga - länken för nedladdning av filer för detta projekt finns på den webbplatsen.
Steg 4: Installera drivrutiner och kortprofiler
Inuti NearBot -zip -filen som du laddade ner och packade upp kommer drivrutinerna för NodeMCU -modulen. Installera dem på din dator.
Om de inte fungerar för dig kanske du kan hitta CH340G -drivrutiner på wemos.cc/downloads
Din NodeMCU kanske inte använder CH340G -chip, så du kan behöva kommentera den drivrutin du letar efter, och jag svarar med nedladdningslänken för den drivrutinen.
- Öppna sedan Arduino IDE och gå till File PreferencesAdditional Boards Manager i Arduino IDE.
- Klistra in följande kod där:
- Klicka på OK för att stänga inställningsfliken.
- Gå till verktyg och styrelse och välj sedan styrelsechef.
- Navigera till "esp8266 av esp8266 community" och installera programvaran för Arduino.
När all ovanstående process har slutförts är vi redo att programmera vår esp8266 NodeMCU mikrokontroller med Arduino IDE!
Steg 5: Lite användbar information
Det kan vara praktiskt att ta reda på vilken NodeMCU -version du har. Här är en jämförelseguide:
frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/
Varje version har olika stiftarrangemang. Jag köpte versionen v3 (Lolin) eftersom den har 5V utgångsstiften för att driva servomotorn. Jag använde slutligen istället 3 -volts stiften istället för säkerheten (NodeMCU I/O -stiften är inte 5V -toleranta), men du kanske vill använda 5V -stiften eftersom tekniskt sett är dessa typer av servomotorer specificerade för 4,5 till 5 volt effekt.
Steg 6: Ladda koden till NodeMCU
- Anslut NodeMCU till din dator med valfri mikro -USB -kabel.
- Öppna Arduino IDE och välj "ESP12E" under "Boards" och COM -porten för NodeMCU.
- I IDE, gå till FileOpen och bläddra i zip -mappen som tidigare hämtats från makersa.ga för att öppna Arduino -skissen som heter "ProximityActuator013017DonovanMagryta.ino"
- Redigera sedan kodraden som innehåller detta för att lägga till namn och lösenord för din WiFi -signal. Mer om det nedan! Till exempel:
const char* ssid = "mywifi"; // Skriv ditt hotspot -namn i citattecken
const char* password = "mywifipassword"; // Lägg ditt hotspot -lösenord i citattecken
Klicka sedan på "ladda upp" för att blinka koden till NodeMCU -kortet.
NearBot använder en WiFi -varningslåda i fickan för att identifiera dig och uppskatta avstånd. Precis som närhetsnycklarna har vissa nyare bilar som låser upp dörren till bilen när du närmar dig.
Du kan använda din smarttelefons mobila hotspot som en fyr, eller alternativt använda en billig ESP-01 WiFi-modul som drivs av ett par AAA-batterier eller ett litet litium 3,7v batteri. Inget behov av att programmera ESP-01, den används som standard för hotspot-läge när den slås på. Kretsschemat för det visas i detta steg.
Steg 7: Fäst servon i NodeMCU
Du behöver några bygelkablar för att ansluta servon till NodeMCU V3.
Kretsschemat är enkelt.
Pin D0 till signalen i bly (ljusaste färgtråden på servon. Vanligtvis gul eller vit.)
Pin 3V eller pin VO till 5V ingångsledning (näst ljusaste färgtråden på servon, vanligtvis röd eller orange.)
Fäst GND på jordledningen (mörkaste färg på tråden, vanligtvis brun eller svart.)
Steg 8: Finjustera NearBot
Koden omvandlar signalstyrka till avståndsuppskattning. Det fungerar tillförlitligt för reaktionsavstånd mindre än 2 meter eller 6,5 fot. Eftersom det är en direktomvandling är det inte så smidigt för längre avstånd än 3 meter som det kan vara med en bättre beräkningsmetod. Mer om det senare.
Du kanske vill justera var servohornet (den lilla vita armen som rör sig) är placerat. Detta görs genom att helt enkelt skruva loss servoarmen med en skruvmejsel och placera om den.
Nästa del är att justera maximal och minsta rörelsegrad med hjälp av koden.
Detta kan göras genom att ändra numren i rader som ser ut så här:
myservo.write (10); // flyttar servo -armen till 10 graders rotation
Du kan också justera känsligheten för signalstyrkan genom att ändra de negativa talen i rader som ser ut så här:
if (rssi> -30 && rssi <-5) {// Om signalstyrkan är starkare än -30 och svagare än -5. gör sedan följande …
Steg 9: Hur det fungerar
- NearBot ansluter först till hotspot i förväg när en användare närmar sig.
- Den skannar RSSI (mottagen signalstyrka) och konverterar den till ungefärligt avstånd.
- Medan avståndet ligger inom det angivna intervallet flyttar det servomotorarmen till läge 1.
- Annars flyttas servomotorn till läge 2.
När jag testade detta flyttar denna RSSI-inställning (-50) servon till position 1 medan avståndet är 0 till 1,5 meter med ESP-01-fyren eller telefonens hotspot i fickan.
RSSI faller vanligtvis inom intervallet -90 till -20, där -20 är den starkaste signalstyrkan.
Om du öppnar Arduino IDE Serial Monitor medan NearBot är ansluten till datorn, visar den signalstyrkan och triggerpunkterna i realtid så att du får praktisk feedback.
Här är hela koden:
//INNAN DU BÖRJAR:
// 1. Om du inte redan har laddat ner Arduino IDE kan du få den gratis (donation valfri) på: https://www.arduino.cc/en/Main/Software // 2. öppna Arduino IDE (om du inte redan läser detta i Arduino IDE!) … // 3. Gå till filer och klicka på inställningen i Arduino IDE … // 4. kopiera nedanstående länk i Extra boards Manager: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. klicka på OK för att stänga inställningsfliken … // 6. Gå till verktyg och styrelse och välj sedan styrelsechef … // 7. Navigera till esp8266 av esp8266 community och installera programvaran för Arduino … // 8. Du kan behöva ladda ner och installera CH340 -drivrutinen om du inte kan få NodeMCU att prata med din Arduino IDE: https://www.arduino.cc/en/Main/Software // När all ovanstående process har slutförts är vi läs för att programmera vår esp8266 NodeMCU mikrokontroller med Arduino IDE. Du kanske vill ta reda på vilken NodeMCU -version du har. Här är en jämförelseguide: https://www.arduino.cc/en/Main/Software // Tillverkad av NodeMCU ESP8266 mikrokontroller, batteri eller USB -strömförsörjning och SG90 Servo // Du kan använda en andra omodifierad esp8266 -modul som en fyr hotspot AP istället för att använda en smartphone. // NearBot -krets: // D0 -stift till Servosignaltråd (ljusaste färgtråden) // 3V stift till servo 5v -ledning (mitttråd) (skarvad parallellt med usb -kabel eller VO -stift på NodeMCU om du har V3. / /USB -ström till USB -kontakt på NodeMCU // GND -stift till Servo Jordkabel (mörkaste färgtråd) // Anteckningsrader börjar med två snedstreck och ignoreras av datorerna. Anteckningar är bara för oss människor! #Inkludera #inkludera // Kan behövas för seriell utskrift. #Inkludera // Servobibliotek #definiera D0 16 // Definierar stift för att underlätta tilldelning av stift. #Define D1 5 // I2C Bus SCL (klocka) #define D2 4 // I2C Bus SDA (data) #define D3 0 #define D4 2 // Samma som "LED_BUILTIN", men inverterad logik #define D5 14 // SPI Bus SCK (klocka) #define D6 12 // SPI Bus MISO #define D7 13 // SPI Buss MOSI #define D8 15 // SPI Bus SS (CS) #define D9 3 // RX0 (seriekonsol) #define D10 1 // TX0 (seriekonsol) Servo myservo; // Skapa ett servoobjekt som heter myservo // Telefon eller ytterligare ESP8266 -modul inställd på hotspot AP -läge: konstant ch ar* ssid = ""; // Skriv ditt hotspot -namn i citationstecken const char* password = ""; // Lägg in ditt hotspot -lösenord i citaten void setup () {Serial.begin (115200); // ställer in seriell överföringshastighet så att mikrokontrollern kan prata med det seriella utskriftsgränssnittet i Arduino IDE - Du kan behöva ändra den till 9600 istället! myservo.attach (D0); // fäster servon på stift D0 aka GPIO16 till servoobjektet - Se mer på: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // flyttar servo -armen till 10 graders rotation Serial.println ("Låst"); // mata ut den seriella bildskärmen ordet "Låst" WiFi.mode (WIFI_STA); // Ställer in wifi i stationsläge WiFi.begin (ssid, lösenord); // Ansluter till hotspot beacon} void loop () {// loopen går snabbt om och om igen om (WiFi.status ()! = WL_CONNECTED) {// Om wifi INTE är ansluten, gör följande … Serial.println ("Det gick inte att få en wifi -anslutning"); myservo.write (10); // Flyttar servo -armen till 10 grader Serial.println ("Låst"); } annat {// Om WiFi ÄR anslutet, gör följande … long rssi = WiFi. RSSI (); // Skapar en variabel med namnet rssi och tilldelar den till funktionen som returnerar signalstyrkeavläsningen för hotspot -fyren Serial.print (rssi); // matar ut rssi -avläsningen till seriell bildskärm om (rssi> -50 && rssi <-5) {// Om signalstyrkan är starkare än -50 och svagare än -5. gör sedan följande … myservo.write (170); // Vrid servo -armen till 170 grader Serial.println ("olåst"); } annat {// Om ovanstående villkor inte är uppfyllda gör du följande … myservo.write (10); // Vrid servoarmen tillbaka till 10 grader. Serial.println ("Låst"); }}}
Steg 10: Du borde veta …
Varning:
Den nuvarande iterationen av NearBot -koden fungerar pålitligt för avstånd mindre än 2 meter eller 6,5 fot. Utöver det blir det mindre exakt, men fungerar fortfarande.
Detta kan åtgärdas, men för närvarande vet jag inte hur jag ska göra. Jag skulle älska det om någon skulle arbeta med mig så att jag kan uppdatera dessa instruktioner med en mer exakt metod för att beräkna avstånd!
Dessa länkar kan vara praktiska: YouTuber CNLohr utvecklade en distans- och positionsavkännande firmware för ESP8266 med begränsad framgång:
Espressif utvecklade en Time of Flight distansdetekteringsfunktion som skulle fungera med Arduino IDE för ESP8266, men aldrig släppt den:
SubPos positioneringssystem använder ESP8266 -moduler och Path Loss Calculation, vilket jag inte vet hur man implementerar i Arduino IDE:
Jag hittade ett exempel på Java -språk, men jag vet inte hur jag ska replikera detta är Arduino IDE:
dubbel distans = Math.pow (10,0, (((dubbel) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(c/frekvens)))/(20*mu));
Steg 11: Det är allt
Om du gör din egen NearBot, lägg upp din "Jag klarade det" i kommentarerna nedan!
Om du har fler idéer om vad du ska använda den mångsidiga NearBot -plattformen till, kommentera dina idéer! Det kan vara stor inspiration för andra instruerbara användare!
Om du gillar denna handledning kan du överväga att rösta på den här instruerbara tävlingen!
Rekommenderad:
Mångsidig I/O Extender PCB för att styra många Nixie -rör med I2C: 9 steg (med bilder)
Mångsidig I/O Extender PCB för att styra många Nixie -rör med I2C: För närvarande finns det ett stort intresse för att väcka vintage nixie -rör till liv. Massor av nixie -rörklockor är tillgängliga på marknaden. Det verkade till och med vara en livlig handel med gamla lager av ryska nixie -rör. Även här på Instructables där
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen
Mångsidig volt-, ampere- och effektmätare: 6 steg (med bilder)
Mångsidig volt-, ampere- och effektmätare: Multimetrar är lämpliga för många ändamål. Men vanligtvis mäter de bara ett värde i taget. Om vi hanterar effektmätningar behöver vi två multimetrar, en för spänning och den andra för Ampere. Och om vi vill mäta effektivitet behöver vi
Mångsidig och billig digital räknare: 5 steg (med bilder)
Mångsidig och billig digital räknare: Det här hacket kommer att förvandla en billig, lättanvänd räknare till en mångsidig räknemaskin. Det kan användas som en billig metod för att mäta avstånd med ett hjul, vassströmbrytare och magnet (tänk cykelmätare). Så vad mer kan du fråga? Tja, ho
Billig och mångsidig hållare för AA -ficklampor: 3 steg
Billig och mångsidig hållare för AA -ficklampor: Jag är beroende av ficklampor, särskilt LED -lampor, de är praktiska och effektiva, men var ska de placeras när de inte används? Jag arbetade med olika instruktioner och stötte på ett paket med "Spring Grips" på den lokala hårdvarustationen