電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>物聯(lián)網(wǎng)項(xiàng)目之助旅客了解公交車繁忙程度

物聯(lián)網(wǎng)項(xiàng)目之助旅客了解公交車繁忙程度

2022-10-21 | zip | 0.71 MB | 次下載 | 免費(fèi)

資料介紹

描述

這是一個(gè)物聯(lián)網(wǎng)項(xiàng)目,它可以幫助公交車旅客了解公交車的繁忙程度,以便在此基礎(chǔ)上做出正確的決定。例如,如果有人在他/她的手中有沉重和易碎的東西,那么在擁擠的公共汽車中旅行是不安全的,但為了了解公共汽車的狀態(tài),應(yīng)該等到公共汽車到達(dá)車站。但是,如果您知道公交車到達(dá)車站之前的乘客人數(shù),那么我們可以節(jié)省時(shí)間并乘坐出租車。

現(xiàn)在讓我們從項(xiàng)目開始,因?yàn)橛幸恍┎襟E:

  • 在 Artik Cloud 中設(shè)置設(shè)備
  • 創(chuàng)建網(wǎng)頁和應(yīng)用程序

在 Artik 云中設(shè)置設(shè)備

我喜歡 artik cloud 的地方在于它可以一次處理多個(gè)請(qǐng)求而無需停機(jī),而且使用簡(jiǎn)單。

首先創(chuàng)建一個(gè)免費(fèi)的 Artik Cloud 帳戶,方法是clicking here ?如果您已經(jīng)有一個(gè)帳戶,那么只需在登錄。然后通過單擊菜單欄中的開發(fā)人員菜單或直接打開開發(fā)人員門戶。

單擊儀表板菜單中設(shè)備類型或單擊此處

?
pYYBAGNR4n2AHPXcAADr5TnCWHY505.png
?

然后給它一個(gè)顯示設(shè)備名稱和唯一名稱(它應(yīng)該是唯一的,不允許有空格),然后單擊Create Device type 在這里,我將我的設(shè)備顯示名稱設(shè)為Artik Bus ,并將唯一名稱設(shè)為artik.bus

?
poYBAGNR4oCAfdi3AADGICiT4MA368.png
?

之后在 Manifest 菜單上單擊 NEW MANIFEST

?
pYYBAGNR4oSASlP0AAD48f6Oc08534.png
?

然后輸入count作為字段名稱和數(shù)據(jù)類型只要(如果您選擇count作為字段名稱,它應(yīng)該自動(dòng)選擇)

?
pYYBAGNR4oeAAfJNAADz3cmvx-I013.png
?

然后點(diǎn)擊保存

單擊下一步:設(shè)備操作,然后單擊下一步:激活清單,最后單擊激活清單

?
poYBAGNR4oqAALM2AADNvL4FBqI164.png
?

現(xiàn)在您已成功創(chuàng)建了第一個(gè)用于存儲(chǔ)乘客數(shù)量的設(shè)備清單。

現(xiàn)在讓我們使用我們創(chuàng)建的清單創(chuàng)建一個(gè)虛擬設(shè)備。為此轉(zhuǎn)到https://artik.cloud 并單擊My Artik Cloud菜單中的設(shè)備或轉(zhuǎn)到https://artik.cloud /my/devices

?
pYYBAGNR4oyAetU9AAF0XHqKmRM319.png
?

如果您尚未創(chuàng)建任何設(shè)備,它會(huì)直接要求搜索您的設(shè)備。其他方法單擊連接另一臺(tái)設(shè)備并搜索您之前創(chuàng)建的設(shè)備名稱并選擇它并為其命名,然后單擊連接設(shè)備:

?
poYBAGNR4o-AAz-eAADXeMkIQ1Q976.png
?

現(xiàn)在你創(chuàng)建了你的設(shè)備。

接下來,您應(yīng)該在復(fù)制設(shè)備 ID 和設(shè)備令牌之前將您的愛迪生板與 Artik 云連接。為此,單擊設(shè)備名稱附近的小齒輪(設(shè)置)圖標(biāo),將出現(xiàn)一個(gè)彈出窗口。單擊生成設(shè)備令牌,您將獲得一個(gè)令牌。復(fù)制設(shè)備 ID 和設(shè)備令牌以供以后使用。

?
poYBAGNR4pKATrQGAACft_SWrGU945.png
?

編碼和組裝英特爾 Edison

如果您在hackster.io中有許多聲明項(xiàng)目之前從未使用過英特爾愛迪生。隨意查看:英特爾愛迪生入門項(xiàng)目

該項(xiàng)目使用 Node.js 語言和 Intel XDK 作為 IDE。這個(gè)項(xiàng)目不會(huì)太深入,現(xiàn)在您可以使用 XDK,但您將獲得使用的基礎(chǔ)知識(shí)

  • 獲取英特爾愛迪生的驅(qū)動(dòng)程序和設(shè)置工具即可find here

下載設(shè)置工具后,您可以通過安裝驅(qū)動(dòng)程序、刷新固件、設(shè)置 wifi 連接來設(shè)置(如果已經(jīng)完成,則無需再次設(shè)置)。現(xiàn)在下載安裝 Intel XDK 并將愛迪生連接到計(jì)算機(jī)或任何其他電源。通過轉(zhuǎn)到路由器設(shè)置或通過 USB 將 edsion 連接到 pc 并從 Edison 設(shè)置工具獲取 IP,找到 Edison 的本地 IP 地址。

接線板如下:

?
pYYBAGNR4pWAT4ndAADkBAXfe5k618.png
?

這里 12 和 8 個(gè)引腳連接到 2 個(gè)按鈕,按鈕的另一端連接到 5v。

?
pYYBAGNR4pyAO1utAA1sRedkk60180.jpg
?

打開 Intel XDK 并在 IDE 底部單擊名為 IOT devices 的 dope down 菜單,然后單擊 Add manual connection:

?
poYBAGNR4p-AJD39AABJHKcosMs858.png
?

然后在彈出窗口輸入edison的本地IP,用戶名和密碼相同。在我的情況下,IP 地址是192.168.1.4。然后點(diǎn)擊連接:

?
poYBAGNR4qGAdey6AABWRmqksaM357.png
?

它將顯示已連接的消息。

現(xiàn)在單擊左上箭頭,然后單擊新建項(xiàng)目。單擊模板并選擇空白模板。

?
pYYBAGNR4qSAeuZiAAGWtTmBk7g774.png
?

之后單擊繼續(xù)并為其命名。在那里使用以下代碼:

var mraa = require('mraa'); // require mraa
var request = require("request"); //req 
var auth = "Bearer xxxxx"; // Device token 
var dev = "xxx"; //device ID 
var count = 0; // Setting the inital value of count as 0 
var pinIn = new mraa.Gpio(12); // Pin for in 
var pinOut = new mraa.Gpio(8); // pin for OUt 
pinIn.dir(mraa.DIR_IN); // setting pin IN as INPUT mode 
pinOut.dir(mraa.DIR_IN); // setting pin OUT as INPUT mode 
// Setting default value as LOW 
pinIn.write(0); 
pinOut.write(0); 
//Function which listen for the the push buttons and make it act as a switch 
function check() { 
   var ch = 0; // help to use pushbutton as switch ( one can hold the push button as much they need but only one request is considered) 
   var inner = pinIn.read(); 
   if (inner == 1) { 
       while (pinIn.read() == 1) {} 
       count++; 
       ch = 1; 
   } 
   var outer = pinOut.read(); 
   if (outer == 1) { 
       while (pinOut.read() == 1) {} 
       count--; 
       ch = 1; 
   } 
   if (ch == 1) { 
       console.log(count) // printing the current count 
       post(count); 
       ch = 0; 
   } 
   setTimeout(check, 300); 
} 
console.log("Running"); // Print running when program starts 
post(0); //uploading 0 to artik when starts 
check(); // starting the fucntion check() to listen pushbuttons 
// Function which upload to artik 
function post(c) { 
   // seting the properties to upload 
   var options = { 
       method: 'POST', // reqest type 
       url: 'https://api.artik.cloud/v1.1/messages', // api request url 
       headers: { 
           'Content-Type': 'application/json', // setting conect type as json 
           'cache-control': 'no-cache', // don't store any cache' 
           'authorization': auth // passing the token as the header 
       }, 
       //passing data as json though body of the post request 
       body: '{\r\n\t"sdid": "' + dev + '",\r\n\t"type": "message",\r\n\t"data": {\r\n\t\t\t"count": "' + c + '"\r\n\t\t}\r\n}' 
   }; 
   //seting the the request with the properties above mentioned 
   request(options, function(error, response, body) { 
       if (error) throw new Error(error); 
       console.log(body); // printing the response 
   }); 
} 

這里替換:

var auth = "Bearer xxxxx";

xxxxx 與您的設(shè)備令牌

var dev = "xxxxx"; //device ID 

帶有設(shè)備ID的 xxxxxc

