ዝርዝር ሁኔታ:

አሌክሳ Raspberry Pi Relay Controller: 6 ደረጃዎች
አሌክሳ Raspberry Pi Relay Controller: 6 ደረጃዎች

ቪዲዮ: አሌክሳ Raspberry Pi Relay Controller: 6 ደረጃዎች

ቪዲዮ: አሌክሳ Raspberry Pi Relay Controller: 6 ደረጃዎች
ቪዲዮ: 2023 Tesla MODEL Y Performance ⚠️ BUT Did You See… 🤤😘 #Shorts #Short #Tesla #teslamodely 2024, ሀምሌ
Anonim
አሌክሳ Raspberry Pi Relay ተቆጣጣሪ
አሌክሳ Raspberry Pi Relay ተቆጣጣሪ
አሌክሳ Raspberry Pi Relay ተቆጣጣሪ
አሌክሳ Raspberry Pi Relay ተቆጣጣሪ
አሌክሳ Raspberry Pi Relay ተቆጣጣሪ
አሌክሳ Raspberry Pi Relay ተቆጣጣሪ

የ IOT መሣሪያዎችን ከአማዞን አሌክሳ ጋር በማዋሃድ ልምዶቼን ለማካፈል ይህንን አስተማሪ ፈጠርኩ።

ይህ ፕሮጀክት ከሮዝቤሪ ፓይ ጋር የተገናኘ የቅብብሎሽ ሰሌዳ ከስማርትሆም መቆጣጠሪያ እንዲቆጣጠር ያስችለዋል።

እሱ በተከታታይ የቤልኪን ወሞ ሶኬቶችን ስለሚመስለው በአሌክሳ የተፈተነ ቢሆንም ከ Samsung Smartthings እና ከሌሎች የቁጥጥር በይነገጾች ጋር በጥሩ ሁኔታ የሚሠራ ይመስላል።

እጅግ በጣም ጥሩ በሆነው FAUXMO ኮድ ላይ የተመሰረቱ ብዙ ምሳሌዎች አሉ ፣ ግን ይህ ማለት ፓይዘን መማር ማለት ነው እና ለመሣሪያዎቼ የሚያስፈልገኝን ዝርዝር ቁጥጥር አልሰጠኝም እና ስለሆነም C ን እንደ መሰረታዊ የኮድ ቋንቋዬ በመጠቀም ከባዶ እንደገና ለመፍጠር ወሰንኩ።

እኔ እንዲሁ በአማዞን.com ላይ ወደ ላምባ ኮድ ጥልቀት መሄድ አልፈለግሁም ስለሆነም በእውነቱ ቀላል አድርጌዋለሁ።

በጊቱብ ላይ ምንጩን እና ማስታወሻዎችን ለጥፌዋለሁ -

github.com/Switchdoctorstu/StuPiMo

ትምህርቱ በእውነት እንዴት እንደሚሰራ ለመሸፈን እና ሌሎችን የሚረዳ ከሆነ ማስታወሻዎቼን ለማተም ነው።

ደረጃ 1 - አቅርቦቶች እና ግንኙነቶች

አቅርቦቶች እና ግንኙነቶች
አቅርቦቶች እና ግንኙነቶች
አቅርቦቶች እና ግንኙነቶች
አቅርቦቶች እና ግንኙነቶች
አቅርቦቶች እና ግንኙነቶች
አቅርቦቶች እና ግንኙነቶች

የሚያስፈልጉዎት ነገሮች በአማዞን / ኢባይ ላይ በቀላሉ ይገኛሉ-

  • Raspberry PI *
  • Pi የኃይል አቅርቦት
  • የዱፖን ማያያዣዎች
  • የቅብብሎሽ ቦርድ
  • የድሮ ማይክሮ ዩኤስቢ መሪ (ለቅብብል ካርድ ኃይል ለማግኘት በግማሽ ለመቁረጥ)

ማንኛውም እንጆሪ ፓይ ይሠራል ፣ ይህንን በሞዴል ቢ እና ዜሮ ላይ ሞክሬዋለሁ።

*Pi ዜሮን የሚጠቀሙ ከሆነ የ OTG አውታረ መረብ አስማሚ ያስፈልግዎታል (በ ‹WiFi› ውስጥ ከ ‹bu› ጋር የ ‹W› ን ስሪት ካልገዙ)

Pi ን ከአውታረ መረቡ ጋር ማገናኘት ያስፈልግዎታል።

የቅብብሎሽ ካርዱን ከ Pi ጋር ለማገናኘት የዱፖን ኮንቴይነሮችን ይጠቀሙ።

የማስተላለፊያ ካርዱ ውጫዊ ኃይልን መጠቀም እንዳለበት ልብ ይበሉ (አገናኙን ያስወግዱ እና ከውጭ 5v ጋር ይገናኙ)። ከፒአይ የተጎላበተ ይሠራል ፣ ግን ለምርት ሥራ አይመከርም።

ለኔ ማዋቀር እኔ በውጪ ኃይል ያለው የዩኤስቢ HUB ን ተጠቀምኩ። ይህ ለፒአይ ኃይል ይሰጣል።

እኔ ደግሞ የድሮውን የዩኤስቢ ገመድ ጫፍ ቆረጥኩ እና ደህንነቴን ለመጠበቅ ከ 2 ኛው የዩኤስቢ ግንኙነት ወደ መገናኛ ጣቢያው ቅብብሎቹን አነቃቃለሁ። የእኔ ‹ምርት› ስሪት አነስተኛ 5V 5A ማብሪያ ሁነታን የኃይል አቅርቦት ይጠቀማል። እንደገና እኔ ፒኢን በማይክሮ ዩኤስቢ በኩል ለማብራት የዩኤስቢ መሪን በግማሽ ቆረጥኩ እና የቅብብሎሽ ሰሌዳውን ለማብራት ሁለቱን የዱፖን ማገናኛዎች እቆርጣለሁ። በዩኤስቢ መሪ ውስጥ 4 ሽቦዎች አሉ ፣ አብዛኛዎቹ የ 5 ቮ አቅርቦትን ለማመልከት ቀይ/ጥቁር ይጠቀማሉ ፣ ግን ጥርጣሬ ካለዎት ትክክለኛውን ሽቦዎች ማግኘቱን ለማረጋገጥ አንድ ሜትር ይጠቀሙ።

በቦርዱ ላይ ያሉት የቅብብሎሽ ፒኖች በፒአይ ራስጌው ላይ ከሚመለከታቸው የ GPIO ፒኖች ጋር ተገናኝተዋል።

ኮዱ የ GPIO ፒኖችን እንዲመርጡ ያስችልዎታል ፣ ግን እኔ የተጠቀምኩት ነባሪ የሚከተለው ነበር-

  1. Relay Pin 1 - መሬት
  2. Relay Pin 2 - Relay 1 - GPIO 0
  3. Relay Pin 3 - Relay 2 - GPIO 1
  4. Relay Pin 4 - Relay 3 - GPIO 2
  5. Relay Pin 5 - Relay 4 - GPIO 3
  6. Relay Pin 6 - Relay 5 - GPIO 4
  7. Relay Pin 7 - Relay 6 - GPIO 5
  8. Relay Pin 8 - Relay 7 - GPIO 6
  9. Relay Pin 9 - Relay 8 - GPIO 7
  10. Relay Pin 10 - +5v ለሎጂክ

ደረጃ 2 የፒአይ ማዋቀር

የእርስዎን ፒአይ እንዴት ከፍ ማድረግ እና ከአውታረ መረቡ ጋር መገናኘት እንደሚቻል ላይ አጋዥ ስልጠናን እንደገና አልፈጥርም።

እጅግ በጣም ጥሩ አስተማሪን ጨምሮ ብዙ መመሪያዎች አሉ-

www.instructables.com/id/Ultimate-Raspberr…

PI በአውታረ መረቡ ላይ ወደሚታይበት ደረጃ መድረስ እና ከእሱ ጋር መገናኘት ያስፈልግዎታል።

ይህ በኤተርኔት ወይም በገመድ አልባ በኩል ቢሆን ምንም አይደለም።

ይህ ፕሮጀክት የጌይኒ ፕሮግራም አዘጋጆች አርታኢን በመጠቀም በ Raspberry PI ብቻ ሊጠናቀቅ ይችላል ፣ ግን እኔ በግሌ ቪዥዋል ስቱዲዮን ወይም ግርዶሽን (ወይም እንዲያውም ማስታወሻ ደብተር ++) በመጠቀም የኮድ ቅድመ ዝግጅቴን በፒሲ ላይ ማድረጉ ቀላል ሆኖ አግኝቼዋለሁ ፣ እና VNC ግንኙነት። ቪኤንሲን በ RPi ላይ በማዋቀር ላይ ብዙ እጅግ በጣም ጥሩ አስተማሪዎች በመኖራቸው ይህንን እንደገና እዚህ አልሸፍንም።

የሚያስፈልግዎት ኮዱን ለመስቀል እና ለማጠናቀር ወደሚችሉበት ደረጃ መድረስ ነው።

አስፈላጊ የሆነ አንድ ማስታወሻ የ UPNP ተቆጣጣሪው የ UDP ባለብዙ ደረጃን ስለሚፈልግ ፣ ያገለገሉ በይነገጾች ወደ ‹ሴሰኛ› ሁኔታ መዋቀር አለባቸው።

ይህ በትእዛዝ መስመር ላይ ሊከናወን ይችላል-

pi@raspberrypi: ~ $ ifconfig eth0 promisc

