欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

電子發(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)>電子資料下載>電子資料>使用Arduino和網(wǎng)絡(luò)技術(shù)制作實(shí)時(shí)氣象站

使用Arduino和網(wǎng)絡(luò)技術(shù)制作實(shí)時(shí)氣象站

2022-12-15 | zip | 0.07 MB | 次下載 | 免費(fèi)

資料介紹

描述

這是我整理的一個(gè)教程,旨在盡可能多地解釋使用 Arduino 和一些網(wǎng)絡(luò)技術(shù)制作一個(gè)簡(jiǎn)單的實(shí)時(shí)氣象站的過(guò)程。在這個(gè)項(xiàng)目中,我將嘗試從 DHT11 溫度、濕度傳感器獲取傳感器數(shù)據(jù),并將其顯示在一個(gè)漂亮的 Web 用戶界面中。

對(duì)于系統(tǒng)的后端,我將使用一個(gè)名為 Express 的 Javascript Web 框架。從 Arduino 讀取的傳感器將通過(guò)串行通信發(fā)送,在 javascript 的幫助下,我將讀取這些串行通信并使用 socket.io 操作數(shù)據(jù)以發(fā)送到前端。另外,我還集成了MoosunMv API以顯示一些額外的天氣信息。MoosunMv API 是建立在馬爾代夫氣象站之上的開(kāi)放 API。

注意:所有天氣信息都來(lái)自我自己的服務(wù)器。它不會(huì)使氣象服務(wù)器超載。我們的服務(wù)器每 12 小時(shí)從馬爾代夫氣象站獲取天氣信息并將其存儲(chǔ)在我們的數(shù)據(jù)庫(kù)中:)

使用的網(wǎng)絡(luò)技術(shù)

  • 表達(dá)
  • 套接字.io
  • Vuejs
  • 愛(ài)訊
?
poYBAGOYAHCAdgBVABiKQRxRw7o076.jpg
?

要求:

  • 阿杜諾
  • DHT11 傳感器
  • 面包板
  • 3 跨接電纜
  • USB 電纜類型 A/B 標(biāo)準(zhǔn) USB 2.0 電纜

- 硬件接線:

將硬件組件連接到 arduino。接線圖如下圖所示:

?
poYBAGOYAHiAcFaeAAD9y1NAnCM451.jpg
?

注意:我使用的傳感器有一個(gè)內(nèi)置電阻器,因此我的傳感器中會(huì)缺少一個(gè)引腳。

- 使用 Arduino IDE 編寫 Arduino 代碼:

#include "DHT.h"
//Sensor digital pin
#define DHTPIN 8
//Setting the sensor type
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
//Starting the serial communication
Serial.begin(9600);
dht.begin();
}
void loop() {
//delay for 2 second before reading again
delay(2000);
//setting humidity
float humidity = dht.readHumidity();
//setting temperature
float temperature = dht.readTemperature();
Serial.print(temperature);
//Output for splitting the string into two array during serial read.
Serial.print(",");
Serial.println(humidity);
}

我用來(lái)從傳感器讀取數(shù)據(jù)的 Arduino 庫(kù)是 adafruit 的 DHT-sensor-library。DHT 庫(kù)。

- 讀取串行數(shù)據(jù)并發(fā)送到前端:

通過(guò)串口發(fā)送傳感器數(shù)據(jù)后。我正在使用一個(gè)名為Serial Port的 javascript 庫(kù)來(lái)讀取 Arduino 發(fā)送的串行數(shù)據(jù)并將數(shù)據(jù)字符串拆分為兩個(gè)變量。數(shù)據(jù)從逗號(hào)開(kāi)始的地方拆分。

將日期發(fā)送到前端是這樣完成的:

