在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Jigglypuff IoT二氧化碳和粉塵監(jiān)測(cè)器(跟蹤器)帶電報(bào)

Jigglypuff IoT二氧化碳和粉塵監(jiān)測(cè)器(跟蹤器)帶電報(bào)

2022-06-16 | zip | 0.18 MB | 次下載 | 2積分

資料介紹

pYYBAGKh1M-AYn9gAAXhtLo06jA192.png
poYBAGKh1NGALn6PAACTiT6SNPc844.jpg
poYBAGKh1NOAPrE1AAB_FY3_WZE529.jpg

成分

PCBWay定制PCB
?
× 1
Arduino Nano RP2040 連接
?
× 1
5000ppm二氧化碳傳感器紅外模塊
?
× 1
GP2Y1010AU0F 灰塵傳感器
?
× 1
0.91" OLED液晶顯示模組
?
× 1
5mm共陽(yáng)極RGB LED
?
× 1
220μF 電容
?
× 1
150Ω電阻
?
× 1
2.2K電阻
?
× 1
3.3K電阻
?
× 1
電源插座
?
× 1
外接電池
?
× 1

描述

Jigglypuff IoT 二氧化碳和粉塵監(jiān)測(cè)器(跟蹤器)帶電報(bào)

?

The dust density and the carbon dioxide (CO2) density affect my sleep quality and health detrimentally due to the fact that I have allergic bronchitis. Allergic bronchitis is a chronic pulmonary disease, and exposure to allergy triggers like tobacco smoke, pollution, or dust can instigate it. When the dust density and the carbon dioxide density are higher, it becomes struggling for me to breathe, especially while sleeping. Therefore, I decided to create this project to track the dust density and the carbon dioxide density in my room remotely so as to get a prescient warning to extenuate my symptoms before going to bed.

?

由于 Telegram 是一個(gè)兼容 iOSAndroid 的跨平臺(tái)基于云的消息服務(wù),我決定創(chuàng)建一個(gè) Telegram 機(jī)器人來(lái)輕松監(jiān)控多個(gè)設(shè)備上的灰塵和二氧化碳密度評(píng)估。在 Telegram 中,與任何其他消息傳遞應(yīng)用程序不同,使用命令列表創(chuàng)建機(jī)器人很容易,這些消息應(yīng)用程序是不需要額外電話(huà)號(hào)碼來(lái)設(shè)置的特殊帳戶(hù)。IoT Carbon Dioxide and Dust Monitor 是我為這個(gè)項(xiàng)目創(chuàng)建的 Telegram 機(jī)器人,它允許用戶(hù)使用以下命令顯示實(shí)時(shí)灰塵和二氧化碳密度評(píng)估:

?

  • /co2_density
  • /dust_density

?

我開(kāi)發(fā)了一個(gè) PHP Web 應(yīng)用程序(傳出)來(lái)與我的 Telegram 機(jī)器人通信該應(yīng)用程序從 Telegram Bot API 更新,將傳感器生成的灰塵和二氧化碳密度評(píng)估(如下所述)保存到給定的 MySQL 數(shù)據(jù)庫(kù)表中,并在請(qǐng)求時(shí)將密度評(píng)估發(fā)送到我的 Telegram bot。

?

為了準(zhǔn)確獲取灰塵密度和二氧化碳濃度,我使用了 MH-Z14A NDIR CO2 傳感器和 GP2Y1010AU0F 灰塵傳感器。我選擇使用 Arduino Nano RP2040 Connect 來(lái)讀取評(píng)估并將其傳輸?shù)?Web 應(yīng)用程序,因?yàn)樗蔷哂袃?nèi)置 u-blox NINA-W102 無(wú)線電模塊的高性能開(kāi)發(fā)板。顧名思義,該板基于 Raspberry Pi Foundation 的 RP2040 微控制器

?

為了在將評(píng)估發(fā)送到 Web 應(yīng)用程序之前在設(shè)備上顯示評(píng)估,我使用了 SSD1306 OLED (128x32) 屏幕。最后,我添加了一個(gè) 5mm 共陽(yáng)極 RGB LED 來(lái)顯示設(shè)備(通過(guò) Nano RP2040 Connect)和 Web 應(yīng)用程序之間的連接狀態(tài)。

?

在完成面包板上的接線并測(cè)試代碼后,Jigglypuff 啟發(fā)我為這個(gè)項(xiàng)目設(shè)計(jì)了一個(gè) PCB。由于 Jigglypuff 有一個(gè)臭名昭著的睡眠發(fā)作,我認(rèn)為為一個(gè)項(xiàng)目設(shè)計(jì)一個(gè) Jigglypuff PCB 會(huì)很可愛(ài),這有助于我在睡覺(jué)前緩解我的過(guò)敏癥狀 :)

?