እና / ወይም

pi@raspberrypi: ~ $ ifconfig wlan0 promisc

/Etc/rc.local ን አርትዕ አድርጌአለሁ ይህ ቋሚ መደረግ አለበት

sudo nano / etc / rc.local

መስመሩን ለማካተት

sudo ifconfig eth0 promisc

በይነገጾቹ ጅምር ላይ መዋቀራቸውን ለማረጋገጥ ከመጀመሪያው የባነር # መስመሮች ስብስብ በኋላ።

ደረጃ 3 - ኮዱን ማውረድ እና ማጠናቀር

ኮዱ ራሱ በ Github repsoitory ውስጥ ይቀመጣል ፤

github.com/Switchdoctorstu/StuPiMo/blob/ma…

ማከማቻውን ለማጥበብ “ትክክለኛ” መንገዶች ቢኖሩም። በፒ ዴስክቶፕ ላይ የጂአኒ አርታዒን መክፈት እና ኮዱን መለጠፍ ብቻ ቀላል ሆኖ አግኝቼዋለሁ።

በተመሳሳይ ፣ የትእዛዝ መስመሩን እየተጠቀሙ ከሆነ ፣

አዲስ ማውጫ ይፍጠሩ

mkdir Stu

ወደ እሱ ይለውጡ

ሲዲ ስቱ

አዲስ የጽሑፍ ፋይል ያዘጋጁ

nano StuPiMo.c

ከ Github ጥሬ ኮዱን ይቅዱ እና ወደ አዲሱ ፋይል ይለጥፉት

አስቀምጥ እና ውጣ።

አንዴ ፋይሉን እንደ ሲ ምንጭ ኮድ ነገር ከያዙት በመጠቀም ሊያጠናቅሩት ይችላሉ

gcc -o StuPiMo StuPiMo.c -l wiringPi

አስፈላጊው የወልና ፒ ቤተ-መጽሐፍት ውስጥ ተጓዳኝ መገናኘቱን ለማረጋገጥ “-l wiringPi” አስፈላጊ መሆኑን ልብ ይበሉ።

ከዚያ ኮዱ በመጠቀም ሊሠራ ይችላል

./StuPiMo

እንደገና ፣ ይህ በጅምር ላይ እንዲሠራ ከፈለጉ ትዕዛዙን ይጠቀሙ-

sudo nano /etc/rc.local

የሚከተለውን መስመር ለማከል

sudo/home/pi/Stu/StuPiMo &

ወደ /etc/rc.local ፋይልዎ። መውጫ ላይ ፋይልዎን ማስቀመጥዎን አይርሱ።

በዚህ ጊዜ ስክሪፕቱ እንዳይታገድ ለማረጋገጥ ንዑስ ሂደት መፈልፈሉን ለማረጋገጥ '&' አስፈላጊ መሆኑን ልብ ይበሉ።

ደረጃ 4: እሱን መጠቀም

አንዴ ኮዱን ከጨረሱ በኋላ ‹‹ Discover Devices› ›የሚለውን‹ አልክሰስ ›ን ይጠይቁ እና እሷ 8 ቱን ምናባዊ የዌሞ መሳሪያዎችን ማግኘት አለባት።

ከዚያ “አሌክሳ ሶኬት 1 ን ያብሩ” ወይም “አሌክሳ ሶኬት 6 ን ያጥፉ” ወዘተ ማለት ብቻ ነው እና የሚመለከተው ቅብብሎሽ ይለወጣል።

ደረጃ 5 - ኮዱ እንዴት እንደሚሰራ

ኮዱ የሚሠራው ተከታታይ የቤልኪን ወሞ ሶኬት መሣሪያዎችን በመኮረጅ ነው።

ይህንን ለማሳካት 2 ዋና ዋና ተግባሮችን ማስተናገድ አለበት

  • የ UPNP ግኝት ስርጭት አስተናጋጅ
  • ለመሣሪያው የተላኩ ትዕዛዞችን እና የሚያስፈልጉትን ምላሾች ለማስተዳደር ‹የመሣሪያ ተቆጣጣሪ› (አንድ በአንድ ምናባዊ መሣሪያ)።

የ ‹ጉርሻ› ባህርይ የመሣሪያዎቹን ቁጥጥር ለመቆጣጠር የሚያስችል ድረ -ገጽ ማተም ነው።

የ UPNP ተቆጣጣሪ

የ UPNP ተቆጣጣሪው በ 239.255.255.250 ወደብ 1900 ላይ የ SSDP ፕሮቶኮል ፓኬጆችን ለመከታተል ሶኬት ይከፍታል።

እሱ ለሚጠይቀው ማንኛውም ሰው የግለሰባዊ ኢሞ አምሳያዎችን የሚያካትት የግኝት ምላሽ ፓኬት ለሚያስገቡ ማናቸውም የ ‹M-SEARCH› ጥያቄዎች ምላሽ ይሰጣል።

