ዝርዝር ሁኔታ:

ድሩን ይደውሉ! 4 ደረጃዎች
ድሩን ይደውሉ! 4 ደረጃዎች

ቪዲዮ: ድሩን ይደውሉ! 4 ደረጃዎች

ቪዲዮ: ድሩን ይደውሉ! 4 ደረጃዎች
ቪዲዮ: 75 ካሬ ቤት ዲዛይን ከ 4 መኝታጋ ። ስንት ብር ይፈጃል ?በ ስንት ቀን ያልቃል ? 2024, ሀምሌ
Anonim
Image
Image
Ushሽቡተን ወደ አርዱinoኖ
Ushሽቡተን ወደ አርዱinoኖ

ድርን ይደውሉ ድር ጣቢያዎችን ከአካባቢያዊ/እውነተኛ ቦታዎች ላይ ተጽዕኖ ለማሳደር ነው።

ስለእሱ ተጨማሪ መረጃ

makker.hu/RingTheWeb/

ያስፈልግዎታል:

  • 1 የግፊት ቁልፍ
  • 10 ኪ resistor
  • አርዱinoኖ (ማንኛውም ዓይነት)
  • ኬብሎች
  • አነስተኛ ፣ አነስተኛ ኃይል ያለው ኮምፒተር - በዚህ ሁኔታ አርፒአይ
  • ከ node.js ጋር የህዝብ አይፒ ያለው የአገልጋይ ወይም ኮምፒተር መዳረሻ
  • ድህረገፅ

እርምጃዎች ፦

  1. Ushሽቡተን ወደ አርዱinoኖ
  2. አርዱinoኖ ወደ Raspberry
  3. Raspberry ወደ አገልጋይ
  4. ድር ጣቢያ ወደ አገልጋይ

ደረጃ 1 Pሽቡተን ወደ አርዱinoኖ

በመጀመሪያ አርዱዲኖ እና የግፊት ቁልፍ ያስፈልግዎታል!

ማንኛውም ዓይነት ይቻላል ፣ እርስዎ መምረጥ የእርስዎ ነው።

እነሱን ለማገናኘት እባክዎን የአርዲኖን ኦፊሴላዊ የአዝራር አጋዥ ስልጠና ይከተሉ።

የአርዱዲኖ ኮድ እዚህ አለ

// የአርዲኖ ኮድ ዲጂታል ፒን ለማንበብ እና ወደ ተከታታይ ወደብ እሴት ለመላክ

// ባላዝስ ኮቫስ ፣ 2018. ባዶነት ማዋቀር () {Serial.begin (9600); // ተከታታይ ወደብ pinMode (8 ፣ ግቤት) ይክፈቱ ፤ // pushbutton ን ከፒን 8} int counter = 0 ጋር ያገናኙ። // የሆነ ነገር ጥቅም ላይ የዋለ ባዶ ባዶ loop () {ከሆነ (digitalRead (8) == 1) {// የፒን 8 ደረጃን ይመልከቱ Serial.write (“8”); } መዘግየት (100); ቆጣሪ ++; ከሆነ (ቆጣሪ = 20) {// በየ 20x100 = 2000ms -> ቆጣሪ = 0; Serial.write ("0"); // ‹እኔ ነኝ› የሚል መልእክት ለአገልጋዩ ይልካል}} // ያ ብቻ ነው!

ደረጃ 2: አርዱinoኖ ወደ Raspberry

አርዱinoኖ ወደ Raspberry
አርዱinoኖ ወደ Raspberry

አሁን አርዱዲኖን ከኮምፒዩተር ጋር ማገናኘት እንችላለን። በዚህ ሁኔታ በዝቅተኛ የኃይል ፍጆታው ምክንያት Raspberry ን እንጠቀማለን።

በዩኤስቢ በኩል ወይም በቀጥታ ከ RX-TX ፒኖች ጋር ያገናኙት ፣ እዚህ በተገለጸው።

እዚህ እንደተገለፀው node.js እና npm ን ይጫኑ። ቁልፍ ቃላት:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

እና ከዛ

sudo apt -get install -y nodejs ን ይጫኑ

Npm (Node.js የጥቅል ሥራ አስኪያጅ) socket.io- ደንበኛ እና serialport ሞጁሎች ይፈልጋል ፣ ስለዚህ ይጫኑዋቸው

npm ጫን socket.io- ደንበኛ

npm serialport ን ይጫኑ

በሚከተለው ኮድ የ something.js ፋይል ይክፈቱ እና ያስቀምጡ።

// የ socket.io ግንኙነትን ያስጀምሩ

var ሶኬት; var io = ያስፈልጋል ('socket.io-client'); ሶኬት = io ("https://yourserver.com:port"); // ከአገልጋዩ ጋር ያለው ግንኙነት ከተሳካ - socket.on ('ተገናኝ' ፣ ተግባር () {socket.send ("እዚህ ነኝ!")) ፤ console.log ("ከአገልጋዩ ጋር ተገናኝቷል") ፤}); // ተከታታይ ወደብ ግንኙነትን ያስጀምሩ ፣ NB /dev = ttyACM0 ሊቀየር ይችላል- var SerialPort = ያስፈልጋል ('serialport'); var serialPort = አዲስ SerialPort ('/dev/ttyACM0' ፣ {baudRate: 9600}); // አንድ ነገር ከአርዱዲኖ ቢመጣ ፣ በእሱ መሠረት የተለያዩ መልዕክቶችን // ወደ አገልጋዩ ይልካል serialPort.on ('ውሂብ' ፣ ተግባር (ውሂብ) {console.log ('Data:', data.toString ('ascii'))) ከሆነ (data.indexOf ('8')! ==-1) {socket.send ('/RingTheBell 1');} ከሆነ (data.indexOf ('0')! ==-1) {ሶኬት። ላክ ('/client1 1');}}); // ያለውን ውሂብ ያንብቡ - አስፈላጊ አይመስለኝም serialPort.on ('ሊነበብ የሚችል' ፣ ተግባር () {console.log ('Data:', port.read ());});