由于粉紅色 PCB 并不普遍,您之前可能沒(méi)有見(jiàn)過(guò)粉紅色阻焊層選項(xiàng)。如果您想像我的 PCB 一樣設(shè)計(jì)帶有粉色阻焊層選項(xiàng)的 PCB,我強(qiáng)烈推薦 PCBWay。他們?yōu)楠?dú)特的 PCB 顏色和要求提供快速、可靠且經(jīng)濟(jì)實(shí)惠的服務(wù)。您可以從這里檢查 PCBWay 阻焊層和絲印選項(xiàng)?

?

poYBAGKh1OGAaZSuAAP1gp2UL5o672.jpg

?

pYYBAGKh1OiAIxn6AAMzZmGuCbM127.jpg

?

pYYBAGKh1QyAdiuvAFz3rpSTWO0942.gif

?

pYYBAGKh1TSAc4J5AHAbIQJnUW8567.gif

?

第 1 步:設(shè)計(jì)和焊接 Jigglypuff IoT 二氧化碳和灰塵監(jiān)測(cè)器 PCB

?

在對(duì)我的 PCB 設(shè)計(jì)進(jìn)行原型設(shè)計(jì)之前,我使用 Arduino Nano RP2040 Connect 測(cè)試了所有連接和接線。

?

poYBAGKh1TiABFtVAAjgqCR1_L8803.jpg

?

然后,我利用 KiCad 設(shè)計(jì)了物聯(lián)網(wǎng)二氧化碳和灰塵監(jiān)測(cè)器 PCB - 靈感來(lái)自可愛(ài)迷人的 Jigglypuff :) 我在下面附上了 PCB 的 Gerber 文件。因此,如果您愿意,您可以從 PCBWay 訂購(gòu)此 PCB,以創(chuàng)建一個(gè)可愛(ài)的設(shè)備來(lái)跟蹤任何地方的灰塵密度和二氧化碳密度。

?

pYYBAGKh1TuAMSGyAAYVh55F-OM428.jpg

?

poYBAGKh1UGAfps0AAX30bRFsHo291.jpg

?

首先,通過(guò)使用烙鐵,我連接了接頭(母)、電阻器(150Ω、2.2K、3.3K)、MH-Z14A NDIR CO2 傳感器、GP2Y1010AU0F 灰塵傳感器、5mm 共陽(yáng)極 RGB LED、電容器(220μF)和電源插孔。

?

PCB上的元件清單:

?

A1(用于 Arduino Nano RP2040 連接的接頭)

SSD1306(SSD1306 OLED (128x32) 屏幕的接頭)

MHZ14(MH-Z14A NDIR CO2 傳感器)

GP2Y10(GP2Y1010AU0F灰塵傳感器)

D1 (5mm 共陽(yáng)極 RGB LED)

C1 (220μF電容)

R1(2.2K電阻)

R2(3.3K電阻)

R3(150Ω電阻)

J1(電源插孔)

?

pYYBAGKh1UWAUe93AAZcT9m0_g0369.jpg

?

pYYBAGKh1UmAJUPNAAY1A3mvX2A746.jpg

?

pYYBAGKh1VCAY3tMAAcGJ0WceUE129.jpg

?

為了讓我的 PCB 設(shè)計(jì)更加精致,我在 PCB 背面安裝了 GP2Y1010AU0F 灰塵傳感器,并用熱膠槍將其固定。我還添加了兩個(gè)焊接跳線墊(JP1、JP2),將 Nano RP2040 Connect 連接到 MH-Z14A CO2 傳感器的 UART 接口

?

pYYBAGKh1VSAPKsEAAarDbdl6oY222.jpg

?

第 2 步:使用 BotFather 構(gòu)建 Telegram 機(jī)器人

?

BotFather 是一個(gè) Telegram 機(jī)器人,可讓我們?cè)?Telegram 上創(chuàng)建和管理機(jī)器人,而無(wú)需任何編碼。

?

? 首先,在 Telegram 上打開(kāi) BotFather 并輸入 /start 以查看可用的命令列表和手冊(cè)。

?

pYYBAGKh1VeAUr8uAAfpijl7niw998.jpg

?

? 使用 /newbot 命令創(chuàng)建一個(gè)新機(jī)器人。當(dāng) BotFather 要求您輸入名稱(chēng)時(shí),輸入您的機(jī)器人的名稱(chēng)。它顯示在聯(lián)系方式和其他地方。

?

物聯(lián)網(wǎng)二氧化碳和粉塵監(jiān)測(cè)儀

?

? 然后,輸入您的機(jī)器人的用戶(hù)名。用戶(hù)名長(zhǎng)度為 5-32 個(gè)字符,不區(qū)分大小寫(xiě),但只能包含拉丁字符、數(shù)字和下劃線。它們必須以“bot”結(jié)尾,例如“tetris_bot”或“TetrisBot”。

?

co2_dust_bot

?