代碼可以在Github找到。現(xiàn)在點(diǎn)擊底部的上傳按鈕:

?
pYYBAGNR4qaAUFAqAAAV_GC97No099.png
?

然后顯示上傳完成后點(diǎn)擊運(yùn)行按鈕:

?
pYYBAGNR4qmAborVAAAYiKvSBgw298.png
?

它會(huì)顯示正在運(yùn)行。

如果在任何情況下都顯示未找到請(qǐng)求,則轉(zhuǎn)到底部的 SSH 終端選項(xiàng)卡并填寫服務(wù)器詳細(xì)信息,例如 ip、用戶名、密碼和連接。然后輸入

npm install request

它將解決問題。

現(xiàn)在嘗試按下按鈕,您可以看到一個(gè) JSON 以 ID 響應(yīng)。它表明它正在工作。為了確認(rèn)它轉(zhuǎn)到artik.cloud并登錄。然后My Artik Cloud 中選擇圖表。

然后點(diǎn)擊左上角的+/- CHARTS并勾選選項(xiàng)計(jì)數(shù):

?
poYBAGNR4quARCa2AAA3DMtOsL4956.png
?

現(xiàn)在你可以看到一個(gè)圖表:

?
pYYBAGNR4q2AIFXRAABxpeQvFKs408.png
?

創(chuàng)建網(wǎng)頁和應(yīng)用程序

對(duì)于 web 應(yīng)用程序,我使用 azure 和 dream-spark 訂閱。如果您愿意使用任何其他主機(jī),請(qǐng)隨意使用(主機(jī)應(yīng)該支持node.js ,因?yàn)樵谶@個(gè)項(xiàng)目中我使用 node js 作為服務(wù)器端語言)。

首先,您應(yīng)該在您的計(jì)算機(jī)中為該 goto 安裝 Node js:nodejs.org并將其下載并安裝到您的系統(tǒng)中。之后打開評(píng)論提示(windows)或終端(Mac、Linux)并輸入:

npm install -g express-generator

然后,當(dāng)安裝完成后,在您要?jiǎng)?chuàng)建項(xiàng)目的任何目錄中打開注釋提示并鍵入以下注釋:

express <projectname>

這里 是您希望的項(xiàng)目名稱。現(xiàn)在打開自動(dòng)創(chuàng)建的文件夾并打開app.js文件并將其替換為以下代碼:

var express = require('express');
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var routes = require('./routes/index'); 
var app = express(); 
// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 
// uncomment after placing your favicon in /public 
//app.use(favicon(path.join(__dirname, 'public', 'faviscon.ico'))); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
app.use(express.static(path.join(__dirname, 'public'))); 
app.use('/', routes); 
// catch 404 and forward to error handler 
app.use(function(req, res, next) { 
   var err = new Error('Not Found'); 
   err.status = 404; 
   next(err); 
}); 
// error handlers 
// development error handler 
// will print stacktrace 
if (app.get('env') === 'development') { 
   app.use(function(err, req, res, next) { 
       res.status(err.status || 500); 
       res.render('error', { 
           message: err.message, 
           error: err 
       }); 
   }); 
} 
// production error handler 
// no stacktraces leaked to user 
app.use(function(err, req, res, next) { 
   res.status(err.status || 500); 
   res.render('error', { 
       message: err.message, 
       error: {} 
   }); 
}); 
module.exports = app;

然后使用以下路由/index.js

var express = require('express');
var router = express.Router(); 
var request = require("request"); 
var sdids = "xxxxx"; //replace with device id 
var token = "xxxxx"; //replace with device token 
/* GET home page. */ 
router.get('/', function(req, res, next) { 
   res.render('index'); 
}); 
router.get('/count', function(req, res, next) { 
   var options = { 
       method: 'GET', 
       url: 'https://api.artik.cloud/v1.1/messages/last', 
       qs: { sdids: sdids, count: '1' }, 
       headers: { 
           'cache-control': 'no-cache', 
           'authorization': 'Bearer ' + token 
       } 
   }; 
   var data, k = 0; 
   request(options, function(error, response, body) { 
       if (error) throw new Error(error); 
       data = JSON.parse(body).data[0].data; 
       res.send(data); 
   }); 
}); 
module.exports = router; 

在這里編輯以下內(nèi)容:

var sdids = "xxxxx"; //replace with device id 
var token = "xxxxx"; //replace with device token

替換views/index.jade:

extends layout 
block content 
 #container 
   #data 
   script. 
     function getData(){ 
     $.ajax({url:'/count', dataType: "json", success:function(result){ 
     console.log(result); 
     // Get the result and show it 
     var message = result.count; 
     document.getElementById("data").innerHTML = JSON.stringify(message); 
     }}); 
     } 
     $( document ).ready(function() { 
     document.getElementById("data").innerHTML = "0" 
     window.setInterval(getData, 2000); 
     }); 

替換views/layout.jade:

doctype html 
html 
 head 
   title= title 
   link(rel='stylesheet', href='/stylesheets/style.css') 
   script(src='/javascripts/jquery.js') 
 body 
   block content 

并替換public/stylesheets/style.css:

body{   
   margin: 0; 
   padding: 0; 
   background: #eee; 
} 
#container { 
   display: table; 
   width: 100%; 
   height: 100vh; 
} 
#data { 
   font-size: 20em; 
   color: #202020; 
   display: table-cell; 
   vertical-align: middle; 
   text-align: center; 
} 

public/javascripts中創(chuàng)建一個(gè)名為jquery.js的文件。代碼將來自:https ://code.jquery.com/jquery-3.1.1.js

或者你可以在Github上找到完整的代碼。現(xiàn)在使用git / Github desktop將這個(gè)項(xiàng)目上傳到 Github,甚至可以直接上傳。

?
poYBAGNR4rCALMhGAAEKVtGGWV0246.png
?

接下來我們需要在 azure 中托管這個(gè)項(xiàng)目。對(duì)于該 goto:portal.azure.com 并創(chuàng)建一個(gè)帳戶(如果您還沒有)。

  • 單擊側(cè)欄中的新建
  • 從中選擇 Web App
  • 根據(jù)需要給它一個(gè)名稱和資源組
?
pYYBAGNR4rOABvJuAAFEjzH8EHc290.png
?

現(xiàn)在從儀表板打開該應(yīng)用程序(如果您將其固定到儀表板)或從所有資源中選擇它。

  • 在左側(cè)你可以看到部署選項(xiàng)點(diǎn)擊它
  • 然后點(diǎn)擊選擇資源設(shè)置
  • 并選擇Github (如果是第一次會(huì)要求認(rèn)證)
?
poYBAGNR4raACfawAAE_N1DNz7k736.png
?
  • 現(xiàn)在單擊選擇的項(xiàng)目,然后選擇您的項(xiàng)目
  • 并單擊確定
?
pYYBAGNR4rmAKFhvAAEwtvgwkyQ439.png
?

等待一段時(shí)間,直到獲取所有數(shù)據(jù)并安裝包

?
poYBAGNR4ruAWCacAAAXZpjqlcY728.png
?

獲取完成后,您可以通過 url 訪問您的 azure web 應(yīng)用程序。如果您不知道,您可以在儀表板中找到它。

?
poYBAGNR4r2ANRkPAADOiPXnXkc715.png
?

打開它,你可以找到乘客的數(shù)量。當(dāng)您按下按鈕時(shí),它也會(huì)上傳。它幾乎是即時(shí)更新(大約 3 - 5 秒)。

?
pYYBAGNR4sCAd04sAAAYQfK_JuE768.png
?

您可以通過轉(zhuǎn)到 appsgeyser 并創(chuàng)建一個(gè)帳戶來輕松地創(chuàng)建一個(gè)移動(dòng)應(yīng)用程序(如果您已經(jīng)擁有,請(qǐng)登錄)

  • 輸入您的天藍(lán)色網(wǎng)址,然后單擊下一步
  • 給它一個(gè)名字,然后點(diǎn)擊下一步
  • 給它一個(gè)描述,然后單擊下一步
  • 并使用默認(rèn)圖標(biāo)或上傳一個(gè)
  • 最后點(diǎn)擊創(chuàng)建
?
poYBAGNR4sOAO1S0AAB-2g-wSJc535.png
?
  • 接下來點(diǎn)擊下載按鈕
?
pYYBAGNR4sWAYY7bAAB7XaPevgk334.png
?
  • 當(dāng)它顯示一個(gè)彈出窗口時(shí),只需單擊或測(cè)試您的應(yīng)用程序
  • 然后點(diǎn)擊下載按鈕
  • 它將開始下載
?
poYBAGNR4siARXSaAAALN3m8pXg204.png
?

現(xiàn)在您剛剛還創(chuàng)建了您的移動(dòng)應(yīng)用程序。就像使用與物聯(lián)網(wǎng)集成的咖啡機(jī)制作咖啡一樣簡(jiǎn)單:p

演示視頻

?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)