var today = new Date();
var date = today.getDate() + "-" + (today.getMonth() + 1) + "-" + today.getFullYear();
weekday = [
"Sunday", "Monday", "Tuesday", "Wednesday", "Thurday", "Friday", "Saturday"
];
var day = weekday[today.getDay()];
var secondDay = weekday[today.getDay() + 1];
var thirdDay = weekday[today.getDay() + 2];
var fourthDay = weekday[today.getDay() + 3];

到目前為止,我所做的是使用 WebSocket 連接獲取我需要發(fā)送到前端的所有信息。現(xiàn)在我將使用一個(gè)名為socket.io的 javascript 庫(kù)將數(shù)據(jù)從后端實(shí)時(shí)發(fā)送到前端。

這部分的代碼如下所示:

io.sockets.emit('data', {
humidity: humidity,
temperature: temperature,
date: date,
day: day,
secondDay: secondDay,
thirdDay: thirdDay,
fourthDay: fourthDay
});

現(xiàn)在,這幾乎就是后端需要做的所有事情。不是世界上最復(fù)雜的事情。第二天發(fā)送到前端僅用于演示。它上面的溫度數(shù)據(jù)是完全靜態(tài)的。繼續(xù)?。?.

讓我們回憶一下。我正在將傳感器數(shù)據(jù)從 Arduino 發(fā)送到串行端口。在我的情況下,它的 COM5。Javascript Serial Port 庫(kù)比從串口讀取串行數(shù)據(jù)并根據(jù)設(shè)置拆分鍵的位置拆分?jǐn)?shù)據(jù)。在這種情況下,我使用逗號(hào)將字符串分隔為兩個(gè)變量。我還設(shè)置了一些有關(guān)要發(fā)送到前端的數(shù)據(jù)的日期和信息。最后,我使用 socket.io 通過(guò) WebSocket 發(fā)送數(shù)據(jù)。在前端,socket.io 將監(jiān)聽(tīng)數(shù)據(jù)來(lái)自的端口,我使用 VUEJS 綁定 socket.io 接收的數(shù)據(jù)以在 HTML 中顯示它們。

- 將一切連接在一起:

前端javascript代碼如下所示:

feather.replace()
var socket = io.connect('http://127.0.0.1:4000/');
var temperature = new Vue({
el: '#app',
data: {
ApiUrl: 'http://moosunmv.jinas.me/v1/latest',
temperature: '',
humidity: '',
date: '',
day: '',
wind: '',
secondDay: '',
thirdDay: '',
fourthDay: ''
},
methods: {
getWeather(){
var vm = this;
axios.get(this.ApiUrl)
.then(function (response) {
vm.wind = response.data.wind;
console.log(vm.wind);
})
}
},
mounted: function () {
socket.on('data', function (data) {
this.temperature = data.temperature;
console.log(this.temperature);
this.humidity = data.humidity;
console.log(this.humidity);
this.date = data.date;
this.day = data.day;
this.secondDay = data.secondDay;
this.thirdDay = data.thirdDay;
this.fourthDay = data.fourthDay;
}.bind(this));
this.getWeather();
}
});

然后將 VUEJS 設(shè)置的數(shù)據(jù)綁定到 HTML 文件中。我正在使用一個(gè)名為axios的 JavaScript 庫(kù)從 MoosunMv API 獲取天氣信息。

它是這樣完成的:

<div class="info-side">
<div class="today-info-container">
<div class="today-info">
<div class="precipitation"> class="title">PRECIPITATION</span>0 %span>
<div class="clear"></div>
div>
<div class="humidity"> class="title">HUMIDITY</span>{{humidity}} %span>
<div class="clear"></div>
div>
<div class="wind"> class="title">WIND</span>{{wind}}span>
<div class="clear"></div>
div>
</div>
div>

注:本項(xiàng)目中使用的 Html、Css 模板取自 codepen。科林·埃斯皮納斯大喊

這個(gè)項(xiàng)目就差不多了。您可以在下面找到該項(xiàng)目的所有代碼:


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

評(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元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(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開(kāi)關(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ì)》 溫德?tīng)栔?/a>
  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語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)