? 在這些步驟之后,BotFather 會(huì)為您的新機(jī)器人生成一個(gè)授權(quán)令牌。授權(quán)令牌是一個(gè)類(lèi)似于 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 的字符串,它是授權(quán)機(jī)器人并向 Telegram Bot API 發(fā)送請(qǐng)求所必需的。確保您的令牌安全并安全存儲(chǔ)。

?

poYBAGKh1VyARllnAAXTgXxg0AE696.jpg

?

? 此外,您可以使用/setuserpic?命令更改機(jī)器人的個(gè)人資料圖片?。

?

poYBAGKh1V-ADWmWAAWXTv7qgZY199.jpg

?

? 最后,輸入 /setcommands 命令來(lái)定義最近創(chuàng)建的機(jī)器人支持的命令列表。用戶(hù)在與機(jī)器人的聊天中鍵入 / 時(shí),會(huì)將這些命令視為建議。

?

?? 我為 Telegram 機(jī)器人(IoT 二氧化碳和粉塵監(jiān)測(cè)器)創(chuàng)建的命令列表:

?

  • /co2_density - 顯示 MH-Z14A NDIR CO2 傳感器產(chǎn)生的 CO2 密度
  • /dust_density - 監(jiān)控 GP2Y10 灰塵傳感器產(chǎn)生的灰塵密度
  • /幫助 - 幫助

?

pYYBAGKh1WOAEtCIAAeO45EykVo501.jpg

?

第 3 步:用 PHP 開(kāi)發(fā)一個(gè) Web 應(yīng)用程序以通過(guò) Telegram Bot API 與機(jī)器人通信

?

成功創(chuàng)建 Telegram 機(jī)器人后,我需要從 Telegram Bot API 獲取更新以與我的機(jī)器人通信。因此,我用 PHP 開(kāi)發(fā)了一個(gè) web 應(yīng)用程序,名為 telegram_co2_and_dust_monitor,以便:

?

  • 通過(guò)Telegram Bot API從我的 Telegram 機(jī)器人(IoT 二氧化碳和粉塵監(jiān)測(cè)器)獲取更新
  • 獲取 Nano RP2040 Connect 傳輸?shù)幕覊m和二氧化碳密度評(píng)估,并將它們保存到給定的 MySQL 數(shù)據(jù)庫(kù)表中,
  • 根據(jù)要求向我的 Telegram 機(jī)器人發(fā)送消息(灰塵和二氧化碳密度評(píng)估)。

?

該應(yīng)用程序包含一個(gè)文件 - index.php。我在 index.php 文件中創(chuàng)建了一個(gè)名為 telegram_co2_dust_monitor 的類(lèi),以保存 Nano RP2040 Connect 傳輸?shù)?a target='_blank' class='arckwlink_none'>信息到給定的 MySQL 數(shù)據(jù)庫(kù)表,并在請(qǐng)求時(shí)將該信息發(fā)送到給定的 Telegram 機(jī)器人。

?

? 在 __init__ 函數(shù)中,該類(lèi)需要四個(gè)參數(shù)來(lái)執(zhí)行函數(shù):

?

  • 令牌?給定電報(bào)機(jī)器人的授權(quán)令牌
  • 網(wǎng)絡(luò)路徑?Telegram Bot API 請(qǐng)求服務(wù)器
  • 康?MySQL數(shù)據(jù)庫(kù)連接設(shè)置
  • 桌子 ?MySQL數(shù)據(jù)庫(kù)表名

?

? 在 send_message 函數(shù)中,應(yīng)用程序使用機(jī)器人的授權(quán)令牌通過(guò) Telegram Bot API 將給定的文本發(fā)送給給定的機(jī)器人。

?

語(yǔ)法:https://api.telegram.org/bot/sendMessage?chat_id=&text=

?

? 在 send_photo 函數(shù)中,應(yīng)用程序使用機(jī)器人的授權(quán)令牌通過(guò) Telegram Bot API 將給定的圖片發(fā)送給給定的機(jī)器人。

?

語(yǔ)法:https://api.telegram.org/bot/sendPhoto?chat_id=&photo=&caption=

?

? 在 send_video 函數(shù)中,應(yīng)用程序使用機(jī)器人的授權(quán)令牌通過(guò) Telegram Bot API 將給定的視頻發(fā)送到給定的機(jī)器人。

?

語(yǔ)法:https://api.telegram.org/bot/sendVideo?chat_id=&video=&caption=

?

	   {
		  ->token = $token;
		 ->web_path = $server.$token;
		 ->conn = $conn;
		 ->table = $table;
	}
	
	   {
		$new_message =  -> web_path。 .$id.  .urlencode($string);
		file_get_contents($new_message);
	}
	
	   {
	$new_photo =  -> web_path。 .$id.  .$照片。 .$caption;
	文件獲取內(nèi)容($new_photo);
	}

	   {
	$new_video =  -> web_path。 .$id.  .$視頻。 .$caption;
	文件獲取內(nèi)容($new_video);
	}

?