አሁን እስክሪፕቱን መጀመር እና መሞከር እስከሚችሉ ድረስ የአገልጋዩን ጎን node.js ኮድ እንዲሁ ማዘጋጀት አለብዎት

መስቀለኛ መንገድ./ ነገር. js

የሆነ ችግር ካለ እባክዎን ያሳውቁኝ!

ደረጃ 3-የአገልጋይ-ጎን ኮድ

የአገልጋይ-ጎን ኮድ
የአገልጋይ-ጎን ኮድ

በአገልጋዩ በኩል ፣ ከ socket.io አገልጋይ ጋር node.js እንፈልጋለን።

ስለዚህ በሚከተለው ያክሉት

npm ሶኬት-io ይጫኑ

ከዚያ በ 2 ኛው ደረጃ ላይ ካለው ኮድ ጋር ተመሳሳይ ስክሪፕት ያስፈልግዎታል ፣ ልዩነት ያለው ፣ ግንኙነቶችን የሚጠብቅ ፣ እና እነሱ ካሉ ፣ ከደንበኛው የተላከውን ማንኛውንም መልእክት ለሁሉም ደንበኞች ያሰራጫል ፣ በዚህ ጉዳይ ፣ ለድር ጣቢያ ተጠቃሚዎች…

ስለዚህ ፣ አንድ አገልጋይ (scriptcript.js) ከሚከተሉት ጋር ይክፈቱ

var http = ይጠይቁ ('http') ፣

io = ያስፈልጋል ('socket.io'); // አነስተኛውን የ http አገልጋይ ይክፈቱ። socket.io ያስፈልገዋል። var አገልጋይ = http.createServer (ተግባር (req ፣ res) {res.writeHead (200 ፣ {'የይዘት-አይነት': 'ጽሑፍ/html'}); res.end ('ሰላም');}); // የ tcp ሶኬት ያብሩ - ወደብዎን ያዘጋጁ! አገልጋይ // የ tcp መልዕክቶችን መተንተን var socket = io.listen (አገልጋይ); socket.on ('ግንኙነት' ፣ ተግባር (ደንበኛ ፣ ሪንፎ) {client.broadcast.emit ('ስርዓት' ፣ 'የሆነ ሰው ተገናኝቷል…' ') ፤ client.on (' መልዕክት '፣ ተግባር (ክስተት) {console.log (ክስተት) / ማንኛውንም መልእክት ለተገናኙ ተጠቃሚዎች ሁሉ ያሰራጩ! socket.emit ('መልእክት' ፣ ክስተት) ፤}) ፤ ደንበኛ። ተግባር () {socket.emit ('መልዕክት' ፣ 'አንድ ሰው ተቋርጧል …'));});});

እሱን ለመሞከር ይሞክሩ

መስቀለኛ መንገድ./serverscript.js

ደንበኛው እንዲሁ እየሮጠ ከሆነ ፣ በሁለቱም ኮንሶሎች ላይ ግንኙነታቸውን ማየት አለብዎት። ቢያንስ እነዚህ -

ውሂብ: 0

-Arduino-> Raspberry-> የአገልጋይ ግንኙነት እየሰራ መሆኑን በየጊዜው ስርዓቱን ይነግረዋል።

እና

ውሂብ: 8

- ያ አዝራር እንደበራ ይነግረናል።

ደረጃ 4 ድር ጣቢያ ያዋቅሩ

ድር ጣቢያ ያዋቅሩ
ድር ጣቢያ ያዋቅሩ

አሁን ከ 75% ጋር ዝግጁ ነን!

ጠንክሮ ሥራውን ጨርስ ለድር ጣቢያው ኮዱን ያካትቱ።

ቀላል ነው.

በመጀመሪያ የ socket.io ደንበኛን ያካትቱ

ከዚያ የመልእክት-ተንታኝ ስርዓትን ይፍጠሩ-

var ሶኬት;

ሶኬት = io ("yourserver.com:port"); socket.on ('ተገናኝ' ፣ ተግባር () {socket.send ('ስም -አልባ ደንበኛ - የድር ጣቢያ ተጠቃሚ - ተገናኝቷል!') ፤ socket.on ('መልዕክት' ፣ ተግባር (msg) {// ማየት ከፈለጉ እያንዳንዱ መልእክት ፣ እሱን ብቻ ያናግሩት: // console.log (msg) ፤ (msg == "/RingTheBell 1") // የግፋ አዝራርን ክስተት ለመግለጽ የሚጠቀምበት ኮድ ይመጣል - {document.body.style.background = "#ccc"; setTimeout (ተግባር () {document.body.style.background = "#000";}, 1000);} ፤ (msg == "/client1 1") {// እዚህ የሆነ ነገር ማስቀመጥ ይችላሉ ለተገናኘው የደንበኛ ሁኔታ ምላሽ የሚሰጥ};});

ቪላ!

ዝግጁ።

የሚመከር: