DFROBOT MIND+ 掌控板 人工智慧測溫實驗

dead_lee發表於2022-04-02

DFROBOT Mind+ 掌控板實驗
人工智慧測溫實驗
特別宣告:本文系湛江市第十七中學星火創客團隊及嶺南師範學院物聯網俱樂部原創部分參賽專案,轉載請保留宣告

一、實驗軟硬體環境
硬體:Mind +掌控板、DS18B20溫度感測器(由於沒有測溫人體的,只好用它來代替一下)、micro:bit、HuskyLens。
軟體:Mind+ IDE(版本:V1.6.5 RC3.0)

二、實驗目的及要求
1、實現測溫
2、實現人臉識別
3、實現雲資料庫應用
4、實現測溫資料mqtt上傳至物聯網雲平臺

三、實驗原理與內容
1、基於DS18B20或LM35實現測溫
2、基於二哈實現多人人臉學習和識別
3、基於TinywebDB實現雲資料庫應用
4、基於EasyIoT實現mqtt資料上傳。

arduino程式碼:

/*! * MindPlus * mpython *
 */#include <MPython.h>#include <DFRobot_Iot.h>#include <DFRobot_DS18B20.h>#include <mPython_tinywebdb.h>#include <DFRobot_HuskyLens.h>// 動態變數
String mind_s_XingMing, mind_s_XingMing2, mind_s_WenDu;// 函式宣告
void DF_ID1();void DF_ID2();// 靜態常量
const String topics[5] = {"vZS4cspGg","","","",""};// 建立物件
DFRobot_Iot       myIot;mPython_TinyWebDB mydb;DFRobot_HuskyLens huskylens;DFRobot_DS18B20   ds18b20_P8;// 主程式開始
void setup() {
	mPython.begin();
	ds18b20_P8.begin(P8);
	myIot.wifiConnect("602iot", "18wulian");
	while (!myIot.wifiStatus()) {yield();}
	display.setCursorLine(1);
	display.printLine("連線成功");
	myIot.init("iot.dfrobot.com.cn","afK75ypMg","","-fFn5spGRz",topics,1883);
	myIot.connect();
	while (!myIot.connected()) {yield();}
	display.setCursorLine(2);
	display.printLine("mqtt連線成功");
	mydb.setServerParameter(");
	display.setCursorLine(3);
	display.printLine(mydb.testInternetConnect());
	huskylens.beginI2CUntilSuccess();
	huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
	display.setCursorLine(4);
	display.printLine("二哈初始化成功");
	delay(1500);
	display.fillScreen(0);}void loop() {
	mind_s_XingMing = "2018A14135李土培";
	mind_s_XingMing2 = "2018A14145王爍斌";
	mind_s_WenDu = ds18b20_P8.getTempC();
	huskylens.request();
	if (huskylens.isAppearDirect(HUSKYLENSResultBlock)) {
		DF_ID1();
		DF_ID2();
	}}// 自定義函式
void DF_ID1() {
	if (huskylens.isAppear(1,HUSKYLENSResultBlock)) {
		mydb.updateTagValue(mind_s_XingMing2, mind_s_WenDu);
		myIot.publish(topic_0, (String(mind_s_XingMing) + String(mind_s_WenDu)));
		display.setCursorLine(1);
		display.printLine("開始測溫");
		display.setCursorLine(2);
		display.printLine((String(mind_s_XingMing2) + String(mind_s_WenDu)));
		delay(1500);
		display.fillScreen(0);
	}}void DF_ID2() {
	if (huskylens.isAppear(2,HUSKYLENSResultBlock)) {
		mydb.updateTagValue(mind_s_XingMing, mind_s_WenDu);
		myIot.publish(topic_0, (String(mind_s_XingMing2) + String(mind_s_WenDu)));
		display.setCursorLine(1);
		display.printLine("開始測溫");
		display.setCursorLine(2);
		display.printLine((String(mind_s_XingMing) + String(mind_s_WenDu)));
		delay(1500);
		display.fillScreen(0);
	}}/*! * MindPlus * mpython *
 */#include <MPython.h>#include <DFRobot_Iot.h>#include <DFRobot_DS18B20.h>#include <mPython_tinywebdb.h>#include <DFRobot_HuskyLens.h>// 動態變數
String mind_s_XingMing, mind_s_XingMing2, mind_s_WenDu;// 函式宣告
void DF_ID1();void DF_ID2();// 靜態常量
const String topics[5] = {"vZS4cspGg","","","",""};// 建立物件
DFRobot_Iot       myIot;mPython_TinyWebDB mydb;DFRobot_HuskyLens huskylens;DFRobot_DS18B20   ds18b20_P8;// 主程式開始
void setup() {
	mPython.begin();
	ds18b20_P8.begin(P8);
	myIot.wifiConnect("602iot", "18wulian");
	while (!myIot.wifiStatus()) {yield();}
	display.setCursorLine(1);
	display.printLine("連線成功");
	myIot.init("iot.dfrobot.com.cn","afK75ypMg","","-fFn5spGRz",topics,1883);
	myIot.connect();
	while (!myIot.connected()) {yield();}
	display.setCursorLine(2);
	display.printLine("mqtt連線成功");
	mydb.setServerParameter(");
	display.setCursorLine(3);
	display.printLine(mydb.testInternetConnect());
	huskylens.beginI2CUntilSuccess();
	huskylens.writeAlgorithm(ALGORITHM_FACE_RECOGNITION);
	display.setCursorLine(4);
	display.printLine("二哈初始化成功");
	delay(1500);
	display.fillScreen(0);}void loop() {
	mind_s_XingMing = "2018A14135李土培";
	mind_s_XingMing2 = "2018A14145王爍斌";
	mind_s_WenDu = ds18b20_P8.getTempC();
	huskylens.request();
	if (huskylens.isAppearDirect(HUSKYLENSResultBlock)) {
		DF_ID1();
		DF_ID2();
	}}// 自定義函式
void DF_ID1() {
	if (huskylens.isAppear(1,HUSKYLENSResultBlock)) {
		mydb.updateTagValue(mind_s_XingMing2, mind_s_WenDu);
		myIot.publish(topic_0, (String(mind_s_XingMing) + String(mind_s_WenDu)));
		display.setCursorLine(1);
		display.printLine("開始測溫");
		display.setCursorLine(2);
		display.printLine((String(mind_s_XingMing2) + String(mind_s_WenDu)));
		delay(1500);
		display.fillScreen(0);
	}}void DF_ID2() {
	if (huskylens.isAppear(2,HUSKYLENSResultBlock)) {
		mydb.updateTagValue(mind_s_XingMing, mind_s_WenDu);
		myIot.publish(topic_0, (String(mind_s_XingMing2) + String(mind_s_WenDu)));
		display.setCursorLine(1);
		display.printLine("開始測溫");
		display.setCursorLine(2);
		display.printLine((String(mind_s_XingMing) + String(mind_s_WenDu)));
		delay(1500);
		display.fillScreen(0);
	}}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4686/viewspace-2885591/,如需轉載,請註明出處,否則將追究法律責任。

相關文章