? 在 update_database 函數(shù)中,將給定信息保存到給定 MySQL 數(shù)據(jù)庫(kù)表中的給定列。

?

	   {
		$sql =  ;
		mysqli_query(  ->conn, $sql);
	}

?

? 在 get_data_from_database 函數(shù)中,從給定 MySQL 數(shù)據(jù)庫(kù)表的給定列中獲取并返回請(qǐng)求的信息。

?

	   {
		$sql =  ;
		$result = mysqli_query(  ->conn, $sql);
		 ($row = mysqli_fetch_assoc($result)){
			  $row[$_column];
		}
	}

?

? 定義所需的 MySQL 數(shù)據(jù)庫(kù)連接設(shè)置和 co2_dust_monitor 對(duì)象及其所需參數(shù)。

?

$server =  (
	  =>  ,
	  =>  ,
	  =>  ,
	  =>  ,
	  => 

);

$conn = mysqli_connect($server[  ], $server[  ], $server[  ], $server[  ]);

 
$co2_dust_monitor =  telegram_co2_dust_monitor();
$bot_token =  ;  
$co2_dust_monitor->__init__($bot_token,  , $conn, $server[  ]);

?

? 從 Telegram Bot API 獲取更新。

?

$updates = json_decode(file_get_contents(  ),  );

?

? 如果應(yīng)用程序從 Telegram Bot API 接收數(shù)據(jù),則獲取聊天 ID 和消息。

?

? 根據(jù)傳入消息的類(lèi)型 - 照片、視頻、文檔或文本 - 使用引發(fā)的聊天 ID 回復(fù)聊天。

?

? Web 應(yīng)用程序與來(lái)自給定 Telegram 機(jī)器人的這些命令兼容:

?

  • /開(kāi)始
  • /co2_density
  • /dust_density
  • /幫助

?

? 如果收到 /start 命令,應(yīng)用程序會(huì)將聊天 ID 注冊(cè)到給定的 MySQL 數(shù)據(jù)庫(kù)表,以便發(fā)送消息而無(wú)需從 Telegram Bot API 進(jìn)行更新。

?

? 如果收到 /co2_density 命令,Web 應(yīng)用程序會(huì)將存儲(chǔ)在數(shù)據(jù)庫(kù)表中的最新二氧化碳密度評(píng)估和更新時(shí)間發(fā)送給給定的 Telegram 機(jī)器人。

?

? 如果收到 /dust_density 命令,Web 應(yīng)用程序會(huì)將存儲(chǔ)在數(shù)據(jù)庫(kù)表中的最新灰塵密度評(píng)估和更新時(shí)間發(fā)送給給定的 Telegram 機(jī)器人。

?

? 如果接收到 /help 命令,Web 應(yīng)用程序會(huì)將帶有描述的支持命令列表發(fā)送到給定的 Telegram 機(jī)器人。

?

? 默認(rèn)情況下,如果沒(méi)有收到支持的命令而是文本,Web 應(yīng)用程序會(huì)發(fā)送:

?

等待你的命令:)

?

($updates[  ]){
	$chat_id = $updates[  ][  ][  ];
	$message = $updates[  ][  ];

	($updates[  ][  ]){
		$co2_dust_monitor->send_message($chat_id,  );
	}   ($updates[  ][  ]){
		$co2_dust_monitor->send_message($chat_id,  );
	}   ($updates[  ][  ]){
		$co2_dust_monitor->send_message($chat_id,  );
	}  {
		 
		 ($message){
		   :
		$co2_dust_monitor->update_database(  , $chat_id); 
		$co2_dust_monitor->send_message($chat_id,  );
		;	
		 :
		$co2 = $co2_dust_monitor->get_data_from_database(  );
		$date = $co2_dust_monitor->get_data_from_database(  );
		$co2_dust_monitor->send_message($chat_id,  );
		;	
		 :
		$dust = $co2_dust_monitor->get_data_from_database(  );
		$date = $co2_dust_monitor->get_data_from_database(  );
		$co2_dust_monitor->send_message($chat_id,  );
		;
		 :
		$co2_dust_monitor->send_message($chat_id,  );
		;
:
$co2_dust_monitor->send_message($chat_id,  );
;		
	}
	}
}

?

? 如果 Nano RP2040 Connect 將灰塵和二氧化碳密度評(píng)估傳輸?shù)?Web 應(yīng)用程序,請(qǐng)將它們保存到給定的 MySQL 數(shù)據(jù)庫(kù)表中。然后,使用 date 函數(shù)設(shè)置時(shí)區(qū)以精確得出最新的更新時(shí)間,并將其保存到數(shù)據(jù)庫(kù)表中。

?

 (  ($_GET[  ]) &&  ($_GET[  ])){
	$co2_dust_monitor->update_database(  , htmlentities($_GET[  ]));
	$co2_dust_monitor->update_database(  , htmlentities($_GET[  ]));
	 
	date_default_timezone_set(  );
	$co2_dust_monitor->update_database(  , date(  ));
	 (  );
}