የመሣሪያ ተቆጣጣሪ

የመሣሪያው ተቆጣጣሪዎች (አንድ በአንድ ምናባዊ መሣሪያ) ተከታታይ የአይፒ ወደቦችን ይቆጣጠሩ እና ለጥያቄዎች ምላሽ ይሰጣሉ።

ሲጠየቅ የ setup.xml ምላሽ ይሰጣል

ሲጠየቅ የክስተት መግለጫ ፋይልን ያገለግላል

ለ GETBINARYSTATE ጥያቄ ምላሽ ይሰጣል

የ SETBINARYSTATE ጥያቄን ያካሂዳል እና ምላሽ ይሰጣል

የድር አገልጋይ

የድር አገልጋዩ በቅብብሎሽ አንድ አዝራር የያዘ የኤችቲኤምኤል ቅጽ የሚገነባ ቀላል የዕለት ተዕለት ተግባር ነው።

ለተጫኑት አዝራሮች ምላሽ ይሰጣል እና በዚህ መሠረት የቅብብሎሹን ሁኔታ ይቀይራል።

ደረጃ 6 ማበጀት እና ተስማሚ ስሞች

ማበጀት እና ተስማሚ ስሞች
ማበጀት እና ተስማሚ ስሞች

እኔ ቀላሉ እና አርትዕ ለማድረግ በኮዱ አልበድኩም።

በኮዱ መጀመሪያ ላይ መሠረታዊዎቹ በትርጓሜዎች ሊበጁ ይችላሉ-

// ዓለም አቀፋዊ ትርጓሜዎች የድር አገልጋዩን ለማብራት WEBPORT 5353 // port ን ይገልፃሉ

#ቁጥሮችን ይግለጹ 8 // የሚፈጥሩ ምናባዊ መሣሪያዎች ብዛት

ወደ ላይ ከፍ ለማድረግ #ጥራት PORTBASE 43450 // ቤዝ አይፒ ወደብ

WEBPORT አብሮገነብ የድር አገልጋዩ የሚሠራበት የወደብ ቁጥር ነው። ነገሮችን ቀላል ለማድረግ ይህ በ 80 ላይ እንዲቀመጥ ሊደረግ ይችላል ፣ ነገር ግን ከ tomcat ወይም በአካባቢው ከሚሠሩ ሌሎች አገልግሎቶች ጋር የሚጋጭ ሆኖ አግኝቼዋለሁ።

NUMDEVICES ለማስነሳት የግለሰብ የ WEMO አስመሳዮችን ቁጥር ይገልጻል። የ 2 ወደብ ማስተላለፊያ ካርድ ካለዎት ይህንን ወደ 2 ፣ 4 ወደብ = 4 ወዘተ ያዘጋጁ።

ለመሳሪያዎቹ ወዳጃዊ ስሞች setup_names በሚባል መደበኛ ውስጥ ተዋቅረዋል -

int setup_names (ቻር ተስማሚ [NUMDEVICES] [NAMELEN]) {int i = 0;

// ይህንን loop ይጠቀሙ

ለ (i = 0; i <NUMDEVICES; i ++) {

sprintf (ወዳጃዊ ፣ “ሶኬት %d” ፣ i + 1);

}

// ወይም የመሣሪያ ስሞችን ለመሙላት የሚከተለው የእጅ ሠንጠረዥ

/*

strcpy (ወዳጃዊ [0] ፣ “የመኝታ ክፍል ቴሌቪዥን”);

strcpy (ወዳጃዊ [1] ፣ “የኤሌክትሪክ ብርድ ልብስ”);

strcpy (ወዳጃዊ [2] ፣ “የመኝታ ቤት መብራት”);

strcpy (ወዳጃዊ [3] ፣ “ሶኬት 4”);

strcpy (ወዳጃዊ [4] ፣ “ሶኬት 5”);

strcpy (ወዳጃዊ [5] ፣ “ሶኬት 6”);

strcpy (ወዳጃዊ [6] ፣ “ሶኬት 7”);

strcpy (ወዳጃዊ [7] ፣ “ሶኬት 8”);

*/

መመለስ i;

}

እያንዳንዱን መሳሪያዎች ‹ሶኬት n› ብዬ ለመጥራት አንድ ሉፕ ተጠቅሜያለሁ ነገር ግን ይህንን ዙር መሰረዝ እና በምትኩ የራስዎን ወዳጃዊ ስሞች ማከል ይችላሉ (ልክ እንደ NUMDEVICES ተመሳሳይ ቁጥር ማከልዎን ያረጋግጡ) / * * /

ማንኛውንም ለውጥ ካደረጉ ኮዱን እንደገና ማጠናቀርዎን ያስታውሱ።

የሚመከር: