現(xiàn)代家居-智能衣櫥精靈的設(shè)計創(chuàng)新創(chuàng)業(yè)計劃書_第1頁
現(xiàn)代家居-智能衣櫥精靈的設(shè)計創(chuàng)新創(chuàng)業(yè)計劃書_第2頁
現(xiàn)代家居-智能衣櫥精靈的設(shè)計創(chuàng)新創(chuàng)業(yè)計劃書_第3頁
現(xiàn)代家居-智能衣櫥精靈的設(shè)計創(chuàng)新創(chuàng)業(yè)計劃書_第4頁
現(xiàn)代家居-智能衣櫥精靈的設(shè)計創(chuàng)新創(chuàng)業(yè)計劃書_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

附錄#include<DHT.h>#include<BluetoothSerial.h>#include<WiFi.h>#include<PubSubClient.h>#include<MFRC522.h>#include<Adafruit_SSD1306.h>#include<Wire.h>#include<esp_sleep.h>#include<freertos/FreeRTOS.h>#include<freertos/task.h>#include<freertos/queue.h>//======硬件配置======#defineDHTPIN4//溫濕度傳感器#defineDHTTYPEDHT11#defineUV_PIN23//紫外線燈#defineFAN_PIN22//通風(fēng)電機(jī)#defineLED_PIN2//狀態(tài)燈#defineRFID_SS_PIN21//RFID模塊SS#defineRFID_RST_PIN5//RFID模塊RST#defineOLED_SDA18//OLEDI2CSDA#defineOLED_SCL19//OLEDI2CSCL//======網(wǎng)絡(luò)配置======#defineWIFI_SSID"YourWiFi"#defineWIFI_PASS"YourPassword"#defineMQTT_SERVER""#defineMQTT_PORT1883#defineMQTT_USER"wardrobe"#defineMQTT_PASS"your_mqtt_key"http://======全局對象======DHTdht(DHTPIN,DHTTYPE);BluetoothSerialSerialBT;WiFiClientespClient;PubSubClientmqtt(espClient);MFRC522rfid(RFID_SS_PIN,RFID_RST_PIN);Adafruit_SSD1306oled(128,64,&Wire);QueueHandle_tdataQueue;//======FreeRTOS任務(wù)句柄======TaskHandle_tSensorTask;TaskHandle_tDisplayTask;TaskHandle_tNetworkTask;//======數(shù)據(jù)結(jié)構(gòu)======structEnvData{floattemp;floathumi;StringrfidTag;};//======初始化設(shè)置======voidsetup(){Serial.begin(115200);//硬件初始化initSensors();initOLED();initWiFi();initMQTT();//創(chuàng)建FreeRTOS任務(wù)xTaskCreatePinnedToCore(taskSensor,//任務(wù)函數(shù)"SensorTask",//任務(wù)名稱4096,//堆棧大小NULL,//參數(shù)3,//優(yōu)先級&SensorTask,//任務(wù)句柄0//核心0);xTaskCreatePinnedToCore(taskDisplay,"DisplayTask",2048,NULL,2,&DisplayTask,0);xTaskCreatePinnedToCore(taskNetwork,"NetworkTask",4096,NULL,1,&NetworkTask,0);//創(chuàng)建數(shù)據(jù)隊列dataQueue=xQueueCreate(10,sizeof(EnvData));}//======FreeRTOS任務(wù)函數(shù)======voidtaskSensor(void*pvParam){EnvDatadata;while(1){//讀取傳感器數(shù)據(jù)data.temp=dht.readTemperature();data.humi=dht.readHumidity();data.rfidTag=readRFID();//發(fā)送到隊列xQueueSend(dataQueue,&data,portMAX_DELAY);//環(huán)境控制邏輯autoControlEnvironment(data.humi);vTaskDelay(2000/portTICK_PERIOD_MS);}}voidtaskDisplay(void*pvParam){EnvDatadata;while(1){if(xQueueReceive(dataQueue,&data,portMAX_DELAY)){updateOLED(data.temp,data.humi,data.rfidTag);}vTaskDelay(500/portTICK_PERIOD_MS);}}voidtaskNetwork(void*pvParam){EnvDatadata;while(1){if(xQueueReceive(dataQueue,&data,1000/portTICK_PERIOD_MS)){sendToCloud(data.temp,data.humi);}mqtt.loop();vTaskDelay(1000/portTICK_PERIOD_MS);}}//======硬件初始化函數(shù)======voidinitSensors(){dht.begin();pinMode(UV_PIN,OUTPUT);pinMode(FAN_PIN,OUTPUT);//RFID初始化SPI.begin();rfid.PCD_Init();}voidinitOLED(){Wire.begin(OLED_SDA,OLED_SCL);oled.begin(SSD1306_SWITCHCAPVCC,0x3C);oled.clearDisplay();oled.setTextSize(1);oled.setTextColor(WHITE);}voidinitWiFi(){WiFi.begin(WIFI_SSID,WIFI_PASS);while(WiFi.status()!=WL_CONNECTED){delay(500);Serial.print(".");}Serial.println("\nWiFi已連接");}voidinitMQTT(){mqtt.setServer(MQTT_SERVER,MQTT_PORT);while(!mqtt.connect("Wardrobe",MQTT_USER,MQTT_PASS)){delay(1000);}Serial.println("MQTT已連接");}//======功能函數(shù)======StringreadRFID(){if(!rfid.PICC_IsNewCardPresent())return"";if(!rfid.PICC_ReadCardSerial())return"";Stringtag="";for(bytei=0;i<rfid.uid.size;i++){tag+=String(rfid.uid.uidByte[i],HEX);}rfid.PICC_HaltA();returntag;}voidautoControlEnvironment(floathumidity){digitalWrite(FAN_PIN,(humidity>65)?HIGH:LOW);}voidupdateOLED(floattemp,floathumi,Stringtag){oled.clearDisplay();oled.setCursor(0,0);oled.printf("Temp:%.1fC\nHumi:%.1f%%",temp,humi);oled.setCursor(0,40);oled.print("RFID:");oled.print(tag.substring(0,8));oled.display();}voidsendToCloud(floattemp,floathumi){Stringpayload=String("{\"temp\":")+temp+",\"humi\":"+humi+"}";mqtt.publish("wardrobe/data",pay

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論