?

poYBAGKh1WWAafjPAAC3q-9jNeo853.png

?

poYBAGKh1WeARR5nAAC7HpM0-cU183.png

?

poYBAGKh1WmAVlJTAAD0twCSSQk834.png

?

步驟 3.1:創(chuàng)建 MySQL 數(shù)據(jù)庫(kù)表并保存更新

?

在用 PHP 開(kāi)發(fā) Web 應(yīng)用程序后,我在我的服務(wù)器上創(chuàng)建了一個(gè)新的 MySQL 數(shù)據(jù)庫(kù) (telegramco2dustmonitor)。然后,我在 telegramco2dustmonitor 數(shù)據(jù)庫(kù)中創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù)表(條目),以收集 Nano RP2040 Connect 傳輸?shù)幕覊m和二氧化碳密度評(píng)估。最后,我在條目數(shù)據(jù)庫(kù)表中為每個(gè)屬性(列)插入了默認(rèn)值:

?

telegramco2dustmonitor > 條目 > 屬性:

?

  • 聊天ID
  • 二氧化碳
  • 灰塵
  • 日期

?

  (
 chat_id )主  ,
 co2  (  ) ,
 灰塵 (  )   ,
  (  )  
);

  ” 、 “dust” 、 “ 

?

pYYBAGKh1WuACiSwAADhLg7bvls552.png

?

poYBAGKh1W2AGC5XAADbV2HzDNY231.png

?

通過(guò)向 https://api.telegram.org/ 發(fā)出請(qǐng)求從 Telegram Bot API 獲取更新需要 SSL 連接,因此我使用我網(wǎng)站的服務(wù)器來(lái)托管 Web 應(yīng)用程序。

?

theamplituhedron.com

?

但是,? Telegram Bot API?是開(kāi)源的,可在?telegram-bot-api獲得。您可以在本地運(yùn)行它并將請(qǐng)求發(fā)送到您的服務(wù)器而不是 https://api.telegram.org。

?

poYBAGKh1W-Ae4ReAAAd3Zwybds527.png

?

???當(dāng) Web 應(yīng)用程序獲取信息并將該信息成功保存到數(shù)據(jù)庫(kù)表中時(shí),應(yīng)用程序會(huì)打印:

?

數(shù)據(jù)注冊(cè)成功!

?

pYYBAGKh1XGAK2QYAAAl2c81dC4479.png

?

步驟 3.2:設(shè)置 Web 應(yīng)用程序以與機(jī)器人通信

?

在開(kāi)發(fā) Web 應(yīng)用程序(傳出 webhook)并創(chuàng)建 MySQL 數(shù)據(jù)庫(kù)表之后,我需要使用setWebhook方法為我的 Telegram 機(jī)器人(IoT 二氧化碳和灰塵監(jiān)視器)指定應(yīng)用程序 URL,??以接收來(lái)自 Telegram Bot API 的傳入更新。

?

https://api.telegram.org/bot/setWebhook?url=https://www.theamplituhedron.com/telegram_co2_and_dust_monitor/

?

poYBAGKh1XOAM54qAABQr52fGPY357.png

?

? 指定應(yīng)用程序 URL 后,Telegram Bot API 會(huì)拋出此消息:Webhook 已設(shè)置。

?

? 要檢查給定的 Telegram 機(jī)器人功能并將聊天 ID 注冊(cè)到數(shù)據(jù)庫(kù)表中,請(qǐng)打開(kāi)機(jī)器人并輸入 /start。

?

poYBAGKh1XaAUsxqAAGB2q4EzI8327.jpg

?

pYYBAGKh1XqAXDAqAANFDnFoMAQ919.jpg

?

? 輸入?/help?以查看支持的命令列表和說(shuō)明。

?

poYBAGKh1X6AX-QFAAUe1GuIiVk584.jpg

?

第 4 步:為 Nano RP2040 Connect 安裝 Mbed OS 內(nèi)核

?

由于我決定在這個(gè)項(xiàng)目中使用 Arduino Nano RP2040 Connect,我需要將 Mbed OS 內(nèi)核安裝到 Arduino IDE 中。

?

? 在 Arduino IDE 上,導(dǎo)航到 Tools > Board > Boards Manager。

?

pYYBAGKh1YCAb7RkAADjHaMvDXA397.png

?

? 然后,搜索?Arduino Mbed OS Nano Boards?內(nèi)核并安裝它。

?

pYYBAGKh1YKAAy9qAACaS8mC4ow968.png

?

? 成功安裝所需內(nèi)核后,轉(zhuǎn)到?Tools > Board > Arduino Mbed OS Nano Boards?并選擇?Arduino Nano RP2040 Connect

?

poYBAGKh1YSAPbWlAAC-pM80kP8999.png

?

第 5 步:將證書(shū)添加到 Nano RP2040 Connect

?

在 Arduino IDE 上安裝 Arduino Nano RP2040 Connect 所需的內(nèi)核后,我設(shè)置了開(kāi)發(fā)板以通過(guò) SSL 連接連接到我網(wǎng)站的服務(wù)器。不幸的是,對(duì)于 Nano RP2040 Connect,通過(guò) SSL 連接連接到服務(wù)器并不像其他 Arduino IoT 板那么簡(jiǎn)單。它需要預(yù)安裝 SSL 證書(shū),該證書(shū)不包含在開(kāi)發(fā)板中。

因此,我需要將我網(wǎng)站服務(wù)器的 SSL 證書(shū)上傳到 Nano RP2040 Connect。

?

? 首先,為了能夠在 Nano RP2040 Connect 上使用 Wi-Fi 模塊,請(qǐng)從?此處下載 WiFiNINA 庫(kù)。

?

? 連接 Nano RP2040 通過(guò) USB 數(shù)據(jù)線連接到 PC,然后在 Tools > Port and Tools > Board 中選擇正確的端口和板。

?

? 在 Example > WiFi101 / WiFiNINA > Tools > Firmware Updater 中搜索固件更新程序草圖并將其上傳到開(kāi)發(fā)板。

?

poYBAGKh1YaAFjXQAAFREpZoHk0678.png

?

? 成功上傳草圖后,打開(kāi)?Tools > WiFi101 / WiFiNINA Firmware Updater

?

pYYBAGKh1YiAAR-2AAC7Y0ztvnA708.png

?

? 啟動(dòng)?固件更新程序?后,選擇 Wi-Fi 模塊(板)的端口。在第 2 部分中,選擇?NINA 固件 (1.3.0) (Arduino MKR WiFi 1010, Arduino Nano 33 IoT)

?

pYYBAGKh1YuALotpAADfrDNGg5c409.png

?

? 然后,在第 3 部分中,單擊添加域并進(jìn)入網(wǎng)站以獲取其 SSL 證書(shū)。

?

theamplituhedron.com

?

pYYBAGKh1Y2AQJfAAADrbAU2r5g843.png

?

? 最后,在列表中選擇最近添加的網(wǎng)站,然后點(diǎn)擊?Upload Certificates to WiFi module

?

pYYBAGKh1Y-AB2RpAADsj37odZM251.png

?

第 6 步:對(duì) Nano RP2040 Connect 進(jìn)行編程

?

成功完成上述所有步驟后,我對(duì) Arduino Nano RP2040 Connect 進(jìn)行了編程。

?

? 包括所需的庫(kù)。

?





?

? 定義所需的 Wi-Fi 網(wǎng)絡(luò)連接設(shè)置和 Web 應(yīng)用程序路徑。

?

ssid[] =  ;
 pass[] =  ;
 keyIndex =  ;
 status = WL_IDLE_STATUS;


 server[] =  ;


字符串應(yīng)用程序= 
WiFiSSLClient客戶(hù)端;

?

? 定義 SSD1306 OLED (128x32) 屏幕設(shè)置。

?





?

? 啟動(dòng)計(jì)時(shí)器并啟動(dòng) SSD1306 屏幕。

?

heat_timer = 毫秒();

 
display.begin(SSD1306_SWITCHCAPVCC,  );
display.clearDisplay();
顯示.setTextSize(  );
display.setCursor(  ,  );
display.setTextColor(SSD1306_WHITE);
display.println(  );
展示。);
顯示.顯示();
延遲();

?

? 檢查Wi-Fi模塊與Wi-Fi網(wǎng)絡(luò)的連接狀態(tài)。如果連接成功,則將 RGB LED 變?yōu)樗{(lán)色。

?

 (WiFi.status() == WL_NO_MODULE) { adjustColor(  ,  ,  ); );}
 

狀態(tài) = WiFi.開(kāi)始(ssid,通過(guò));
 
delay(  );
}
 
adjustColor(  ,  ,  );

?

? 等待 5 分鐘,直到 MH-Z14A NDIR CO2 傳感器正常加熱以生成準(zhǔn)確的數(shù)據(jù)。

?

? 收集數(shù)據(jù)時(shí)將 RGB LED 變?yōu)樽仙?/font>

?

? 獲取 MH-Z14A NDIR CO2 傳感器每 20 秒產(chǎn)生的二氧化碳濃度評(píng)估。

?

? 引出 GP2Y1010AU0F 灰塵傳感器生成的灰塵密度評(píng)估。

?

 (millis() - heat_timer <  ){  (millis() - timer >  ){ timer = millis(); } }
 調(diào)整
(
255,0,255 ) (millis() - timer >  ){ MH_Z14A_readings(); 計(jì)時(shí)器 = 毫秒();make_a_get_request(); }


GP2Y10_dust_sensor_readings();

?

? 在 SSD1306 屏幕上打印灰塵和二氧化碳密度評(píng)估。

?

display.clearDisplay();
顯示.setTextSize(  );
display.setCursor(  ,  );
display.setTextColor(SSD1306_WHITE);
展示。);
展示。(灰塵密度);
展示。);
展示。);
展示。(co2_level);
展示。);
顯示.顯示();

?

? 在 GP2Y10_dust_sensor_readings 函數(shù)中,評(píng)估灰塵密度 (mg/m3) 并在必要時(shí)校準(zhǔn)傳感器。

我需要將灰塵傳感器的評(píng)估校準(zhǔn) 0.05 以獲得準(zhǔn)確的結(jié)果。您可能需要根據(jù)傳感器的評(píng)估更改校準(zhǔn)值。

?

calcVoltage = voMeasured*(3.3/1024);

灰塵密度 = 0.17*calcVoltage-0.1;

?

  {

數(shù)字寫(xiě)入(ledPower,低);
延遲微秒();
voMeasured = 模擬讀取(測(cè)量引腳);
延遲微秒();
數(shù)字寫(xiě)入(ledPower,HIGH);
延遲微秒();

calcVoltage = voMeasured*(  /  );
灰塵密度 =  *calcVoltage  ;

延遲();
}

?

? 在 MH_Z14A_readings 函數(shù)中,利用定時(shí)器和 MH-Z14A CO2 傳感器的 PWM 接口計(jì)算二氧化碳濃度 (ppm)。

?

長(zhǎng) ppm = 5000L * (tH - 2) / (tH + tL - 4);

?

  {

t0 = 毫秒();
(數(shù)字讀取(MH_Z14A_PWM)==高){};
t1 = 毫秒();
(數(shù)字讀取(MH_Z14A_PWM)==低){};
t2 = 毫秒();
tH = t1-t0;
tL = t2-t1;
ppm = * (tH - ) / (tH + tL - );
(數(shù)字讀取(MH_Z14A_PWM)==高){};
co2_level = (  )ppm;
延遲();
}

?

? 在 make_a_get_request 函數(shù)中:

?

? 連接到名為 telegram_co2_and_dust_monitor 的 Web 應(yīng)用程序。

?

? 如果與給定服務(wù)器的連接成功,則將 RGB LED 變?yōu)辄S色并創(chuàng)建查詢(xún)字符串,包括灰塵和二氧化碳密度評(píng)估。否則,將 RGB LED 變?yōu)榧t色。

?

? 然后,使用查詢(xún)字符串發(fā)出 GET 請(qǐng)求,將給定的參數(shù)發(fā)送到 Web 應(yīng)用程序。

?

? 如果有可用的傳入字節(jié),則從 Web 應(yīng)用程序獲取響應(yīng)。

?

? 如果 Web 應(yīng)用程序成功將傳輸?shù)臄?shù)據(jù)存儲(chǔ)到 MySQL 數(shù)據(jù)庫(kù)表中,則將 RGB LED 變?yōu)榫G色并打印 Data Registered Successful!在 SSD1306 屏幕上。

?

  {

 
adjustColor( , , );
 
String query = application + +co2_level+ +dustDensity;
 
client.println( + query + );
client.println(  );
client.println(  );
客戶(hù)端.println();
}{調(diào)整);
}
延遲();
字符串響應(yīng) =  ;
 (client.available()) {  c = client.read(); 響應(yīng) += c; }
  (response !=  && response.indexOf(  ) >  ){(
0,255,0 );
display.clearDisplay();
顯示.setTextSize(  );
display.setCursor(  ,  );
display.setTextColor(SSD1306_WHITE);
display.println(  );
display.println(  );
顯示.顯示();
}
}

?

poYBAGKh1ZGAfEdeAACV4m2M3x8862.png

?

pYYBAGKh1ZOAYXGhAAB2Rjj__Xc843.png

?

pYYBAGKh1ZeAPQVGAACAIKB8C_g548.png

?

poYBAGKh1ZmAV2HwAACGV3GGg0I970.png

?

pYYBAGKh1ZuAcrnsAACZ8o0pBc0213.png

?

連接和調(diào)整

?

















?

完成焊接并上傳代碼后,我通過(guò)接頭將所有剩余組件連接到 PCB - Arduino Nano RP2040 Connect 和 SSD1306 OLED (128x32) 屏幕。

?

poYBAGKh1Z-ANkQDAAaN5E6K8C0845.jpg

?

由于 Nano RP2040 Connect 的工作電壓為 3.3V,而 MH-Z14A NDIR CO2 傳感器需要 4.5V - 5.5V 的工作電壓,因此我在 Nano RP2040 Connect 上啟用并使用了內(nèi)置的 5V 引腳 (VUSB)。

?

我利用 MH-Z14A CO2 傳感器的 PWM 接口引出傳感器生成的二氧化碳密度評(píng)估。但是,我添加了兩個(gè)焊接跳線墊(JP1、JP2),將 Nano RP2040 Connect 連接到 MH-Z14A CO2 傳感器的 UART 接口。因此,如果需要,可以使用傳感器的 UART 接口。

