隨著物聯裝置多樣性
儲存的資料也越來越多
相對的我們要在資料儲存要更方便才行
像是 ThingSpeak 是最常見的
這篇則是用 Google 提供的 FireBase
參考資料 : 透過 Python 傳送溫溼度資訊到 Google Firebase
2016年11月22日 星期二
2015年10月12日 星期一
2015年7月26日 星期日
2015年7月5日 星期日
Arduino-ESP8266 Wifi 模組
AT Command
|
功能
|
-AT
|
測試溝通
|
-AT+RST
|
重製裝置
|
-AT+GMS
|
顯示韌體版本
|
AT Command
|
功能
|
備註
|
-AT+CWMODE?
|
顯示模組現在的模式
| |
-AT+CWMODE=1(1、2、3)
|
設定模組現在模式
|
1 . Station
2 . AP
3 . AP & Station
|
-AT+CWLAP
|
掃描周邊Wifi
|
Mode:1
若不是1,則無法掃描顯示 |
-AT+CWJAP
|
連線
|
PS :
-AT+CWJAP="SSID","pass"
|
-AT+CWQAP
|
離線
|
AT Command
|
功能
|
備註
|
-AT+CIPSR
|
查詢IP位置
| |
-AT+CIPSTART
|
連到伺服器
|
-AT+CIPSTART="TCP",
"www.yahoo.com.tw",80 |
-AT+CIPSTATUS
|
顯示連線位置
| |
-AT+CIPSEND
|
發送訊息。先送字串Btye
|
-AT+CIPSEND=5
hello
|
-AT+CIPCLOSE
|
停止發送訊號
|
AT Command
|
功能
|
-+IPD
|
接收Service傳來的封包
|
2015年3月1日 星期日
Arduino-利用L298N控制馬達
或許大家都有些小疑問
L293D跟L298N最大差別在於?
價格?板子大小?
最主要的差別在於L293D的電流負荷沒L298來的大
所以通常用於微控馬達 ; 若要控制遙控車、自走車則是用L298較恰當
ENA、ENB是用來判斷是否要啟動 A-Bridge、B-Bridge
ENA : 5V
1N1 : 2
1N2 : 3
1N3 : 4
1N4 : 5
ENB : 5V
若要更改轉動方向,請修改電壓高低,不可A-Bridge、B-Bridge都雙高或雙低
以下是示範程式碼 :
參考資訊 : CooperMaa
歡迎轉載,請註明出處
L293D跟L298N最大差別在於?
價格?板子大小?
最主要的差別在於L293D的電流負荷沒L298來的大
所以通常用於微控馬達 ; 若要控制遙控車、自走車則是用L298較恰當
ENA、ENB是用來判斷是否要啟動 A-Bridge、B-Bridge
ENA : 5V
1N1 : 2
1N2 : 3
1N3 : 4
1N4 : 5
ENB : 5V
若要更改轉動方向,請修改電壓高低,不可A-Bridge、B-Bridge都雙高或雙低
以下是示範程式碼 :
int aIn1 = 2;
int aIn2 = 3;
int bIn3 = 4;
int bIn4 = 5;
void setup()
{
pinMode(aIn1, OUTPUT);
pinMode(aIn2, OUTPUT);
pinMode(bIn3, OUTPUT);
pinMode(bIn4, OUTPUT);
}
void loop()
{
}
void selfTest()
{
// 兩輪同時向前
digitalWrite(aIn1, HIGH);
digitalWrite(aIn2, LOW);
digitalWrite(bIn3, HIGH);
digitalWrite(bIn4, LOW);
delay(500);
}
參考資訊 : CooperMaa
歡迎轉載,請註明出處
2015年2月25日 星期三
2015年2月23日 星期一
Arduino-步進馬達 A3967驅動板
利用兩輸入腳位控制步進馬達( 兩相四線 )
//定義腳位
#define DIR_PIN 2
#define STEP_PIN 3
//腳位模式
void setup() {
pinMode(DIR_PIN, OUTPUT);
pinMode(STEP_PIN, OUTPUT);
}
void loop(){
//rotate a specific number of degrees
rotateDeg(360, 1);
delay(1000);
rotateDeg(-360, .1); //reverse
delay(1000);
//rotate a specific number of microsteps (8 microsteps per step)
//a 200 step stepper would take 1600 micro steps for one full revolution
rotate(1600, .5);
delay(1000);
rotate(-1600, .25); //reverse
delay(1000);
}
//迴轉
void rotate(int steps, float speed){
//先確認要正/逆時鐘,所以先確認腳位的高低電壓
int dir = (steps > 0)? HIGH:LOW;
steps = abs(steps);
digitalWrite(DIR_PIN,dir);
float usDelay = (1/speed) * 70;
for(int i=0; i < steps; i++){
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(usDelay);
digitalWrite(STEP_PIN, LOW);
delayMicroseconds(usDelay);
}
}
//旋轉角度
void rotateDeg(float deg, float speed){
//rotate a specific number of degrees (negitive for reverse movement)
//speed is any number from .01 -> 1 with 1 being fastest - Slower is stronger
int dir = (deg > 0)? HIGH:LOW;
digitalWrite(DIR_PIN,dir);
int steps = abs(deg)*(1/0.225);
float usDelay = (1/speed) * 70;
for(int i=0; i < steps; i++){
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(usDelay);
digitalWrite(STEP_PIN, LOW);
delayMicroseconds(usDelay);
}
}
A3967 DateSheet : 連結在此
參考網址 : 連結在此
歡迎轉載,請註明出處
2015年2月7日 星期六
Arduino-紅外線 發送/接收 證明實驗
這幾天測試紅外線一直遇到讓人無奈的事
挑選紅外線LED記得要慎選( 記得一定要問元件規格!!! )
水藍色紅外線LED有可能是發射也有可能是接收!
但深色( 不透光 )的紅外線接收器很大的機率就是接收器了
要慎選!!!
要慎選!!!
要慎選!!!
因為紅外線的波長人類的肉眼是無法分析的,所以一定要有一個測試方法
但光一個儀器動輒就是幾張小朋友
今天我們就以簡單的電路來實測紅外線 發射( 發送 ) / 接收 電路
電路圖如下 :
注意 :
1 . 串接LED前一定要接電阻,避免直接讓元件燒毀。
2 . 發送 / 接收 的紅外線LED腳位是不一樣的。
未收到紅外線訊號( 燈亮 ) :
收到紅外線訊號 ( 熄滅 ) :
實驗結果 :
紅外線接收器屬於被動元件
若接收到紅外線,則元件產生變化,讓電路導通;反之,則無法導通。
歡迎轉載,請註明出處。
挑選紅外線LED記得要慎選( 記得一定要問元件規格!!! )
水藍色紅外線LED有可能是發射也有可能是接收!
但深色( 不透光 )的紅外線接收器很大的機率就是接收器了
要慎選!!!
要慎選!!!
要慎選!!!
因為紅外線的波長人類的肉眼是無法分析的,所以一定要有一個測試方法
但光一個儀器動輒就是幾張小朋友
今天我們就以簡單的電路來實測紅外線 發射( 發送 ) / 接收 電路
電路圖如下 :
注意 :
1 . 串接LED前一定要接電阻,避免直接讓元件燒毀。
2 . 發送 / 接收 的紅外線LED腳位是不一樣的。
未收到紅外線訊號( 燈亮 ) :
收到紅外線訊號 ( 熄滅 ) :
實驗結果 :
紅外線接收器屬於被動元件
若接收到紅外線,則元件產生變化,讓電路導通;反之,則無法導通。
歡迎轉載,請註明出處。
2015年1月31日 星期六
Arduino-Arduino 基本概念與認知
0 - 13 腳 : 數位輸入/輸出
數位腳位有標示PWM( ~ ) : 具有模擬類比信號輸出功能
A0-A5 ( 14-19 ) 腳 : 類比輸入腳( 無法類比訊號輸出 )
IOREF : 供應擴充版的電壓腳位
Arduino nano :
PWM : 3、5、6、9、10、11
有些必須先安裝USB驅動,不然是無法被認知的
位置 : usb-serial-ch340
- Driver Version: 3.3.2011.11
- Release Date: 2011-11-04
- File Size: 41.02K
- Supported OS: Windows XP 64bit, Windows Vista 64bit, Windows 7 64bit, Windows 8 64bit
電阻 : 用來阻礙電流的流動,避免元件直接被電流破壞。
電容 : 用來儲存電的容器,像是蓄水池般的穩定輸出,不會因為輸入不穩造成影響。
二極體 : 只准許電流單一流過。
//參數設定
void setup()
{
//腳位設定
}
//迴圈
void loop()
{
//會不斷的執行主程式敘述
}
常用參數宣告方法
1 . 宣告腳位用途
pinMode( 腳位 , 動作 );
setup內設定腳位 : 1-13 or A0-A5
動作
OUTPUT : 控制腳位
INPUT : 接收感測器
2 . 設定腳位動作
digitalWrite(腳位,動作);
loop內設定腳位 : 1-13 or A0-A5
動作
HIGH : 高電位
LOW : 低電位
3 . 延遲
delay(秒(單位 : 毫秒));
setup 、 loop 都可設定delay(1000);//延遲一秒鐘
delay(60000);//延遲一分鐘
4 . 判斷腳位電壓強度
boolean var = digitalRead( 腳位 );
loop內設定腳位 : 1-13 or A0-A5
var : 以2.5V為基準。以上則為高電壓;以下為低電壓。
5 . 讀取腳位參數
int sensorValue = analogRead(腳位);
loop內設定腳位 : A0-A5
6 . 設定腳位輸出電壓
analogWrite( 腳位, 範圍 );
腳位 : 必須是PWM( ~ ) 3、5、6、9、10、11範圍 : 0 ~ 255 ( 0V ~ 5V )
本文章內容參考 : 超圖解 Arduino 互動設計入門 2
歡迎轉載,請註明出處。
2015年1月29日 星期四
Arduino-Arduino 藍芽模組
藍芽連線
目前有遇到的狀況 :
藍芽模組瑕疵( 無法接收,但能發送 )
藍芽模組和紅外線模組共用直流電來源,紅外線感測會有問題
先簡單PO接圖
接線圖
藍芽模組 對 板子
VCC -> 5V( 注意 : 因為每個模組不支援到5V,若不確定請接到3.3V )
GND -> GND
TXD -> RX
RXD -> TX
基本上這樣就完成了
之後可能是Application 連結 或 模組的問題居多
Arduino.ino 程式碼 :
歡迎轉載,請註明出處。
目前有遇到的狀況 :
藍芽模組瑕疵( 無法接收,但能發送 )
藍芽模組和紅外線模組共用直流電來源,紅外線感測會有問題
先簡單PO接圖
接線圖
藍芽模組 對 板子
VCC -> 5V( 注意 : 因為每個模組不支援到5V,若不確定請接到3.3V )
GND -> GND
TXD -> RX
RXD -> TX
基本上這樣就完成了
之後可能是Application 連結 或 模組的問題居多
Arduino.ino 程式碼 :
char val;
void setup()
{
Serial.begin(9600);
}
void loop()
{
//接收端
if( Serial.available() ) // if data is available to read
{
val = Serial.read();
Serial.println(val);
}
//發射端
Serial.write('a');
delay(1000);
}
#include<SoftwareSerial.h>
SoftwareSerial BT(10, 9);
const byte ledPin = 13;
char val;
void setup(){
pinMode(ledPin,OUTPUT);
BT.begin(9600);
BT.println("BT is ready");
}
void loop(){
if(BT.available()){
val = BT.read();
Serial.println(val);
}
}
歡迎轉載,請註明出處。
2015年1月27日 星期二
Arduino-紅外線 接收 Example
這幾天剛好有這機會要測試有關紅外線的應用
話不多說,馬上開始吧 !
本人是使用Arduino UNO版本,若其他大大用不同的版本記得做修改的動作
首先去下載 Lib : 點這裡
並且更改下載後的檔案名稱
將IRromote放置在
並將以下程式碼進編譯執行
如果是第一次編譯、執行,一定會發生以下的錯誤訊息
error: TKD2 was not declared in this scope
直接說白了,剛剛下載的Lib內有跟官方提供的Lib有衝突
目前看到最好的方法就是直接把官方提供的直接刪除
Arduino/libraries/RobotIRremote/src/IRremoteTools.h
Arduino/libraries/RobotIRremote/src/IRremoteTools.cpp
注意 : 盡量不要用搜尋的方式,要直接去檔案夾內一步一步尋找
話不多說,馬上開始吧 !
本人是使用Arduino UNO版本,若其他大大用不同的版本記得做修改的動作
首先去下載 Lib : 點這裡
並且更改下載後的檔案名稱
並將以下程式碼進編譯執行
#include <IRremote.h>
#include <IRremoteInt.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop()
{
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX); //results.value 為十進位數字
irrecv.resume(); // Receive the next value
}
}
如果是第一次編譯、執行,一定會發生以下的錯誤訊息
error: TKD2 was not declared in this scope
直接說白了,剛剛下載的Lib內有跟官方提供的Lib有衝突
目前看到最好的方法就是直接把官方提供的直接刪除
Arduino/libraries/RobotIRremote/src/IRremoteTools.h
Arduino/libraries/RobotIRremote/src/IRremoteTools.cpp
注意 : 盡量不要用搜尋的方式,要直接去檔案夾內一步一步尋找
2014年11月10日 星期一
Arduino-Upload 後 avrdude: stk500_getsync(): not in sync: resp=0x00
最近在玩Arduino UNO
卻發生avrdude: stk500_getsync(): not in sync: resp=0x00
結果只是藍芽裝置必須先拔除,不然無法同步更新
說真的只因為好懶呀~!
卻發生avrdude: stk500_getsync(): not in sync: resp=0x00
結果只是藍芽裝置必須先拔除,不然無法同步更新
說真的只因為好懶呀~!
Arduino-藍芽發送資料( 測試藍芽功能是否正常 )
#define BUFFERSIZE 127
int numLoop = 0; // number of times we looped
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(numLoop);
char str[20];
sprintf(str,"\nanalogRead,%d@",50);
Serial.write(str);
delay(5000);
numLoop++;
}
int numLoop = 0; // number of times we looped
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(numLoop);
char str[20];
sprintf(str,"\nanalogRead,%d@",50);
Serial.write(str);
delay(5000);
numLoop++;
}
訂閱:
文章 (Atom)









