ዝርዝር ሁኔታ:
- ደረጃ 1 የሶፍትዌር አመክንዮ - የስርዓት አርክቴክቸር
- ደረጃ 2 ደረጃ 1 የሃርድዌር ሽቦ
- ደረጃ 3 ደረጃ 2 አርዱinoኖ
- ደረጃ 4: ደረጃ 3 ፦ NodeJS
- ደረጃ 5 ደረጃ 4 የድር በይነገጽ
- ደረጃ 6: ውጤት
ቪዲዮ: የአርዱዲኖ ፕሮጀክት Nodejs + SQL ዳታቤዝ እና ድር ጣቢያ በመጠቀም ኤሌክትሮኒክስን በበይነመረብ ላይ ይቆጣጠሩ።
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:32
ፕሮጀክት በ: Mahmed.tech
የተሠራበት ቀን - ሐምሌ 14 ቀን 2017
የችግር ደረጃ - ጀማሪ በአንዳንድ የፕሮግራም እውቀት።
የሃርድዌር አስፈላጊነት;
- አርዱዲኖ ኡኖ ፣ ናኖ ፣ ሜጋ (አብዛኛው MCU ተከታታይ ግንኙነት ያለው ይመስለኛል)
- ነጠላ ኤልኢዲ እና የአሁኑ መገደብ ተከላካይ። እርግጠኛ ካልሆኑ ይህንን ካልኩሌተር ይጠቀሙ - የኦምስ ሕግ ማስያ
- 10 ኪ ፖታቲሞሜትር።
የሶፍትዌር መስፈርቶች
- አርዱዲኖ አይዲኢ
- Node. JS (ይህ በኮምፒተር ላይ ሶፍትዌር ነው ፣ ለመጫን በጣም ቀላል ነው)
- MySQL አገልጋይ (ያገኘሁት ቀላሉ መንገድ ርካሽ የድር ማስተናገጃን መጠቀም ነው። እንዲሁም ነፃ የጎራ ስሞችን ማግኘት ይችላሉ)
ፕሮግራሚንግ እና ስክሪፕት ቋንቋ ጥቅም ላይ ውሏል
አርዱinoኖ (የተሻሻለው ሲ/ሲ ++) ፣ ጃቫስክሪፕት (ኖዴጅስ) ፣ ፒኤችፒ ፣ ኤችቲኤምኤል እና ሲኤስኤስ
መግቢያ ይህ ፕሮጀክት በአጭሩ - የአርዱዲኖ ማይክሮ መቆጣጠሪያን ከድር በይነገጽ መቆጣጠር። ስለዚህ ከበይነመረቡ ጋር ማንኛውንም የኤሌክትሪክ መሳሪያ ከየትኛውም ቦታ ይቆጣጠሩ። ቀለል ያለ ግን ውጤታማ ፕሮጀክት ከማድረግ ይልቅ ስለፕሮግራም እና የድር ልማት ያለኝን ግንዛቤ እና ይህን ለማድረግ ምን የተሻለ መንገድ መዘርጋት ፈልጌ ነበር። በሶፍትዌር ላይ የበለጠ ማተኮር እንዲችል ሃርድዌርው በትንሹ ይቀመጣል። ስለዚህ እኔ በቀላል ኤልኢዲ ፣ በድስት ማዋቀር ሄድኩ። ማሰሮው መረጃን ይልካል እና መሪው ይቀበላል (PWM ብሩህነት)። NodeJS ን በመጠቀም የተከታታይ ውሂቡ ተነበበ (የፖታቲሞሜትር እሴት) እና የተፃፈ (መሪነት ብሩህነት)። የዚህ ፕሮጀክት አስቸጋሪ ክፍል የግብዓት ውሂብን ከርቀት ሥፍራ (የድር አገልጋይ) ማግኘት ነበር
ደረጃ 1 የሶፍትዌር አመክንዮ - የስርዓት አርክቴክቸር
የ Potentiometer ውሂብ;
ይህ በአርዱዲኖ ይጀምራል ፣ የንባብ ማሰሮ እሴት ተከታታይ ህትመት ነው። ሆኖም ፣ በዚህ ጊዜ እሴቱን ለማንበብ Node. JS ን እንጠቀማለን። አርዱኢኖ ከታተመው ድስት እሴት ጋር እንደተገናኘ እና እንደሚያነብ NodeJS ተከታታይ ግንኙነትን ወደ ተመሳሳይ ወደብ ይከፍታል። ከዚያ NodeJS ውሂቡን ወደ የርቀት SQL የመረጃ ቋት ይሰቅላል ፣ ይህ አዲስ የድስት ዋጋ በታተመ ቁጥር ይከሰታል። አንድ ድረ -ገጽ ከ SQL የመረጃ ቋት ስብስብ የጊዜ ክፍተት ጋር ይገናኛል እና የ potentiometer እሴትን ያወጣል። ይህ በድረ -ገጹ ላይ ይታያል።
የሚመራ ውሂብ;
ለተመራው የ PWM ብሩህነት በተጠቃሚው በርቀት ድር ጣቢያ ላይ ይዘጋጃል ፣ ስለዚህ ጉዞው የሚጀምረው ከተቃራኒው ተቃራኒ ጫፍ ላይ ነው። የግቤት ውሂቡ በ SQL የመረጃ ቋት ውስጥ ይቀመጣል ፣ እያንዳንዱ የውሂብ ክፍተት የውሂብ ጎታ በተመራው PWM ለውጥ ላይ ተፈትኗል ፣ ይህ በ NodeJS ይከናወናል። እሴቱ ከቀዳሚው እሴት የተለየ ከሆነ አዲሱ እሴት በተከታታይ አውቶቡስ በኩል ወደ አርዱinoኖ ይላካል። አርዱዲኖ ብሩህነቱን ለመለወጥ የመሪውን የውጤት PWM እሴት ይለውጣል።
የኦምስ የሕግ ማስያ ቀመር V = IR እና P = IV = I²R = V²/R ቀመሩን ይጠቀማል ፣ ለዚህ ፕሮጀክት ሰማያዊ መሪ እጠቀማለሁ። ይህ አስፈላጊ ነው ፣ ምክንያቱም የብርሃን ድግግሞሽ የቮልቴጅ መቀነስ እንዲሁ ይጨምራል። ሰማያዊ መብራት እንደ ቀይ መሪ ካለው ነገር ጋር ሲነፃፀር ከፍተኛ ድግግሞሽ ስላለው። ይህ ማለት ከፍ ያለ ወደፊት ቮልቴጅ ማለት ነው። በስራ ፣ በአይነት እና በመጠን ላይ በመመስረት የሥራው ክልል ይለያያል። ለኔ ማዋቀር ፣ በተከታታይ 220 Ω resistor ፣ መሬት ላይ አሉታዊ እና በአርዱዲኖ ላይ ለ PWM ፒን ተጠቀምኩ። ድስቱ ከአናሎግ ፒን ጋር ተገናኝቷል። በ 5 ቪሲሲ አንድ ጫፍ GND ሌላኛው እና መካከለኛ ፒን ከአናሎግ ፒን ጋር ተገናኝቷል (በእኔ ሁኔታ A0)።
ደረጃ 2 ደረጃ 1 የሃርድዌር ሽቦ
ይህ በጣም ቀላል ነው -እርስዎ የሚመራዎት ትክክለኛ መንገድ ክብ መሆኑን ያረጋግጡ። አንድ ነጥብ ወደ GND ይሄዳል ፣ ሌላኛው ጫፍ ወደ አርዱዲኖ ፒን ይሄዳል። ለኔ ማዋቀር ፣ ፒን 12 ለሊድ እና A7 ለፖት እጠቀም ነበር። በጣም ቀላል ከሆነው ወረዳው ጀምሮ እኔ ንድፍ የለኝም። ሆኖም ፣ ይህንን በመስመር ላይ አገኘሁት (ምስል)
ደረጃ 3 ደረጃ 2 አርዱinoኖ
በመጀመሪያ ፣ መሪዎቹ እና ድስቱ እንደተጠበቀው እየሠሩ ከሆነ ተፈትሸዋል። ይህ የሸክላ እሴቱ መሪውን በሚቆጣጠርበት በቀላል መርሃ ግብር ወርዷል። እኔ ከ 0 እስከ 1023 ወደ 0 ወደ 255 ያለውን የሸክላ ክልል ለመቀየር የግዴታ ተግባርን እጠቀም ነበር ፣ ግን አንድ ቀላል /4 እንዲሁ ይሠራል። ከ 10 ተከታታይ ንባቦች አማካይ አማካይ በመውሰድ የሸክላ እሴቱ ተስተካክሏል ፣ ይህ ነጠብጣቦችን ለማስወገድ ነው። (ሆኖም ፣ ይህ ማለስለሻ በኖድጄኤስ ላይ ችግር ፈጥሯል ስለዚህ ይህ በፕሮጀክቱ ላይ በኋላ ላይ ተወግዷል - በዛ ላይ)
ኮድ አርዱinoኖ
ተከታታይ / አንብብ / ፃፍ ቀጣዩ ደረጃ ብሩህነትን ለማቀናበር በአርዱዲኖ ሀሳብ በተሰጡት ተከታታይ ማሳያ መስኮቶች በኩል የተጠቃሚውን ግብዓት መውሰድ ነው። ይህንን ለማድረግ serial.parseInt () ጥቅም ላይ የሚውለው የኢንቲጀር ዋጋን የሚወስድ እና ሕብረቁምፊን ችላ የሚል ነው። እንዲሁም ፣ የስህተት ምርመራ ወደ ኮዱ ታክሏል። የ PWM እሴት ትክክለኛ ክልል 0 - 255 ነው ፣ አንድ ተጠቃሚ ወደ> 255 ሲገባ ከዚያ እሴቱን 255 ይመድባል እና ተጠቃሚው እሴት ከገባ ወይም <+/- 5 ከተለዋወጠ ጀምሮ ንባቡ ይበልጥ የተረጋጋ እንዲሆን ይህን አድርጌአለሁ።. ለምን ይህ ከ SQL ማዘመን ጋር የተዛመደ ትልቅ ችግር ነው ፣ ከዚያ በኋላ ላይ።
ደረጃ 4: ደረጃ 3 ፦ NodeJS
የ SQL አገልጋይ እንዴት ማግኘት ወይም ማዋቀር እንዳለብዎ አላሳይዎትም። እዚያ ብዙ ትምህርቶች አሉ።
የ NodeJS ፕሮግራም 3 ዋና ገጽታ አለ-
ተከታታይ ውሂብን ያንብቡ
ተከታታይ ውሂብ ይፃፉ
የ SQL ዳታቤዝ ያዘምኑ
በ NodeJS ውስጥ ተከታታይ ግንኙነት ለማድረግ ፣ npm ትዕዛዙን በመጠቀም ሊሠራ የሚችል ሲሪያልፖርት የተባለ ሞዱል ማውረድ አለበት። NodeJS ፕሮግራም በሚቀመጥበት አቃፊ ላይ CMD ን ይክፈቱ ፣ በመተየብ ይጫኑ - npm ጫን serialport እንዲሁም ከ sql ዳታቤዝ ጋር ለመገናኘት የ SQL ሞዱል መጫን አለበት - npm mysql NodeJS ን ይጫኑ - ተከታታይ ወደብ የእኔ የመጀመሪያ እርምጃ ከ NodeJS ጋር ፕሮግራሙ የታተመውን መረጃ ማንበብ እና የፒኤምኤን ብሩህነት ወደ አርዱዲኖ መላክ ነበር። ይህ የተደረገው በተመሳሳይ ድብል እና ወደብ ላይ ተከታታይ ግንኙነት በመክፈት ነው። ግንኙነቱ አንዴ ከተቋቋመ ገቢ መልዕክቶችን አንብቤ በኮንሶል መስኮት ላይ አተምኩት። ብሩህነትን ለመቆጣጠር የፒኤምኤም ዋጋን ለመጻፍ ስሞክር ችግር ተነስቷል።
ስህተቶችን መወርወሩን ቀጠለ -ወደብ አልተከፈተም ፣ የመጀመሪያ መፍትሔዬ ገቢ ውሂብ በሚኖርበት ጊዜ የመፃፍ ተግባሩን መደወል ነበር። ሆኖም ይህ መጥፎ ጥገና ነበር እና ምንም እንኳን ቢሰራም የሚላከው የሸክላ እሴት ሲቀየር ብቻ ነው። ለተከታታይ ሞጁል የምሳሌው ኮድ ተመሳሳይ ስህተት መጣል አይሰራም። በኋላ ላይ ፕሮግራሙ ወደቡን ሳይከፍት የመፃፍ ተግባሩን ለመፈፀም እየሞከረ መሆኑን አወቅሁ ፣ ያ ያንን ስህተት አስከተለ። እኔ setInterval () ተግባርን በመጠቀም በዚህ ችግር ዙሪያ መጣሁ
በርቀት ቦታ ላይ ያለው አገልጋይ የአከባቢው አገልጋይ በአከባቢው ምትክ ጥቅም ላይ ስለዋለ MySQL ቤተ -መጽሐፍት (ከኤምኤምኤም ጫን MySQL ን) ለማገናኘት ጥቅም ላይ ውሏል።
var con የግንኙነት መረጃውን በ JSON ቅርጸት ይይዛል ፣ አንዴ ግንኙነቱ በተሳካ ሁኔታ ከተከናወነ ፣ የመረጃ ቋቱ በጥያቄ ሊተኛ ይችላል። በ SQL መጠይቅ ውስጥ በሚወስኑ ግቤቶች ሌላ ሰንጠረዥን ለማዘመን 2 ተግባራት አንድ ተፈጥረዋል። አዲስ የድስት ዋጋ ሲቀበል እና የብሩህነት ቼክ መጠይቅ በየጊዜው በሚሠራበት ጊዜ የማዘመኛ ጠረጴዛው ይባላል።
NodeJSCode አገናኝ
ደረጃ 5 ደረጃ 4 የድር በይነገጽ
የድር በይነገጽ
አንዳንድ ከኔ CO323 የውሂብ ጎታዎች እና በዩኒቨርሲቲው የድር ሞዱል የተወሰነ ልምድ ስላገኘሁ ዋናው ድረ -ገጽ በ PHP ተፃፈ። የኤችቲኤምኤል ሰንጠረዥ እና ቅጽ የ sql ውሂቡን ለማሳየት ያገለግል ነበር።
የ PHP SQL መዳረሻ ኮድ አገናኝ ወደ የድር በይነገጽ ክፍል ይሸብልሉ።
ኤችቲኤምኤል እና ሲኤስኤስ * የጃቫስክሪፕት webapage ኮድ -አገናኝ ወደ ታች ይሸብልሉ
የመጨረሻ ድር ጣቢያ