?

如下圖,我用熱膠槍將GP2Y1010AU0F灰塵傳感器固定在PCB背面。

?

pYYBAGKh1OiAIxn6AAMzZmGuCbM127.jpg

?

模式和功能

?

???啟動(dòng)時(shí),設(shè)備會(huì)在 SSD1306 OLED 屏幕上打印 Heating & Connecting 并嘗試連接到給定的 Wi-Fi 網(wǎng)絡(luò)。

?

pYYBAGKh1aSALAH5AAPp4lj_usw907.jpg

?

???如果 Wi-Fi 模塊與 Wi-Fi 網(wǎng)絡(luò)連接成功,設(shè)備會(huì)將 RGB LED 變?yōu)樗{(lán)色并等待 5 分鐘,直到 MH-Z14A NDIR CO2 Sensor 正常加熱以生成準(zhǔn)確的二氧化碳濃度評(píng)估。

?

poYBAGKh1aeAH9CGAAQX6bFA3B4832.jpg

?

???在從傳感器(GP2Y1010AU0F 和 MH-Z14A)收集灰塵和二氧化碳密度評(píng)估時(shí),該設(shè)備將 RGB LED 變?yōu)樽仙⒔Y(jié)果打印在 SSD1306 OLED 屏幕上。

?

pYYBAGKh1aqAEzwaAAQFRvdALAM984.jpg

?

pYYBAGKh1beAFbdAAALXbEHbV_A889.jpg

?

poYBAGKh1bmAGDYlAAKAuyW05Hg270.jpg

?

???如果 Wi-Fi 模塊成功連接到 Web 應(yīng)用程序的服務(wù)器,設(shè)備會(huì)將 RGB LED 變?yōu)辄S色。否則,設(shè)備會(huì)將 RGB LED 變?yōu)榧t色。

?

pYYBAGKh1byARsFwAAQrhbmJzyI314.jpg

?

poYBAGKh1b6AEKVdAAJfJtTgYuQ772.jpg

?

???如果 Web 應(yīng)用程序?qū)鬏數(shù)臄?shù)據(jù)成功保存到 MySQL 數(shù)據(jù)庫(kù)表中,則設(shè)備將 RGB LED 變?yōu)榫G色并打印?數(shù)據(jù)注冊(cè)成功!?SSD1306 OLED屏幕上。

?

pYYBAGKh1cuAQxgNAARN0nceg7c292.jpg

?

pYYBAGKh1c2AYpm5AAJzhSKFWO8193.jpg

?

?? 在 Telegram 機(jī)器人(IoT 二氧化碳和粉塵監(jiān)測(cè)器)上:

?

???如果輸入 /co2_density 命令,機(jī)器人會(huì)顯示存儲(chǔ)在 MySQL 數(shù)據(jù)庫(kù)表中的最新二氧化碳密度評(píng)估和更新時(shí)間。

?

poYBAGKh1dGAIieiAAYijnej2w0821.jpg

?

???如果輸入?/dust_density?命令,機(jī)器人將顯示存儲(chǔ)在 MySQL 數(shù)據(jù)庫(kù)表中的最新灰塵密度評(píng)估和更新時(shí)間。

?

poYBAGKh1dWAbLnfAAcpp3mkN6I650.jpg

?

pYYBAGKh1diAC34FAAcOpPVH6tY991.jpg

?

視頻和結(jié)論

?

?

?

?

代碼

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

評(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電子書(shū))
  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)
主站蜘蛛池模板: 色多多视频成人影院 | 五月婷婷亚洲综合 | 久热首页| 亚洲成人一级片 | 美女扒开尿口给男人看大全 | 三级网址在线播放 | 91aaa免费观看在线观看资源 | 久久电影福利 | 天天操天天摸天天干 | 4hu44四虎在线观看 | 免费看一级黄色录像 | 伊人久久大香线蕉综合亚洲 | 久久成人福利视频 | 禁漫羞羞a漫入口 | xxxxbbbb欧美 | 国产日本久久久久久久久婷婷 | 免费在线黄色网 | 91精品国产免费久久久久久青草 | 超级狂色而且免费又超好看 | 天天做夜夜做久久做狠狠 | 手机在线一区二区三区 | 色女人网| 天天操夜夜操美女 | 一区二区三区高清 | 久久综合九色综合97婷婷群聊 | 丝袜美女被c | 国产大片91精品免费观看不卡 | 色综合成人丁香 | 天堂8中文在线bt | 亚洲国产成人精品女人久久久 | 欧美一级爱操视频 | 色天天天天| 亚洲国产高清精品线久久 | 天天射日| 一级毛片免费毛片一级毛片免费 | 成年午夜一级毛片视频 | 国产午夜精品理论片免费观看 | videofreeones性欧美另类 | 天天插天天操天天干 | 激情五月社区 | 国产农村女人一级毛片了 |