ዝርዝር ሁኔታ:
- ደረጃ 1 ክሩቶን
- ደረጃ 2: አስማሚ ክሪቶን
- ደረጃ 3 - የመሣሪያ ጉባኤ
- ደረጃ 4 ፦ FIRMWARE
- ደረጃ 5 - የመሣሪያ ካርድ
- ደረጃ 6: የሳምንቱ ካርድ
- ደረጃ 7: ማብቂያ ማበጀት
- ደረጃ 8: ቪዲዮዎች
ቪዲዮ: IOT123 - የ SENSOR HUB: ICOS10 CORS WEBCOMPONENTS: 8 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-31 10:16
ASSIMILATE SENSOR/ACTOR Slaves በ Crouton ውስጥ ምስላዊ መግለጫዎችን ለመለየት የሚያገለግል ሜታዳታን አካትቷል። ይህ ግንባታ ከቀዳሚዎቹ በመጠኑ የተለየ ነው ፤ የሃርድዌር ለውጦች የሉም። ሶፍትዌሩ አሁን በአዲሱ የ AssimilateCrouton ግንባታ ውስጥ ሊዋሃዱ የሚችሉ ብጁ (ሀብታም) አርታኢዎችን ማስተናገድን ይደግፋል። በዚህ ጽሑፍ ውስጥ ስለ firmware እና ስለ MQTT ዳሽቦርድ ለማብራራት የበለጠ ትኩረት ይሰጣል።
ከሚቆጣጠሩት መሣሪያ የ WebComponents ን ማገልገል ከሚያስገኛቸው ጥቅሞች አንዱ የመሣሪያው ይበልጥ የላቀ ቁጥጥር መሣሪያው ወደተገናኘበት አውታረ መረብ የተገደበ መሆኑ ነው - የእርስዎ የ WiFi መዳረሻ ነጥብ። ምንም እንኳን አንድ ማረጋገጫ (MQTT) አገልጋይን ከተጠቀሙ በኋላ የጥበቃ ተመሳሳይነት ቢኖርም ፣ አሳሽዎን ለጊዜው (AssimilateCrouton ድር ጣቢያ) ለቀው ከወጡ በሕዝብ አውታረ መረቦች ላይ አንድ ሰው ወደ ውስጥ ዘልሎ አውቶማቲክ መሣሪያዎችዎን ሊቆጣጠር ይችላል። ይህ የ CORS WebComponent ባህሪ በይፋ የታየ ንባብ (ቴምፕ ፣ የብርሃን ደረጃዎች ፣ እርጥበት) ብቻ እንዲኖር እና የትእዛዝ ተግባራት (አብራ/አጥፋ ፣ መርሐግብር ማስያዝ) ከመሣሪያው አውታረ መረብ ብቻ ይገኛል።
በመሣሪያው ላይ ፣ በ SPIFFS ውስጥ ማረጋገጫ እና ማስተናገጃ ያላቸው ሁሉም የዌብቨርቨር ባህሪዎች አሁንም ይደገፋሉ ፣ ግን ለፖሊመር ዌብ ኮምፖኒተሮች (ክሩቶን ፖሊመር 1.4.0 ን ይጠቀማል) ለ CORS (Cross Origin Resource Sharing) ድጋፍ ልዩ ትኩረት ተደርጓል።
በ AssimilateCrouton (ለ Assimilate IOT አውታረ መረብ ጥቅም ላይ የዋለው የ Crouton ሹካ) ለውጦቹ ያካትታሉ
- ከሌሎች ነገሮች መካከል ለመሣሪያ ካርድ (assim-device) ድጋፍ ፣ ለተጠቃሚ ፣ ለመሣሪያ የግለሰብ ካርዶችን ያሳያል
- ለካርድ ጠቃሚ ዐውደ -ጽሑፍ መረጃን የሚያሳይ በሁሉም ካርዶች ላይ የመረጃ ንብረት
- ድጋፍ ለ CORS የድር ተባባሪዎች ፣ በዚህ ሁኔታ በመሣሪያው ላይ ባለው የድር አገልጋይ ላይ የተስተናገደ (ESP8266)።
ደረጃ 1 ክሩቶን
Croutonis የ IOT መሣሪያዎችዎን በዝቅተኛ ማዋቀር እንዲመለከቱ እና እንዲቆጣጠሩ የሚያስችልዎ ዳሽቦርድ ነው። በዋናነት ፣ MQTT እና JSON ን ብቻ በመጠቀም ለማንኛውም የ IOT ሃርድዌር አድናቂ ለማዋቀር ቀላሉ ዳሽቦርድ ነው።
ASSIMILATE SLAVES (ዳሳሾች እና ተዋናዮች) ጌታው የመሣሪያውን መረጃ ለመገንባት መረጃ የሚጠቀምበትን ሜታዳታ እና ንብረቶችን አካትተዋል Crouton ዳሽቦርድውን ለመገንባት የሚጠቀምበትን። በ ASSIMILATE NODES እና በ Crouton መካከል ያለው መካከለኛ የድር ድርጣቢያዎች ወዳጃዊ የሆነ የ MQTT ደላላ ነው -ትንኝ ለሙከራው ያገለግላል።
ASSIMILATE MASTER ንብረቶችን ሲጠይቅ ፣ ለ Crouton ዝመናዎች በሚፈለገው ቅርጸት የምላሽ እሴቶችን ይቀርፃል። የ AssimilateCrouton ሹካ መሣሪያዎን የሚያስተዳድሩትን የንግድ ህጎች ለማዳበር የሚያስችሉዎትን አንዳንድ ባህሪያትን ያክላል ፣ ማለትም የ IOT መሣሪያ ምንም የተከተተ የንግድ ደንቦችን አያስፈልገውም ፣ እሱ ለ MQTT/I2C ግንኙነት ወደ ብልህ (ATTINY ቁጥጥር) የባሪያ ተዋናዮች እና ዳሳሾች ብቻ ነው።.
ደረጃ 2: አስማሚ ክሪቶን
ወደ ክሩቶን ይለወጣል
ከተሰቀለው ስሪት ለውጦች የሚከተሉትን ያካትታሉ:
- የመጨረሻ ነጥብ የመንገድ ንብረት ከተገለጸ ፣ ለካርዱ ዌብኮፕተሩ ለኤአርኤምኤምኤምኤምፖርት ለ CORS ሀብት (በዚህ ግንባታ ውስጥ በ ESP8266 ላይ ያለው የድር አገልጋይ) ያደርጋል።
- ከ CORS WebComponent (ከ ጥገኝነት) የሚመጡ ማናቸውም ሀብቶች ከ Crouton ድር ጣቢያ እንዳገለገሉ ይጠቀሳሉ። ለየት ያለ ተቆጣጣሪ መጫን ሲሳኩ ከድር ጣቢያው መንገዶችን እና ጭነቶችን ያስተካክላል።
- የአሁኑ አካባቢያዊ ሰዓት ከላይ በቀኝ በኩል ይታያል ፣ ማረጋገጫ ለማቀድ ቀጠሮ ይይዛል።
የፖሊመር ጥገኛዎች እና ኮርሶች
የአንድ ፖሊመር ጥገኛ ዛፍ ቅጠሎች በ CORS ውስጥ ሊስተናገዱ ይችላሉ። የስር ጥገኞች በመተግበሪያ ውስጥ ብዙ ጊዜ ጥቅም ላይ ሊውሉ ስለሚችሉ ፣ ከ 2 አካባቢዎች (ድር ጣቢያው እና መሣሪያው) ማጣቀሻ ሊሆኑ አይችሉም ፣ ምክንያቱም ፖሊመር ሞዱል ጫኝ እንደ 2 የተለያዩ ሀብቶች ስለሚቆጥራቸው እና በርካታ የምዝገባ ስህተቶች በፍጥነት በመተግበሪያ ላይ ይንሳፈፋሉ።
በዚህ ምክንያት የድር ካርድ ለካርድ (የኤችቲኤምኤል ፋይል በ 1.4.0) እና ተጓዳኝ የሲኤስኤስ ፋይል በመሣሪያው ላይ የተስተናገዱ ፋይሎች ብቻ ናቸው። ሌሎቹ ጥገኞች ዌብኮምፓየር በ “html” አቃፊ ውስጥ እንደተስተናገደ የሚጠቀሱ ሲሆን ይህም በ ESP8266 ላይ ወደ SPIFFS ለመስቀል ዝግጁ እስኪሆን ድረስ የድር አቃፊዎቹን ከዚያ አቃፊ ለማዳበር ቀላል ያደርገዋል። AssimilateCrouton ትክክለኛውን ፋይሎች እንዴት ማግኘት እንደሚቻል ይሰራሉ።
መሰናክል
የዋናው ክሩቶን edfungus ፈጣሪ በ Pug/Less ውስጥ ምንጩን ጽፎ NPM/Grunt toolchain ነበረው። እኔ Pug/Less ን እንደ ኤችቲኤምኤል/ሲኤስ ሰጠሁት እና የተሰጡትን ፋይሎች አርትዕ/አሰራጭቻለሁ። ይህ የ NPM/Grunt toolchain ን ሰበረ። ይህንን ማስተካከል በ FUTURE ክፍል ውስጥ ተሸፍኗል።
በእርስዎ DEV ሳጥን ላይ ዳሽቦርዱን በአከባቢው መሞከር ይችላሉ-
- በስር አቃፊው ውስጥ ካለው የትእዛዝ መስመር
- npm ጀምር
- ሊት-አገልጋዩ ለ https:// localhost: 10001 ተፈትቷል
ወደ የማይንቀሳቀስ የድር አገልጋይ ያሰማሩ ፦
- ከ node_modules በስተቀር ሁሉንም አቃፊዎች ይቅዱ
- index.html (እና ምናልባትም web.config) ይቅዱ
የወደፊት
ከዋና ዋና ግቦች አንዱ ወደ ፖሊመር 3 ማሻሻል እና ከፖሊመር CLI መስራት ነው። የ IOT ገንቢዎች የራሳቸውን እንዲያዳብሩ የላቁ አርታኢዎችን እና ማዕቀፍ ማከል ከፍተኛ ቅድሚያ የሚሰጠው ጉዳይ ነው። በመጨረሻ የተራቀቀ አውቶማቲክ ስርዓት እንደ AssimilateCrouton ካሉ ከተነጠሉ የ MQTT ደንበኞች ሙሉ በሙሉ ይሠራል።
ለ AssimilateCrouton ጥቅም ላይ የዋለው የመሣሪያ መረጃ ፓኬት ምሳሌ
{ |
"የመሣሪያ መረጃ" ፦ { |
"የመጨረሻ ነጥቦች" ፦ { |
«CC_device» ፦ { |
"device_name": "ash_mezz_A3", |
"የካርድ ዓይነት": "assim-device", |
"ssid": "Corelines_2" ፣ |
"ip_addr": "192.168.8.104", |
"የመጨረሻ ነጥቦች": [ |
{ |
"ርዕስ": "የእድገት መብራቶች" ፣ |
"የካርድ ዓይነት": "crouton-simple-toggle", |
"የመጨረሻ ነጥብ": "ማብሪያ" |
}, |
{ |
"ርዕስ": "የእፅዋት መብራቶች" ፣ |
"የካርድ ዓይነት": "crouton-assim-weekview", |
"የመጨረሻ ነጥብ": "CC_switch" |
} |
] |
}, |
«CC_switch» ፦ { |
"የካርድ ዓይነት": "assim-weekview", |
"መረጃ": "በ 15 ደቂቃ የጊዜ ክፍተቶች ውስጥ መብራቶቹን ያብሩ ወይም ያጥፉ" ፣ |
"መንገድ": "https://192.168.8.104/cors" ፣ |
"ርዕስ": "የእፅዋት መብራቶች" ፣ |
"interval_mins": 15, |
"እሴቶች": { |
"እሴት": "" |
} |
}, |
"ቀይር": { |
"ርዕስ": "የእድገት መብራቶች" ፣ |
"የካርድ ዓይነት": "crouton-simple-toggle", |
"መረጃ": "በማስታወቂያ ላይ መብራቶችን ያብሩ ወይም ያጥፉ" ፣ |
"መለያዎች": { |
"ሐሰት": "ጠፍቷል", |
"እውነት": "በርቷል" |
}, |
"አዶዎች": { |
"ሐሰት": "ፀሐይ-ኦ" ፣ |
"እውነት": "ፀሐይ-ኦ" |
}, |
"እሴቶች": { |
"እሴት": 0 |
} |
} |
}, |
"ሁኔታ": "ጥሩ" ፣ |
"ስም": "ash_mezz_A3", |
"መግለጫ": "በአሽሞር ፣ ሜዛኒኔ ፣ አካባቢ ኤ 2" ፣ |
"ቀለም": "#4D90FE" |
} |
} |
በ GitHub በ hosted የተስተናገደ rawdeviceInfo.json ን ይመልከቱ
ደረጃ 3 - የመሣሪያ ጉባኤ
የሃርድዌር ለውጦች ስለሌሉ ፣ ለሚመለከተው መረጃ አገናኞች እነ:ሁና ፦
- የllል ስብሰባ
- ቁሳቁሶች እና መሳሪያዎች
- MCU ዝግጅት
- MCU የቤቶች ዝግጅት
- ባሮቹን መገንባት ዝቅተኛ-ጎን መቀየሪያ/ዳግም ማስጀመር ሴት ልጅ-ቦርድ
- ዋና ዋናዎቹን አካላት መሰብሰብ
ደረጃ 4 ፦ FIRMWARE
ዋና ለውጦች ይህንን ቤት
የ AssimilateCrouton ትግበራ የ CORS ሀብቶችን ከመሣሪያው ለመጠቀም እንዲችል ፣ የምላሽ ራስጌዎች በተወሰነ መንገድ መዋቀር አለባቸው። ይህ በዚህ የጽኑዌር ልቀት (static_server.ino => server_file_read ()) ውስጥ ተተግብሯል።
እንዲሁም ለፖሊመር ዋናው የጥገኝነት ግራፍ ከአንድ መነሻ መሆን ነበረበት። በመሣሪያው ላይ በማይገኙበት ጊዜ ሀብቶቹን ከ AssimilateCrouton ድር ጣቢያ እንደገና ለመጫን በ SPIFFS CORS ፋይሎች ላይ የስህተት ተቆጣጣሪ (corsLinkOnError) ለማከል አንድ ስትራቴጂ ጥቅም ላይ ውሏል።
በመሣሪያ መረጃ ውስጥ የተፈጠሩ የመጨረሻ ነጥቦችን ለማበጀት በ SPIFFS ፋይል ስርዓት ውስጥ 2 አዲስ ስምምነቶች ታክለዋል - AssimilateCrouton ዳሽቦርድ ካርዶችን ለመፍጠር የሚጠቀምበት -
- /config/user_card_base.json የአሂድ ሰዓት ተለዋዋጮች በቅድሚያ ሲቀያየሩ የመጨረሻ ነጥብ ፣ ይህ በተለምዶ የአሲም-መሣሪያ ካርድ የሚታከልበት ነው። ይህ ከመሣሪያው ጋር ተመልሶ አይገናኝም።
- /config/user_card_#.json የአፈጻጸም ጊዜ ተለዋዋጮች በቅድሚያ ሲለዋወጡ: -,. ይህ በተለምዶ እንደ assim-weekview ካርድ ያሉ ሀብታም አርታኢዎች ከ #ጋር በሚዛመደው በ I2C ባሪያ (ተዋናይ/ዳሳሽ) ላይ ተጣብቀው የሚታከሉበት ነው።
የ SKETCH/ቤተ መጻሕፍት
በዚህ ደረጃ ፕሮጀክቱ ለ AssimilateBus Arduino ቤተ -መጽሐፍት እንደ ምሳሌ ተጠቃሏል። ይህ በዋናነት ሁሉንም አስፈላጊ ፋይሎች ከአርዱዲኖ አይዲኢ በቀላሉ ለመድረስ ነው። ዋናዎቹ የኮድ ቅርሶች -
- mqtt_crouton_esp8266_cors_webcomponents.ino - ዋናው የመግቢያ ነጥብ።
- assimilate_bus.h/assimilate_bus.cpp - የ I2C ን ግንኙነት ከባሪያ ዳሳሽ/ተዋንያን ጋር የሚያስተናግደው ቤተ -መጽሐፍት
- VizJson.h/VizJson.cpp - በ MQTT በኩል የታተመ ማንኛውንም JSON የሚቀርጽ/የሚገነባው ቤተ -መጽሐፍት
- config.h/config.cpp - በ SPIFFS ላይ የውቅረት ፋይሎችን የሚያነብ/ሳጥኖችን/የሚጽፍ ቤተ -መጽሐፍት
- static_i2c_callbacks.
- static_server.ino - የድር አገልጋዩ ተግባራት
- static_utility.ino - የረዳት ተግባራት
የማይንቀሳቀስ የ INO ተግባራት (በቤተመፃህፍት ፋንታ) በተለያዩ ምክንያቶች ጥቅም ላይ ውለው ነበር ፣ ግን በዋነኝነት የዌብዘርቨር እና የ MQTT ተግባራት አብረው በደንብ እንዲጫወቱ።
የ SPIFFS ሀብቶች
የ SPIFFS ፋይሎች ዝርዝር ማብራሪያዎች እዚህ ይገኛሉ።
- favicon.ico - በአሴ አርታኢ የሚጠቀምበት ሀብት
-
ማዋቀር
- device.json - ለመሣሪያው ውቅር (Wifi ፣ MQTT…)
- slave_metas _#. json - ለእያንዳንዱ የባሪያ አድራሻ ቁጥር (#) በአሂድ ሰዓት የተፈጠረ
- user_card _#. json - ለእያንዳንዱ የባሪያ አድራሻ ቁጥር (#) ከመሣሪያ መረጃ ጋር ለመዋሃድ ብጁ የመጨረሻ ነጥብ
- user_card_base.json - ለመሣሪያው ከመሣሪያ መረጃ ጋር ለመዋሃድ ብጁ የመጨረሻ ነጥብ
- user_meta _#. json - ብጁ ሜታዳታ ለእያንዳንዱ የባሪያ አድራሻ ቁጥር የባሪያዎቹን ይሽራል (#)
- user_props.json - በባሪያዎቹ ሜታዳታ ውስጥ ያሉትን ለመሻር ብጁ የንብረት ስሞች
-
ኮርሶች
- card -webcomponent.css - ለተለያዩ ብጁ ካርዶች የቅጦች ሉህ
- card -webcomponent.html - ለተለያዩ ብጁ ካርዶች የድር አካል
-
አርታዒ
- assimilate -logo-p.webp" />
- አርትዕ.htm.gz - የ Ace አርታዒ HTML
- edit.htm.src - የ Ace አርታኢ ኦሪጅናል ኤችቲኤምኤል
- favicon -32x32-p.webp" />
FIRMWARE ን በማዘመን ላይ
- የኮድ ማከማቻ እዚህ (ቅጽበታዊ ገጽ እይታ) ሊገኝ ይችላል።
- የቤተ መፃህፍት ዚፕ እዚህ ይገኛል (ቅጽበታዊ ገጽ እይታ)።
- የ «ዚፕ ቤተ -መጽሐፍትን ማስመጣት» መመሪያዎች እዚህ።
- ቤተ -መጽሐፍቱ አንዴ ከተጫነ “mqtt_crouton_esp8266_cors_webcomponents” የሚለውን ምሳሌ መክፈት ይችላሉ።
- ለ Wemos D1 Mini Arduino ን ለማዋቀር መመሪያዎች እዚህ።
- ጥገኛዎች - ArduinoJson ፣ TimeLib ፣ PubSubClient ፣ NeoTimer (በማጠራቀሚያዎች ውስጥ ለውጦችን መጣስ ከሆነ አባሪዎችን ይመልከቱ)።
ወደ SPIFFS ይጫኑ
ኮዱ ወደ አርዱዲኖ አይዲኢ ከተጫነ በኋላ በመሣሪያ/ውቅረት አቃፊ ውስጥ device.json ን ይክፈቱ
- በእርስዎ WiFi SSID አማካኝነት የ wifi_ssid ዋጋን ይለውጡ።
- በ WiFi ቁልፍዎ የ wifi_key እሴት ይለውጡ።
- የ mqtt_device_name ዋጋን በተመረጠው የመሣሪያ መለያ (መቀላቀልን አያስፈልግም) ይለውጡ።
- የ mqtt_device_description ን እሴት በመረጡት የመሣሪያ መግለጫ (በክሩቶን ውስጥ) ይለውጡ።
- መሣሪያ አስቀምጥ. Json.
- የውሂብ ፋይሎችን ወደ SPIFFS ይስቀሉ።
ለ AssimilateBus ምሳሌ ዋናው የመግቢያ ነጥብ
/* |
* |
*ለመሣሪያዎ የንግድ ሥራ ሕጎች በ MQTT ቁጥጥር ይደረጋሉ ተብሎ ይታሰባል - በዚህ ጽ / ቤት ውስጥ አልተጋገረም። |
* |
* በዚህ ፋይል ውስጥ ከማዋቀር እና ከማዞር ሌላ |
* አስፈላጊ የሚንቀሳቀሱ ክፍሎች ናቸው |
* በ_bus_static_i2c_callbacks.ino ውስጥ የተቀበለው እና በ_ አውቶቡስ ላይ የተጠናቀቀ |
* እና |
* mqtt_plish እና mqtt_callback በ static_mqtt.ino ውስጥ |
* |
*/ |
#“አይነቶች.ህ” ን ያካትቱ |
#"VizJson.h" ን ያካትቱ |
#"assimilate_bus.h" ን ያካትቱ |
#"debug.h" ን ያካትቱ |
#"config.h" ን ያካትቱ |
#ያካትቱ |
#ያካትቱ // MQTT_MAX_PACKET_SIZE ን ወደ ~ 3000 ያዘጋጁ (ወይም የእርስዎ የመሣሪያ መረጃ መረጃ json) |
#ያካትቱ |
#ያካትቱ |
#ያካትቱ |
#ያካትቱ |
#ያካትቱ |
// --------------------------------- የማስታወሻ መግለጫዎች |
// ------------------------------------------------ - ይገልጻል |
#ይግለጹ ዲቢጂ_OUTPUT_FLAG2 // 0 ፣ 1 ፣ 2 አነስተኛ ፣ መልቀቅ ፣ ሙሉ |
#ዲፊን_መቅት_ፖብ_ቶፒክ "የውጪ ሳጥን" // ክራቶን ኮንቮንስ |
#መግለፅ_mqtt_sub_topic "inbox" |
// ------------------------------------------------ - የክፍል ዕቃዎች |
አርም _debug (DBG_OUTPUT_FLAG); |
AssimilateBus _assimilate_bus; |
VizJson _viz_json; |
_Config_data ን ያዋቅሩ ፤ |
የ WiFi ደንበኛ _esp_client; |
PubSubClient _client (_esp_client); |
WiFiUDP Udp; |
ESP8266 የድር አገልጋይ _አገልጋይ (80); |
Neotimer _timer_property_request = Neotimer (5000); |
// ------------------------------------------------ - የውሂብ structs / ተለዋዋጭ |
RuntimeDeviceData _runtime_device_data; |
PropertyDto _dto_props [50]; // ከፍተኛ 10 ባሪያዎች x ከፍተኛ 5 ንብረቶች |
// ------------------------------------------------ - የቁጥጥር ፍሰት |
volatilebool _sent_device_info = ሐሰት; |
ባይት _dto_props_index = 0; |
bool _fatal_error = ሐሰት; |
// --------------------------------- የሥራ አፈጻጸም ስሌት መግለጫዎች |
// ------------------------------------------------ - static_i2c_callbacks.ino |
voidon_bus_ ተቀብሏል (ባይት ባሪያ_አድራሻ ፣ ባይት prop_index ፣ ሚና ሚና ፣ የቻር ስም [16] ፣ የቻር እሴት [16]); |
voidon_bus_complete (); |
// ------------------------------------------------ - static_mqtt.ino |
voidmqtt_callback (ቻር* ርዕስ ፣ ባይት* የክፍያ ጭነት ፣ ያልተፈረመ ርዝመት); |
voidmqtt_loop (); |
int8_tmqtt_get_topic_index (ቻር* ርዕስ); |
voidmqtt_init (constchar* wifi_ssid ፣ constchar* wifi_password ፣ constchar* mqtt_broker ፣ int mqtt_port); |
voidmqtt_create_subscriptions (); |
voidmqtt_publish (char *root_topic ፣ char *deviceName ፣ char *endpoint ፣ constchar *payload); |
boolmqtt_ensure_connect (); |
voidmqtt_subscribe (ቻር *root_topic ፣ char *deviceName ፣ char *endpoint); |
voidi2c_set_and_get (ባይት አድራሻ ፣ ባይት ኮድ ፣ constchar *param); |
// ------------------------------------------------ - static_server.ino |
ሕብረቁምፊ server_content_type_get (ሕብረቁምፊ የፋይል ስም); |
boolserver_path_in_auth_exclusion (ሕብረቁምፊ መንገድ); |
boolserver_auth_read (የገመድ መንገድ); |
boolserver_file_read (የገመድ መንገድ); |
voidserver_file_upload (); |
voidserver_file_delete (); |
voidserver_file_create (); |
voidserver_file_list (); |
voidserver_init (); |
የ voidtime_services_init (ቻር *ntp_server_name ፣ byte time_zone); |
time_tget_ntp_time (); |
voidsend_ntp_packet (IPAddress & አድራሻ); |
char *time_stamp_get (); |
// ------------------------------------------------ - static_utility.ino |
ሕብረቁምፊ spiffs_file_list_build (ሕብረቁምፊ መንገድ); |
voidreport_deserialize_error (); |
voidreport_spiffs_error (); |
boolcheck_fatal_error (); |
boolget_json_card_type (ባይት ባሪያ_አድራሻ ፣ ባይት prop_index ፣ char *card_type); |
boolget_struct_card_type (ባይት ባሪያ_አድራሻ ፣ ባይት prop_index ፣ char *card_type); |
boolget_json_is_series (ባይት ባሪያ_አድራሻ ፣ ባይት prop_index); |
voidstr_replace (ቻር *src ፣ constchar *የድሮ መሸጫዎች ፣ ቻር *አዲስ መሸጫዎች); |
ባይት get_prop_dto_idx (ባይት ባሪያ_አድራሻ ፣ ባይት prop_index); |
// --------------------------------- ዋና |
voidsetup () { |
DBG_OUTPUT_PORT.begin (115200); |
SetupDeviceData device_data; |
Serial.println (); Serial.println (); // ኅዳግ ለኮንሶል ቆሻሻ |
መዘግየት (5000); |
ከሆነ (DBG_OUTPUT_FLAG == 2) DBG_OUTPUT_PORT.setDebugOutput (እውነት); |
_debug.out_fla (ኤፍ (“ማዋቀር”) ፣ እውነት ፣ 2); |
// አስፈላጊውን ውቅር ያግኙ |
ከሆነ (SPIFFS.begin ()) { |
_debug.out_str (spiffs_file_list_build ("/") ፣ እውነት ፣ 2); |
ከሆነ (! _config_data.get_device_data (device_data ፣ _runtime_device_data)) { |
report_deserialize_error (); |
መመለስ; |
} |
} ሌላ { |
report_spiffs_error (); |
መመለስ; |
} |
// በመሣሪያ.json ውስጥ የተቀመጠ የሰዓት ቆጣሪ ዋጋን ይጠቀሙ |
_timer_property_request.set (መሣሪያ_data.sensor_interval); |
mqtt_init (device_data.wifi_ssid ፣ device_data.wifi_key ፣ device_data.mqtt_broker ፣ device_data.mqtt_port) ፤ |
time_services_init (device_data.ntp_server_name, device_data.time_zone); |
server_init (); |
// የሜታዳታ ስብስቡን ያስጀምሩ |
_assimilate_bus.get_metadata (); |
_assimilate_bus.print_metadata_details (); |
mqtt_ensure_connect (); |
// የሜታዳታ ስብስብን ለማጠናቀቅ ዳሳሽ ንብረት (ስሞች) ይፈልጋል |
_assimilate_bus.get_properties (በbus_re_ የተቀበለው ፣ በ_bus_complete) ፤ |
_timer_property_request.reset (); // እስከዚህ ነጥብ ድረስ የሚታወቅ ጊዜን ሊሽር ይችላል ስለዚህ እንደገና ያስጀምሩ |
} |
voidloop () { |
((check_fatal_error ()) ከተመለሰ; |
mqtt_loop (); |
_አገልጋይ.ሃንድ ደንበኛ (); |
ከሆነ (_timer_property_request.repeat ()) { |
_assimilate_bus.get_properties (በbus_re_ የተቀበለው ፣ በ_bus_complete) ፤ |
} |
} |
በ GitHub በ hosted የተስተናገደ rawmqtt_crouton_esp8266_cors_webcomponents.ino
ደረጃ 5 - የመሣሪያ ካርድ
የመሣሪያው ካርድ (የካርድ ዓይነት: አሲም-መሣሪያ) በድር ጣቢያው ላይ የተስተናገደ ሲሆን ከመሣሪያው (CORS) ማገልገል አስፈላጊ አይደለም።
የእሱ ነባሪ ገጽ ዝርዝሮች -
- ለመሣሪያው ለማንበብ እና ለመፃፍ የ MQTT ርዕሶች
- የመዳረሻ ነጥብ መሣሪያው ተገናኝቷል
- ACE EDITOR ን በመጠቀም በመሣሪያው ላይ ለተስተናገደው የ SPIFFS ፋይል አርታዒ አገናኝ
- የካርድ ገጽን አሳይ/ደብቅ የሚገልጽ የዓይን አዶ።
አሳይ/ደብቅ የካርድ ገጽ ዝርዝሮች -
- እያንዳንዱ ካርድ እንደ የተለየ ንጥል
- በሚታይበት ጊዜ ደማቅ ሰማያዊ ቅርጸ -ቁምፊ
- በሚደበቅበት ጊዜ ጥቁር መደበኛ ቅርጸ -ቁምፊ
- የካርድ ዓይነትን የሚያሳይ አዶ።
በካርዶቹ ላይ ያለውን የመደበቂያ አዝራርን ጠቅ በማድረግ ወይም በዝርዝሩ ውስጥ ሰማያዊ-ደፋር-ቅርጸ-ቁምፊ ንጥል ላይ ጠቅ በማድረግ ካርዱ ሊደበቅ ይችላል። በዝርዝሩ ውስጥ ጥቁር-መደበኛ-ቅርጸ-ቁምፊ ንጥል ላይ ጠቅ በማድረግ ካርዶቹ ሊታዩ ይችላሉ።
ከዚህ ባህሪ ጋር ተዛማጅነት ያለው የመረጃ ቶስት መረጃ ነው። በመሣሪያ ኢንፎ ውስጥ ያሉ ማናቸውም የመጨረሻ ነጥቦች የመረጃ ንብረት የተመደበላቸው ከሆነ በካርዱ ላይ ካለው የመደበቂያ አዝራር ቀጥሎ የመረጃ አዝራር ይታያል። በመጨረሻው ነጥብ ላይ የተገለጸውን ዐውደ -ጽሑፍ መረጃ ጠቅ ሲያደርጉ በመስኮቱ ላይ “ይቃጠላሉ”።
የመሣሪያው ካርድ ካልተገለጸ የመደበቂያ አዝራሮቹ በካርዶቹ ላይ አይታዩም። ምክንያቱም አንዴ ከተደበቀ በኋላ እነሱን ለማሳየት ምንም መንገድ የለም።
በ ESP8266 ላይ በ SPIFFS ፋይሎች በኩል የአሲም-መሣሪያ ካርድ እንዴት እንደሚታከል በዝርዝር ለማየት ENDPOINT CUSTOMIZATION ን ይመልከቱ።
AssimilateCrouton WebComponent
ICON ን ደብቅ |
የመሣሪያ ቅፅ |
div> |
የመደበቂያ ዝርዝርን አሳይ |
አብነት> |
የወረቀት-ዝርዝር ሣጥን> |
div> |
crouton- ካርድ> |
አብነት> |
ዶም-ሞዱል> |
በ GitHub በ hosted የተስተናገደ rawassim-device.html ን ይመልከቱ
ደረጃ 6: የሳምንቱ ካርድ
የሳምንት ዕይታ ካርድ (የካርድ ዓይነት: assim-weekview) በመሣሪያው (ኮርስ አቃፊ) ላይ ይስተናገዳል። የፋይል ውቅረት/user_card _#. Json ን ወደ SPIFFS (በዚህ ጉዳይ ላይ user_card_9.json) በማከል ለ AssimilateCrouton በታተመው የመሣሪያ መረጃ ፓኬት ውስጥ ይገባል።
አጠቃላይ እይታ
የሳምንቱ ቀናት እንደ የጊዜ መቁጠሪያ ዝርዝሮች ቀርበዋል። የጊዜ-ማስገቢያው ቅንጅት በንብረት/የተጠቃሚ_ካርድ _#ውስጥ ባለው “interval_mins” ንብረት ተዋቅሯል። json። እሱ የአንድ ሰዓት ክፍልፋይ ወይም የአንድ ሰዓት ብዜት መሆን አለበት ለምሳሌ። 10 ፣ 15 ፣ 20 ፣ 30 ፣ 60 ፣ 120 ፣ 360. በሰዓት መክተቻ ላይ ጠቅ ማድረግ በዚህ ሁኔታ ውስጥ ለተጓዳኙ መሣሪያ ሁኔታ መታዘዙን ያረጋግጣል። የጊዜ ክፍተቱ አሁን ከሆነ ፣ ለመሣሪያው ወዲያውኑ ትእዛዝ ይላካል (ታትሟል)። በተለምዶ ግዛቱ በየደቂቃው ይፈትሻል/ይታተማል። ምርጫዎች በአካባቢያዊ ማከማቻ ውስጥ ይቀመጣሉ ፣ ስለዚህ ጊዜዎቹ በአሳሽ ማደስ እንደገና ይጫናሉ።
ጉዳዮችን ይጠቀሙ
አሁን ባለው ሁኔታ ፣ የሳምንት ዕይታ የእነሱን ሁኔታ በዓይነ ሕሊናዎ ለማየት የ Toggle መቀየሪያን መጠቀም ለሚችሉ መሣሪያዎች ተስማሚ ነው ፣ ማለትም እነሱ በርተዋል ወይም ጠፍተዋል እና ከተዋቀሩ በኋላ በዚያ ሁኔታ ውስጥ ይቆያሉ። መብራቶች ፣ አድናቂዎች እና የውሃ ማሞቂያዎች ጥሩ እጩዎች ናቸው።
ገደቦች/ዋሻዎች
- የ interval_mins ከላይ ከተጠቀሱት እሴቶች አንዱ መሆን አለበት
- የሳምንት ዕይታ እንዲሁ መርሐግብር የተያዘላቸውን ጊዜያዊ እርምጃዎችን አይደግፍም ፣ ለምሳሌ በቀን ሁለት ጊዜ መታ መታ ማድረግ (5 ሰከንዶች)።
የወደፊት
- ለጊዜው እርምጃዎች ይደገፋሉ ተብሎ ይጠበቃል።
- የጊዜ ሰሌዳ ምርጫዎች ከግምት ውስጥ ስለገቡ በመሣሪያዎች ላይ የተመሳሰለ ማከማቻ።
ደረጃ 7: ማብቂያ ማበጀት
በ FIRMWARE ውስጥ እንደተጠቀሰው ፣ የመጨረሻ ነጥቦቹን ለማበጀት በ SPIFFS ፋይል ስርዓት ውስጥ 2 አዲስ ስምምነቶች ተጨምረዋል። የ JSON ፋይሎች በመሣሪያው ውስጥ ወደ ፍጻሜ ነጥቦች ንብረት የሚጨመሩ ቁርጥራጮች ናቸው የመረጃ ፓኬት ዳሽቦርድ ፍቺ በሚሆነው በ MQTT ደላላ ላይ ተለጠፈ።
የመጨረሻዎቹ ነጥቦች ቁልፎች በ firmware ውስጥ ይፈጠራሉ-
- CC_device (ብጁ ካርድ) ለ user_card_base.json
- CC_SLAVE_ENDPOINT ስም ለተጠቃሚ_ካርድ _#. Json (# የባሪያ አድራሻ መሆን)
ቀደም ሲል እንደጠቀስነው ፣ በአሂደት ጊዜ እሴቶችን የሚተኩ ተለዋዋጮች አሉ-
- mqtt_device_name
- wifi_ssid
- አካባቢያዊ_ip
user_card_base.json
አንድ ምሳሌ
የተጠቃሚ_ካርድ _#. json
አንድ ምሳሌ
ደረጃ 8: ቪዲዮዎች
የሚመከር:
IOT123 - የ SENSOR HUB ICOS10 GENERIC SHELL (HOOKUP WIRE) ስብሰባ 4 ደረጃዎች
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 GENERIC SHELL (HOOKUP WIRE) ስብሰባ: አዘምን ለበለጠ አስተማማኝነት የ IDC ወረዳ (HOOKUP አይደለም) እንዲጠቀሙ እንመክራለን። ወረዳውን ለማረጋገጥ ጊዜ ካለዎት ይህ የ HOOKUP ስብሰባ ተልዕኮ ለሌለው ወሳኝ ክወና ደህና ነው። አንዳንድ ሽቦዎችን (የላይኛው የፓነሎች ንብርብር ቀይ/ቢጫ) አገኘሁ
IOT123 - የ ASSIMILATE SENSOR HUB: ICOS10 3V3 MQTT NODE: 6 ደረጃዎች
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 3V3 MQTT NODE: ይህ በ ASSIMILATE SENSOR HUBS ውስጥ በተለያዩ የ MCU/የባህሪ ጥምረቶች ውስጥ የመጀመሪያው ነው - የውሂብ ጎተራዎችን ከ I2C ASSIMILATE SENSORS ባሮች ይሰበስባሉ። ይህ ግንባታ ከ ASSIMILATE የተወረወረ ማንኛውንም መረጃ ለማተም ‹Wemos D1 Mini ›ን ይጠቀማል።
IOT123 - የአስገዳጅ ዳሳሽ ጎጆ - ICOS10 ጄኔራል ELል (IDC) ጉባኤ: 6 ደረጃዎች
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 GENERIC SHELL (IDC) ጉባ:: NOTET ይህ የተሻሻለው (የወረዳ ጥንካሬ) የ ASSIMILATE SENSOR HUB: ICOS10 GENERIC SHELL (HOOKUP WIRE) ስብሰባ ነው። እሱ በፍጥነት ይሰበስባል እና ከፍተኛ ጥራት ያለው ወረዳ አለው ፣ ግን የበለጠ ያስከፍላል (~ 10 ዳሳሾችን የሚደግፍ ከሆነ ~ ~ $ 10 ተጨማሪ)። ዋናው ፌ
IOT123 - የ SENSOR HUB: ICOS10 CROUTON RESET NODE: 6 ደረጃዎች
IOT123 - የ ASSIMILATE SENSOR HUB: ICOS10 CROUTON RESET NODE: Crouton። http://crouton.mybluemix.net/ Crouton የ IOT መሣሪያዎችዎን በዝቅተኛ ማዋቀር እንዲመለከቱ እና እንዲቆጣጠሩ የሚያስችልዎ ዳሽቦርድ ነው። በዋናነት ፣ MQTT እና JSON ን ብቻ በመጠቀም ለማንኛውም የ IOT ሃርድዌር አድናቂ ለማዋቀር ቀላሉ ዳሽቦርድ ነው።
IOT123 - አስገዳጅ ሴንሰር ሁብ ICOS10 ብጁ ድር ጣቢያ - 11 ደረጃዎች
IOT123 - የ ASSIMILATE SENSOR HUB: ICOS10 CUSTOMIZATION WEBSEREVER: ASSIMILATE SENSOR/ACTOR Slaves በክሩተን ውስጥ ምስላዊ መግለጫዎችን ለመግለጽ የሚያገለግል ሜታዳታን አካቷል። ይህ ግንባታ የድር አገልጋዩን ወደ ESP8266 ማስተር ያክላል ፣ በተጠቃሚው ሊቀየሩ የሚችሉ አንዳንድ የውቅረት ፋይሎችን ያገለግላል ፣ ከዚያ እነዚያን ፋይሎች እንደገና ለመግለፅ ይጠቀማል