基于Arduino实现的蓝牙自动开关灯
提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
文章目錄
- 前言
- 一、單片機簡介
- 二、系統(tǒng)實現(xiàn)
- 1.系統(tǒng)組成
- 2.接線
- 3.代碼實現(xiàn)
- 三、系統(tǒng)展示
- 1.藍牙控制實現(xiàn)
- 2.成果圖
- 總結
前言
例如:隨著人工智能的不斷發(fā)展,智能化越來越融入人們生活,很多人都開啟了嵌入式學習,本文就介紹了如何用Arduino實現(xiàn)藍牙自動開關燈。
提示:以下是本篇文章正文內容,下面案例可供參考
一、單片機簡介
Arduino是一款便捷靈活、方便上手的開源電子原型平臺。包含硬件(各種型號的Arduino板)和軟件(ArduinoIDE)。由一個歐洲開發(fā)團隊于2005年冬季開發(fā)。它構建于開放原始碼simple I/O介面版,并且具有使用類似Java、C語言的Processing/Wiring開發(fā)環(huán)境。主要包含兩個部分:硬件部分是可以用來做電路連接的Arduino電路板;另外一個則是Arduino IDE,你的計算機中的程序開發(fā)環(huán)境。你只要在IDE中編寫程序代碼,將程序上傳到Arduino電路板后,程序便會告訴Arduino電路板要做些什么了。Arduino能通過各種各樣的傳感器來感知環(huán)境,通過控制燈光、馬達和其他的裝置來反饋、影響環(huán)境。板子上的微控制器可以通過Arduino的編程語言來編寫程序,編譯成二進制文件,燒錄進微控制器。對Arduino的編程是通過 Arduino編程語言 (基于 Wiring)和Arduino開發(fā)環(huán)境(基于 Processing)來實現(xiàn)的。基于Arduino的項目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上運行的軟件,它們之間進行通信 (比如 Flash, Processing, MaxMSP)來實現(xiàn)。
二、系統(tǒng)實現(xiàn)
1.系統(tǒng)組成
本系統(tǒng)組成元器件包括:9g舵機、HC-06藍牙模塊、Arduino控制板、LCD1602顯示屏、DHT11(感知溫濕度)
2.接線
DHT11
| DATA | 數(shù)字 7號口 |
| VCC | 5V |
| GND | GND |
LCD1602
| SDA | A4 |
| VCC | 5V |
| GND | GND |
| SCL | A5 |
HC-06
| TX | RX |
| VCC | 5V |
| GND | GND |
| RX | TX |
9g舵機
| signal | 數(shù)字9號口 |
| VCC | 5V |
| GND | GND |
3.代碼實現(xiàn)
代碼如下(示例):
#include <dht.h>//庫文件 #include <Servo.h> #include <LiquidCrystal_I2C.h> #include <Wire.h> LiquidCrystal_I2C lcd(0x27,16,2); dht DHT; Servo myservo;const int DHT11_PIN=7;//定義引腳 const int analogPin=A3; const int digitalPin=7; const int analogPin1=A2; const int digitalPin1=8; const int ledPin=13; const int photocellPin = A5; char serialData; int Astate=0; boolean Dstate=0; int Astate1=0; boolean Dstate1=0;int outputValue = 0;//char array2[]="This is SUDA. "; //the string to print on the LCD //char array1[]="Hello everybody. "; //the string to print on the LCDvoid setup() {myservo.attach(10);//舵機引腳myservo.write(90);delay(1000);Serial.begin(9600);//波特率lcd.init(); lcd.backlight(); pinMode(ledPin,OUTPUT); pinMode(digitalPin,INPUT); pinMode (digitalPin1,INPUT);}void loop() {Astate=analogRead(analogPin);Dstate=digitalRead(digitalPin); Astate1=analogRead(analogPin1);Dstate1=digitalRead(digitalPin1);outputValue = analogRead(photocellPin);if( Serial.available() > 0 ){ serialData = Serial.read();if ('m' == serialData) { Serial.print(serialData); Serial.println(": manual mode.");myservo.write(90);} else if('o' == serialData) { Serial.print(serialData); Serial.println(": The light opened successfully.");myservo.write(50);//初始仰角// myservo.write(720);delay(1000);//} else if( 'c' == serialData){ Serial.print(serialData); Serial.println(": The light closed successfully.");myservo.write(140);//初始仰角// myservo.write(180);delay(1000);//} else if('r' == serialData){ Serial.print(serialData); Serial.println(": rightTurn Command.");} else{ //do nothing. } } D: int chk = DHT.read11(DHT11_PIN);switch (chk){case DHTLIB_OK: break;case DHTLIB_ERROR_CHECKSUM: break;case DHTLIB_ERROR_TIMEOUT: goto D;break;default: break;}lcd.setCursor(0, 0);lcd.print("Tem:");lcd.print(DHT.temperature,1); lcd.print(char(223));lcd.print("C");lcd.setCursor(0, 1);lcd.print("Hum:");lcd.print(DHT.humidity,1); lcd.print(" %"); delay(2000); //wait a while }三、系統(tǒng)展示
1.藍牙控制實現(xiàn)
使用應用商店藍牙調試軟件進行連接調試,發(fā)送O、C、M命令分別進行遠程開、關、手動操作模式。
2.成果圖
總結
以上就是今天要講的內容,本文使用Arduino與藍牙簡單實現(xiàn)了自動開關燈,經測試效果良好,符合預期需求。
總結
以上是生活随笔為你收集整理的基于Arduino实现的蓝牙自动开关灯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一些MySQL语句
- 下一篇: 蚂蚁笔记(Leanote)------一