ዝርዝር ሁኔታ:

የደመና ተቆጣጣሪ ከ AWS & ARDUINO ጋር - የኤሌክትሪክ ልጅ 6 ደረጃዎች
የደመና ተቆጣጣሪ ከ AWS & ARDUINO ጋር - የኤሌክትሪክ ልጅ 6 ደረጃዎች

ቪዲዮ: የደመና ተቆጣጣሪ ከ AWS & ARDUINO ጋር - የኤሌክትሪክ ልጅ 6 ደረጃዎች

ቪዲዮ: የደመና ተቆጣጣሪ ከ AWS & ARDUINO ጋር - የኤሌክትሪክ ልጅ 6 ደረጃዎች
ቪዲዮ: Cloud Computing Explained 2024, ህዳር
Anonim
የደመና ተቆጣጣሪ በ AWS & ARDUINO - የኤሌክትሪክ ልጅ
የደመና ተቆጣጣሪ በ AWS & ARDUINO - የኤሌክትሪክ ልጅ

እሱ ቀላል ፕሮጀክት ነው - የሆነ ነገር ሲከሰት ብርሃንን ያብሩ… በዚህ ቀን በኮምፒውተሮቻችን ላይ በብዙ ዳሽቦርዶች ወደ ማሳወቂያዎች እየደነዘዙ መምጣት ፣ እኛ በጣም አስፈላጊ የሆኑትን እንዳናጣ እንዴት ማረጋገጥ እንችላለን? መልሱ የአካላዊ ሁኔታ አመላካች ነው። ወይም ለሥራው የበለጠ የተወሰነ ፣ የደመና መቆጣጠሪያ ፣ በጠረጴዛዎ ላይ መቀመጥ የሚችል - ሁል ጊዜ በእይታ ውስጥ። ስሙ እንደሚጠቆመው ፣ ተቆጣጣሪው የደመና አገልግሎቶችዎን ጤና ለመከታተል ይረዳል (… ወይም በእውነቱ ሌላ ነገር ፣ ሰማዩ ወሰን ነው ፣ ለቅጣቱ ይቅርታ ያድርጉ)። እርስዎ ፣ እንደ እኔ ፣ አንድ ማድረግ ያስፈልግዎታል? ባይሆን እንኳን ፣ ለወደፊቱ የ IoT ፕሮጀክትዎ ሀሳብ ሊኖርዎት ይችላል።

ደህና ፣ ዝግጁ ከሆኑ እንጀምር!

ደረጃ 1 አካላት ፣ አቅርቦቶች ፣ አስፈላጊ መሣሪያዎች ፣ መተግበሪያዎች እና የመስመር ላይ አገልግሎት

ግብዓቶች እና አቅርቦቶች

_ አርዱዲኖ ማይክሮ ኢ ጀኑይኖ ማይክሮ (1 ክፍል)… ወይም ማንኛውም ትንሽ አርዱዲኖ ተኳሃኝ - በእኔ ሁኔታ ፍሪቶኒክስ ሊዮስቲክ (https://www.freetronics.com.au/collections/arduino/products/leostick)

_ ThingM BlinkM - I2C ቁጥጥር የሚደረግበት RGB LED (1 ክፍል)

_ አነስተኛ የደመና ብርሃን (1 ዩኒት)…

_ ዩኤስቢ-ሀ ለ ቢ ገመድ (1 አሃድ)…

መሣሪያዎች ያስፈልጋሉ

_ ብረታ ብረት (አጠቃላይ)

APPS እና የመስመር ላይ አገልግሎት

_ የአማዞን ድር አገልግሎቶች AWS Lambda (https://aws.amazon.com/it/lambda/)

_ የአማዞን ድር አገልግሎቶች AWS IoT (https://aws.amazon.com/it/iot/)

ደረጃ 2 - ሃርድዌር

ሃርድዌር
ሃርድዌር
ሃርድዌር
ሃርድዌር

የሌሊት መብራቱ ቀድሞውኑ አብሮ በተሰራው ኤልኢዲ ይመጣል - በእኔ ሁኔታ ውስጥ ቀዝቃዛ ነጭ። በተለያየ ሁኔታ የተለያየ ሁኔታን መጠቆም ጥሩ ይመስለኝ ነበር። ስለዚህ የደመናውን ቅርፅ መያዣ ብቻ አቆየሁ። ለቀዶ ጥገናው አንጎል እኔ ያገኘሁትን አነስተኛውን የአርዲኖን ተኳሃኝ መርጫለሁ - ፍሪቶሪዮኒክስ ሊዮስቲክክ ለዓመታት የእኔ ተመራጭ የፕሮቶታይፕ መድረክ ነበር እና ብዙ መለዋወጫዎች አሉኝ። እሱ በጥሩ ነገሮች ተጭኖ ይመጣል -ፓይዞ ተናጋሪ ፣ ሁለት RGB LEDs (አንዱ ከኃይል ጋር የተሳሰረ ፣ RX እና TX ቢሆንም) እና ከሁሉም በላይ በቀላሉ ወደ ዩኤስቢ ወደብ መሰካት ይችላሉ - ምንም ውጫዊ ኤፍቲአይዲ ወይም ገመድ አያስፈልግም። እሱ ትንሽ ቢሆንም የዳቦ ሰሌዳ ተኳሃኝ ነው።

ለምን ESP8266 አልመረጥኩም? በእውነቱ ሽቦ አልባ ለመሆን ፣ የኃይል ገመዱን ሊቆርጡ ይችላሉ - ይህም ባትሪ እና የመሙላት አለመመቸት ነገሮችን ለማከል ትንሽ ውስብስብ ያደርገዋል። የደመና መቆጣጠሪያ ከኮምፒውተሬ አጠገብ ስለሚቀመጥ የዩኤስቢ ኃይልን መጠቀም በጣም ቀላል ነው። እንዲሁም የ Wi-Fi ግንኙነትን ሁል ጊዜ ወደ ፊት ቀጥ ብሎ አይመለከትም። በ ATmega32u4 ላይ በመመስረት ፣ አርዱዲኖ ማይክሮ እና ሊዮስቲክክ የ I2C መረጃን በ D2 ላይ እና በ D3 ላይ ሰዓት የማግኘት እንግዳነትን እያጋሩ ነው። የ BlinkM RGB LED ን ሲያገናኙ ይህ ተገቢ ይሆናል። በቀላሉ የ BlinkM ጋሻውን ወደ ራስጌዎቹ A2.. A5 መሰካት ከሚችሉት ከተለመዱት Atmega328 ሰሌዳዎች በተቃራኒ ፣ ይህ እዚህ አይሰራም (ለስላሳ I2C ቤተ -መጽሐፍት አልቸገርኩም)።

በ BlinkM ላይ የወንድ ራስጌዎች VCC እና GND ን በማጥፋት ፣ ከዚያ እነዚያን በሽቦ ማራዘም እና ሁሉንም ነገር በተሰካ አነስተኛ ጥቅል ውስጥ ማቆየት እችላለሁ። አርዱinoኖ ሳይገናኝ በስክሪፕት የተሞሉ የቀለም ንድፎችን ይጫወቱ። እኔ WS2812 ማለት ይቻላል (Adafruits NeoPixels ጥሩ ናቸው) በተሻለ ያገለግለኝ ነበር - ወዮ እኔ ምንም አልነበረኝም። የሃርድዌር ቢቱን ለመጨረስ ፣ የወንድ ዓይነት-ኤ ዩኤስቢ መሰኪያ ተቃራኒውን ጫፍ ቆረጥኩ ፣ በደመናው ብርሃን መሠረት አቅራቢያ ባለው ቅድመ-ተቆፍሮ ቀዳዳ ውስጥ አስገባሁት እና ገመዶቹን ወደ ሊዮስቲክ (ቀይ: 5 ቪ ፣ ነጭ) ሸጥኩ። ዳታ- ፣ አረንጓዴ-ውሂብ+፣ ጥቁር-መሬት)።

ደረጃ 3 የመፍትሔ ሥነ ሕንፃ

የመፍትሔ ሥነ ሕንፃ
የመፍትሔ ሥነ ሕንፃ
የመፍትሔ ሥነ ሕንፃ
የመፍትሔ ሥነ ሕንፃ

በራሴ ላይ ያስቀመጥኩት ብቸኛው ጠንካራ መስፈርት ሞኒተሩ ከኬላ ጀርባ እንዲሠራ ማድረግ ነበር። ምንም እንኳን ወሳኝ ባህሪ ቢሆንም ፣ ይህ ለድርጊት ለውጦች ተግባራዊ የማይሆን የድር መንጠቆዎችን አደረገ። የምርጫ ዘዴ ከቲ.ሲ.ሲ ትራፊክ አንፃር ውድ ነው እና በምርጫ ድግግሞሽ ላይ በመመርኮዝ ክስተቶችን ሊያዘገይ ይችላል።

መፍትሄው ሙሉ ድርብ ግንኙነትን በሚያቀርቡ በዌብሳይቶች ውስጥ ይገኛል። የአማዞን IoT አገልግሎት በ WebSockets ላይ MQTT ን የሚደግፍ የመልእክት ደላላ ይሰጣል። እንደ ሆነ ፣ ነገሮችን ፣ ጥላዎችን ፣ ፖሊሲዎችን ወይም ደንቦችን ሳያዋቅሩ አገልግሎቱ ሊጠራ ይችላል።

ለ Arduino Yún የሚገኝ መሣሪያ ኤስዲኬ አለ እና አንዳንድ ጥረቶች ኤስዲኬን እንደ ESP8266 ላሉ ሌሎች የመሣሪያ ስርዓቶች ለማስተላለፍ የተደረጉ ናቸው። ግን ተቆጣጣሪው ሁል ጊዜ በተከታታይ በይነገጽ ስለሚገናኝ ፣ የደንበኛውን ኤፒአይ ለመተግበር እና አርዱዲኖን የቀለም ኮዶችን ለመቀበል እና ለማሳየት ብቻ የ NodeJS ትግበራ (በዴስክቶፕ ኮምፒተር ላይ እንዲሠራ) ቀደም ብዬ ወሰንኩ። የዚያ መንገድ ለውጦች በጃቫስክሪፕት ውስጥ በቀላሉ ሊደረጉ ይችላሉ ፣ ከ firmware ሰቀላዎች ጋር ሳያስቸግሩ። ትንሽ ምሳሌ መሠረተ ልማት ያስፈልጋል። በድር አገልጋይ ምሳሌ ላይ የጤና ፍተሻዎችን እና በሲፒዩ ጭነት ላይ በመመርኮዝ የራስ -ልኬት ፖሊሲዎችን የሚያከናውን የመላኪያ ቀጠናዎች ነቅተናል እንበል። ተጓዳኝ የ CloudFormation አብነት በዲዛይነር ውስጥ ሊታይ ወይም the ️ በቀጥታ ከመሥሪያ ቤቱ ሊፈጠር ይችላል። ማሳሰቢያ - በዚህ ቁልል ውስጥ ያሉ አንዳንድ አገልግሎቶች ክፍያ ሊያስከፍሉ ይችላሉ።

ለ Lambda ተግባር እና አስፈላጊ ፈቃዶች ንብረቶችን አብነት ዘረጋሁት። በኋላ የ IoT REST ኤፒአይ የመጨረሻ ነጥብ እንደ ግቤት እንዲገባ ይጠይቁ። ይህንን በራስ-ሰር ለማድረግ ፣ አርኤን (> aws iot description-endpoint) ን ለመጠየቅ CLI ን የሚጠቀም ትንሽ የ shellል ስክሪፕት ጻፍኩ እና በመስመሩ ውስጥ ካለው ግቤት ጋር መፍጠር-ቁልል ይደውላል። ወይም አሁንም በእጅዎ ማድረግ ይችላሉ-

// IoT REST API መጨረሻን ይመልሱ

aws iot መግለጫ-መጨረሻ ነጥብ

// CREATE STACK> AWS የደመና መረጃ ፈጠራ-ቁልል-የቁልል-ስም MiniCloudMonitor-ሙከራ-አካል ፋይል //cfn-template.json --parameters ParameterKey = IotRestApiEndpoint ፣ ParameterValue = {IoT_REST_API_ENDPOINT}-ችሎታዎች CAPABILITY_NAMED_

// ሰርዝ STACK> aws cloudformation delete-stack-stack-name MiniCloudMonitor

በጥሩ ሁኔታ እኔ የ Lambda ተግባርን በመጥራት እና በዚያም የሞኒተሩን ሁኔታ ለማዘመን የራስ -ሰር ልኬትን የሚቀሰቅሱ ተመሳሳይ የማንቂያ ደወሎችን መጠቀም አለብኝ። በአሁኑ ጊዜ ይህ የሚቻለው SNS ን እንደ መካከለኛ ሲጠቀሙ ብቻ ነው። በወቅቱ ይህ ተጨማሪ ንብርብር ተደጋጋሚ ሆኖ ተሰማኝ እና Lambda ን በቀጥታ ለመጥራት የ CloudWatch EC2 የሕይወት ዑደት ደንቦችን ለመጠቀም ወሰንኩ። አሁንም ፣ ለወደፊቱ የ SNS → Lambda አማራጭን ማሰስ እፈልጋለሁ።

ደረጃ 4: ሶፍትዌር

አርዱዲኖ ንድፍን በመፃፍ ጀመርኩ። ዋናው loop () አዲስ መስመርን እስኪያገኝ ድረስ Chars ን ከተከታታይ ግንኙነት ማንበብ እና ሕብረቁምፊን መገንባት ነው። ከዚያ የሄክስ ቀለም ኮድ እንደተላከ እና ተገቢው የ I2C ትዕዛዝ ለ BlinkM LED የተፃፈ ነው ተብሎ ይገመታል። ይህ ስለ ቅልጥፍና ያህል ምቾት አይደለም። የዚህ ስዕል እና ሌሎች ፋይሎች ሙሉ ምንጮች በ GitHub ላይ ሊገኙ ይችላሉ። አንዳንድ አግባብነት ያላቸው የኮድ ቁርጥራጮች የሚከተሉት ናቸው

ባዶነት loop () {

ሳለ (Serial.available ()) {

char inChar = (char) Serial.read ();

ከሆነ (inChar == '\ n') {

ረጅም ቁጥር = strtol (inputString.c_str () ፣ NULL ፣ 16);

ባይት r = ቁጥር >> 16;

ባይት g = ቁጥር >> 8 & 0xFF;

ባይት ለ = ቁጥር & 0xFF;

BlinkM_fadeToRGB (blinkm_addr ፣ r ፣ g ፣ b);

inputString = "";

} ሌላ {

inputString += inChar;

}

}

}

የ NodeJS መተግበሪያ ለ AWS እና ለአርዱዲኖ በይነገጾችን መተግበር አለበት። እጅግ በጣም ጥሩውን የ serialportpackage ሲጠቀሙ በኋላ በጥቂት የኮድ መስመሮች ብቻ ሊከናወን ይችላል-

var serialport = ይጠይቁ ('serialport'); ወደብ = አዲስ serialport (PORT_COM_NAME ፣ {

baud ተመን ፦ SERIAL_BAUD_RATE

});

port.on ('ክፍት' ፣ ተግባር () {

});

port.on ('ስህተት' ፣ ተግባር (ስህተት) {

});

ከ AWS IoT ጋር መገናኘት እንዲሁ ብዙ ጥረት አያስፈልገውም። ብቸኛው ጥፋት MQTT+WebSockets ን ወደብ 443 በመጠቀም በአድራሻ ቁልፎች በኩል ማረጋገጫ እንደሚያስፈልግ ማወቅ ነው። ኤስዲኬ እነዚህን ከአከባቢ ተለዋዋጮች ያነባል። AWS_ACCESS_KEY_ID ን እና AWS_SECRET_ACCESS_KEY ን ወደ ውጭ መላክ አስፈላጊ ሊሆን ይችላል።

var awsiot = ያስፈልጋል ('aws-iot-device-sdk'); var device = awsiot.device ({

clientId ፦ 'MiniCloudMonitor-' + (Math.floor ((Math.random () * 100000) + 1))) ፣

ክልል: AWS_REGION ፣

ፕሮቶኮል: 'wss', ወደብ: 443 ፣

ማረም: እውነት

});

device.on ('ተገናኝ' ፣ ተግባር () {

መሣሪያ. የደንበኝነት ምዝገባ (MQTT_TOPIC);

});

device.on ('መልዕክት' ፣ ተግባር (ርዕስ ፣ የክፍያ ጭነት) {

ከሆነ (ወደብ እና&& ጫን && ርዕስ == MQTT_TOPIC) {

var message = JSON.parse (የክፍያ ጭነት);

ከሆነ (መልእክት። ባለቤትነት አለው (MQTT_JSON_KEY))

{ተመለስ;

}

}

});

የ Lambda ተግባር የቀለም ኮድ እንደ የግብዓት ልኬት ይቀበላል - ቆንጆ አይደለም ፣ ግን በዚህ ደረጃ በጣም ተጣጣፊ ነው። ወደ MQTT ርዕስ ለማተም እንዲቻል ፣ የ IoT REST ኤፒአይ የመጨረሻ ነጥብ የሚፈልገውን የ IotData ን ነገር በፍጥነት ያነቃቃል። የ CloudFormation አብነት ቁልል በሚፈጠርበት ጊዜ ያንን ይንከባከበው ነበር።

var AWS = ያስፈልጋል ('aws-sdk') ፤ var mqtt = new AWS. IotData ({

የመጨረሻ ነጥብ: process.env. MQTT_ENDPOINT});

exports.handler = ተግባር (ክስተት ፣ ዐውደ -ጽሑፍ ፣ መልሶ ጥሪ) {

var params = {

ርዕስ: process.env. MQTT_TOPIC ፣

የክፍያ ጭነት ፦ '{ "color \": / "' + event.colour + '\"}', ነጥብ: 0

};

mqtt.publish (ምሳሌዎች ፣ ተግባር (ስህተት ፣ ውሂብ) {

መልሶ መደወል (ስህተት);

});

};

ደረጃ 5 መደምደሚያ

በደመናው ውስጥ “የተወለደ” ምናባዊ ክስተት ወደ ሥጋዊው ዓለም በማምጣት በጣም ተደስቻለሁ። እና የእኔ ትንሽ የቤት እንስሳት ፕሮጀክት እንደ አዝናኝ ክምር ነበር። ይህንን ወደ ቀጣዩ ደረጃ ለመውሰድ እኔ ከግምት ውስጥ አስገባለሁ…

  • በጠንካራነት እና በልዩ አያያዝ ላይ መሻሻል
  • የ AWS ደመና ልኬቶችን ለማዋሃድ የተሻሉ መንገዶችን ያስሱ
  • እንደ መለኪያዎች ፣ የባር ግራፎች ፣…
  • እንደ Azure ፣ Google ፣ Heroku ፣…
  • ለጄንኪንስ ፣ ለጊትሆብ ፣ ለትግበራ የተወሰኑ ዝግጅቶችን ይከታተሉ…

ይህንን መመሪያ በማንበብ እንደወደዱት ተስፋ አደርጋለሁ እና ምናልባትም በመንገድ ላይ አዲስ ነገር አንስተዋል። ነገሮችን ለማድረግ የተለየ/የተሻለ መንገድ ማሰብ ከቻሉ እባክዎን ከዚህ በታች ባሉት አስተያየቶች ውስጥ ያጋሩት። እና በእርግጥ ፣ ስህተቶችን ከተመለከቱ ወደ ላይ ከፍ ያለ አድናቆት ይኖረዋል። ስለ ጊዜዎ እናመሰግናለን.

የሚመከር: