Мазмуну:

Желеге шыңгыр!: 4 кадам
Желеге шыңгыр!: 4 кадам

Video: Желеге шыңгыр!: 4 кадам

Video: Желеге шыңгыр!: 4 кадам
Video: Hum Jee Lenge (Rock) - Murder 3 Official New Song Video feat. Mustafa Zahid 2024, Ноябрь
Anonim
Image
Image
Ардуино үчүн баскычтар
Ардуино үчүн баскычтар

Ring Web веб -сайттарга жергиликтүү/чыныгы жерлерден таасир этүү үчүн.

Бул тууралуу көбүрөөк маалымат:

makker.hu/RingTheWeb/

Сага керек болот:

  • 1 баскыч
  • 10k каршылык
  • Arduino (каалаган түрү)
  • кабелдер
  • кичинекей, аз кубаттуу компьютер - бул учурда RPi
  • node.js менен жалпы IP менен серверге же компьютерге кирүү
  • вебсайт

Кадамдар:

  1. Ардуино үчүн баскычтар
  2. Arduino to Raspberry
  3. Малина серверге
  4. Вебсайт серверге

1 -кадам: Ардуино баскычын басыңыз

Адегенде сизге Arduino жана баскыч керек!

Алардын ар кандай түрү мүмкүн, тандоо сизден көз каранды.

Аларды туташтыруу үчүн, Arduino расмий баскыч үйрөтмөсүн аткарыңыз.

Бул жерде Arduino коду:

// Ардуино коду санарип пинди окуу жана сериялык портко бааны жөнөтүү үчүн

// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // pinMode сериялык портун ачуу (8, INPUT); // баскычты Pin 8ге туташтыруу} int counter = 0; // кийинчерээк колдонулган нерсе void loop () {if (digitalRead (8) == 1) {// check pin 8 status Serial.write ("8"); } кечиктирүү (100); counter ++; if (counter = 20) {// ар 20x100 = 2000ms -> counter = 0; Serial.write ("0"); // серверге "мен бармын" билдирүүсүн жөнөтөт}} // баары ушул!

2 -кадам: Arduino - Малинага

Arduino to Raspberry
Arduino to Raspberry

Эми биз Arduino -ны компьютерге туташтыра алабыз. Бул учурда биз Малинаны колдонобуз, анткени анын кубаттуулугу аз.

Аны USB аркылуу же бул жерде сүрөттөлгөн RX-TX казыктары менен туташтырыңыз.

Андан кийин бул жерде сүрөттөлгөндөй node.js жана npm орнотуңуз. Ачкыч сөздөр:

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

жана андан кийин

sudo apt -get орнотуу -y nodejs

Npm (Node.js пакет менеджери) socket.io-client жана serialport модулдарына муктаж, андыктан аларды орнотуңуз:

npm socket.io-клиентти орнотуу

npm serialport орнотуу

Бир нерсе.js файлын ачып, төмөнкү код менен сактаңыз:

// socket.io байланышын баштоо:

var socket; var io = талап кылуу ('socket.io-client'); розетка = io ("https://yourserver.com:port"); // эгерде серверге туташуу ийгиликтүү болсо: socket.on ('connect', function () {socket.send ("мен бул жерде!"); console.log ("серверге туташкан");}); // сериялык порт байланышын баштоо, NB /dev = ttyACM0 өзгөртүлүшү мүмкүн: var SerialPort = талап кылуу ('serialport'); var serialPort = жаңы SerialPort ('/dev/ttyACM0', {baudRate: 9600}); // Эгерде бир нерсе Arduinoдон келсе, ар кандай билдирүүлөрдү жөнөтөт // серверге ылайык ага serialPort.on ('data', function (data) {console.log ('Data:', data.toString ('ascii'))); if (data.indexOf ('8')! ==-1) {socket.send ('/RingTheBell 1');} if (data.indexOf ('0')! ==-1) {socket. жөнөтүү ('/client1 1');}}); // Жеткиликтүү болгон маалыматтарды окуу - менин оюмча, ал кереги жок serialPort.on ('readable', function () {console.log ('Data:', port.read ());});

Эми сиз сервердик node.js кодун орнотушуңуз керек, ага чейин скриптти баштай аласыз жана текшере аласыз

түйүн./something.js

Эгер бир нерсе туура эмес болсо, мага кабарлаңыз!

3-кадам: Сервер тарабындагы код

Сервер тарапындагы код
Сервер тарапындагы код

Сервер тарабында бизге socket.io сервери бар node.js керек.

Ошентип, аны менен кошуңуз:

npm socket-io орнотуу

Андан кийин сизге 2 -кадамдагы кодго окшош скрипт керек болот, айырмасы, ал байланыштарды күтөт, эгер алар бар болсо, анда ал кардардан жөнөтүлгөн бардык билдирүүлөрдү бардык кардарларга таратат. учурда, веб -сайттын колдонуучуларына …

Ошентип, төмөнкүлөр менен serverscript.js ачыңыз:

var http = талап кылуу ('http'), io = талап кылуу ('socket.io'); // минималдуу http серверин ачуу. socket.io керек. var server = http.createServer (function (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('hello');}); // tcp розеткасын күйгүзүү - портуңузду орнотуңуз! server.listen (7004, function () {console.log ("TCP сервер 7004 портунда иштейт");}); // tcp билдирүүлөрүн анализдөө var socket = io.listen (сервер); socket.on ('байланыш', функция (кардар, rinfo) {client.broadcast.emit ('система', 'кимдир бирөө туташкан…'); client.on ('билдирүү', функция (окуя) {console.log (окуя); // каалаган билдирүүнү ар бир туташкан колдонуучуга таратыңыз! socket.emit ('билдирүү', окуя);}); client.on ('ар ким', функция (окуя) {}); client.on ('ажыратуу', function () {socket.emit ('message', 'somebody disconneted…');});});

Аны сынап көрүңүз

түйүн./serverscript.js

Эгерде кардар дагы иштеп жатса, алардын байланышын эки консолдо көрүшүңүз керек. Жок дегенде булар:

Маалымат: 0

-мезгил-мезгили менен системага Arduino-> Raspberry-> сервер байланышы иштеп жатканын айтат.

жана

Маалыматтар: 8

- баскычтын күйүк экенин айтат.

4 -кадам: Веб -сайтты конфигурациялоо

Веб -сайтты конфигурациялоо
Веб -сайтты конфигурациялоо

Эми 75% даярбыз!

Вебсайттын кодун киргизүү менен оор жумушту бүтүрүңүз.

Бул оңой.

Биринчиден, socket.io кардарын камтыйт:

анда билдирүү анализатор системасын түзүү:

var socket;

розетка = io ("yourserver.com:port"); socket.on ('туташуу', функция () {socket.send ('анонимдүү кардар - веб -сайттын колдонуучусу - туташкан!'); socket.on ('билдирүү', функция (msg) {// эгер сиз көргүңүз келсе) ар бир билдирүү, жөн эле комментарий бербеңиз: // console.log (msg); if (msg == "/RingTheBell 1") // бул жерде баскычтын окуясын билдирүү үчүн колдонула турган код келет: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "#000";}, 1000);}; if (msg == "/client1 1") {// бул жерге бир нерсе коюуга болот туташкан кардардын абалына жооп берет};});

Voilá!

даяр

Сунушталууда: