ዝርዝር ሁኔታ:

IOT123 - የ SENSOR HUB: ICOS10 CORS WEBCOMPONENTS: 8 ደረጃዎች
IOT123 - የ SENSOR HUB: ICOS10 CORS WEBCOMPONENTS: 8 ደረጃዎች

ቪዲዮ: IOT123 - የ SENSOR HUB: ICOS10 CORS WEBCOMPONENTS: 8 ደረጃዎች

ቪዲዮ: IOT123 - የ SENSOR HUB: ICOS10 CORS WEBCOMPONENTS: 8 ደረጃዎች
ቪዲዮ: IOT123 - BYKO LIVE RIDE 2024, ህዳር
Anonim
IOT123 - የ SENSOR HUB: ICOS10 CORS WEBCOMPONENTS
IOT123 - የ SENSOR HUB: ICOS10 CORS WEBCOMPONENTS
IOT123 - የ SENSOR HUB: ICOS10 CORS WEBCOMPONENTS
IOT123 - የ SENSOR HUB: ICOS10 CORS WEBCOMPONENTS

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

FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
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

ብረት-ምልክቶች>
div>
ICON ን ደብቅ
እኔ> ስፔን>
የመሣሪያ ቅፅ
MQTT TOPICSdiv>
/outbox/{{endPointJson.device_name}}/*div>
/inbox/{{endPointJson.device_name}}/*div>
WIFI SSIDdiv>
{{endPointJson.ssid}} div>
የአይፒ ADDRESSdiv>
{{endPointJson.ip_addr}} a> div>
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: ቪዲዮዎች

የሚመከር: