18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>基于Cordova移動IDE可使用HTML5和JS編寫應(yīng)用程序

基于Cordova移動IDE可使用HTML5和JS編寫應(yīng)用程序

2022-11-08 | zip | 0.10 MB | 次下載 | 免費

資料介紹

描述

介紹

大約一年前,我們買了一個 Echo,開始用 Wemo 開關(guān)和插頭來裝備我們的房子。能夠告訴 Alexa 從溫暖的床上關(guān)掉燈真是太好了。這就是我們 3 歲的女兒出現(xiàn)的地方。太短了,無法到達(dá)電燈開關(guān),并且缺乏指導(dǎo) Alexa 的白話,但有足夠的決心繼續(xù)嘗試。那時我意識到,讓我們的生活變得像成年人一樣方便的相同技術(shù)可以讓我們的孩子使用相同的設(shè)備。同時,我們可以建立一個與他們一起成長的伙伴。一個可以每周用不同的游戲進行編程的玩具,也可以演變成學(xué)習(xí)伙伴。最終,她有一天會成為一位朋友,自己學(xué)習(xí)編程,不僅可以彌合兒童和智能家居之間的鴻溝,

這是Seeed Grove 入門套件的理想選擇。它配備了大量有趣的 I/O 設(shè)備,并有可能添加更多設(shè)備。更換新的東西(如距離傳感器)就像插入電纜一樣簡單。

為了驅(qū)動盾牌,我正在使用新的Arduino 101 (加拿大和歐洲的 Genuino)。很像 Uno,但顯著增加了陀螺儀、加速度計和藍(lán)牙。

最后,為了從 Arduino 控制 Wemo,我正在使用舊的 Android 手機(S4 Active),使用Evothings Studio ,這是一個基于 Cordova 的移動 IDE,可讓您使用 HTML5 和 JS 編寫應(yīng)用程序。這將通過藍(lán)牙與 101 配對,并通過Maker IFTTT通道控制 Wemo。

材料清單

硬件

  • 縫紉機/織物(或使用現(xiàn)有玩具)

軟件

指示

阿杜諾/格羅夫

將 Grove Base Shield 放在 Arduino 上,然后連接隨附的傳感器和輸出以匹配下圖。

?
poYBAGNoo86AfZa_AALX4SN3iWs060.png
使用隨附的帶狀電纜連接 Grove 外圍設(shè)備
?

根據(jù)在線說明安裝 Arduino IDE。使用 USB 電纜將軟件運行插入 Arduino 101 板。在 IDE 中,轉(zhuǎn)到 Tools>Board 并選擇“Arduino/Genuino 101”。然后在工具>端口下選擇您的板列出的端口,例如。COM3(Arduino/Genuino 101)。

從GitHub克隆、下載或復(fù)制代碼并打開/arduino/Tedduino/Tedduino.ino

/* 
* Tedduino.ino 
* @author : Justin Revelstoke 
* @date : 3/25/2017 
* @description : Arduino code for BLE connection and Grove Shield I/O. 
*                Displays a menu over RGB LCD offering sensor data and 
*                an example game.                 
*/ 
#include  
#include  
#include "CurieIMU.h" 
#include "config.h" 
BLEPeripheral blePeripheral; 
BLEService bleService(serviceUUID); 
BLECharacteristic bleCharacteristic(characteristicUUID, BLERead | BLENotify, 2); 
#include "rgb_lcd.h" 
rgb_lcd lcd; 
const int B = 3975; 
const int pinTouch = 2; 
const int pinBuzzer = 3; 
const int pinButton = 4; 
const int pinVibe = 5; 
const int pinLED = 13; 
const int pinSound = A0; 
const int pinLight = A1; 
const int pinTemp = A2; 
const int pinPot = A3; 
int menu = 0; 
int previousButtonState = 0; 
int length = 15; // the number of notes 
char notes[] = "ccggaagffeeddc "; // a space represents a rest 
int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 }; 
int tempo = 300; 
float aix, aiy, aiz;   // accelerometer values 
float gix, giy, giz;   // gyroscope values 
void setup() { 
 Serial.begin(9600); 
 lcd.begin(16, 2); 
 lcd.setCursor(0, 0); 
 pinMode(pinLED, OUTPUT); 
 pinMode(pinPot, INPUT); 
 pinMode(pinTouch, INPUT); 
 pinMode(pinButton, INPUT); 
 blePeripheral.setLocalName(bleServiceName); 
 blePeripheral.setAdvertisedServiceUuid(bleService.uuid()); 
 blePeripheral.addAttribute(bleService); 
 blePeripheral.addAttribute(bleCharacteristic); 
 const unsigned char bleCharArray[2] = { 0, (char)1 }; 
 bleCharacteristic.setValue(bleCharArray, 2); 
 blePeripheral.begin(); 
 CurieIMU.begin(); 
 CurieIMU.setGyroRate(25); 
 CurieIMU.setAccelerometerRate(25); 
 CurieIMU.setAccelerometerRange(2); 
 CurieIMU.setGyroRange(250); 
} 
void loop() { 
 printGyroAccel(); 
 digitalWrite(pinLED, LOW);   
 breath(REG_RED); 
 breath(REG_GREEN); 
 breath(REG_BLUE); 
 BLECentral central = blePeripheral.central(); 
 if (central) { 
   Serial.print("Connected to central: "); 
   Serial.println(central.address()); 
   while (central.connected()) { 
     displayMenu(); 
     delay(100); 
   } 
 } 
 delay(100); 
} 
void nextMenu() {   
 if (menu == 5) { 
   menu = 0; 
 } 
 else { 
   menu++; 
 } 
} 
void displayMenu() { 
 resetLCD(); 
 int buttonState = digitalRead(pinButton);  
 int touchState = digitalRead(pinTouch); 
 buttonState = buttonState | touchState;   
 if (previousButtonState != buttonState) { 
   if (buttonState == 1) { 
     const unsigned char bleCharArray[2] = { 0, (char)1 }; 
     bleCharacteristic.setValue(bleCharArray, 2); 
     nextMenu(); 
     delay(1000); 
   } 
   else {       
     const unsigned char bleCharArray[2] = { 0, (char)0 }; 
     bleCharacteristic.setValue(bleCharArray, 2); 
   } 
 } 
 delay(100); 
 previousButtonState = buttonState; 
 if (menu == 0) { 
   printSound(); 
 } 
 else if (menu == 1) { 
   printLight(); 
 } 
 else if (menu == 2) { 
   printTemp(); 
 } 
 else if (menu == 3) { 
   printVibe(); 
 } 
 else if (menu == 4) { 
   printPot(); 
 } 
 else if (menu == 5) { 
   nightMode(); 
 } 
 else if (menu == 6) { 
   printGyroAccel(); 
 } 
 else { 
   lcd.print("Error"); 
 } 
} 
void resetLCD() { 
 lcd.clear(); 
 lcd.setCursor(0, 0); 
} 
void printGyroAccel() { 
 CurieIMU.readAccelerometerScaled(aix, aiy, aiz); 
 CurieIMU.readGyroScaled(gix, giy, giz); 
 //CurieIMU.readMotionSensor(aix, aiy, aiz, gix, giy, giz); 
 lcd.print(aix); 
 lcd.print(' '); 
 lcd.print(aiy); 
 lcd.print(' '); 
 lcd.print(aiz); 
 lcd.setCursor(0, 1); 
 lcd.print(gix); 
 lcd.print(' '); 
 lcd.print(giy); 
 lcd.print(' '); 
 lcd.print(giz); 
 delay(100); 
 resetLCD(); 
} 
int getSound() { 
 int sensorValue = analogRead(pinSound); 
 return sensorValue; 
} 
void printSound() { 
 int sensorValue = getSound(); 
 lcd.print("Sound:"); 
 if (sensorValue > 0) { 
   for (int i = 0; i < round(sensorValue/100); i++) { 
     lcd.print(">"); 
   } 
 }   
} 
int getLight() { 
 int sensorValue = analogRead(pinLight); 
 return sensorValue; 
} 
void printLight() { 
 // range 0 - 1023 
 int sensorValue = getLight(); 
 lcd.print("Light:"); 
 if (sensorValue > 0) { 
   for (int i = 0; i < round(sensorValue/100); i++) { 
     lcd.print(">"); 
   } 
 }   
} 
int getTemp() { 
 int sensorValue = analogRead(pinTemp); 
 float resistance = (float)(1023-sensorValue)*10000/sensorValue; 
 int temperature = 1/(log(resistance/10000)/B+1/298.15)-273.15; 
 return temperature; 
} 
void printTemp() { 
 lcd.print("Temp:"); 
 lcd.print(getTemp()); 
 lcd.print("F"); 
} 
int getPot() {   
 return analogRead(pinPot); 
} 
void printPot() { 
 lcd.print("Pot:"); 
 lcd.print(getPot()); 
} 
int getVibe() {   
 return digitalRead(pinVibe); 
} 
void printVibe() { 
 lcd.print("Vibe:"); 
 lcd.print(getVibe()); 
} 
void nightMode() { 
 bool warm = false; 
 bool dark = false; 
 bool quiet = false; 
 if (getTemp() >= 50) { 
   lcd.print("Warm "); 
   warm = true; 
 } 
 else { 
   lcd.print("Cold "); 
 } 
 if (getLight() == 0) { 
   lcd.print("Dark "); 
   dark = true; 
 } 
 else { 
   lcd.print("Light "); 
 } 
 if (getSound() < 100) { 
   lcd.print("Quiet "); 
   quiet = true; 
 } 
 else { 
   lcd.print("Loud "); 
 } 
 if (warm && dark && quiet) { 
   playSong(); 
 } 
} 
void playSong() {   
 for (int i = 0; i < length; i++) { 
   if (notes[i] == ' ') { 
     delay(beats[i] * tempo); // rest 
   } 
   else { 
     playNote(notes[i], beats[i] * tempo); 
   } 
   // pause between notes 
   delay(tempo / 2); 
 } 
} 
void playTone(int tone, int duration) { 
 for (long i = 0; i < duration * 1000L; i += tone * 2) { 
   digitalWrite(pinBuzzer, HIGH); 
   delayMicroseconds(tone); 
   digitalWrite(pinBuzzer, LOW); 
   delayMicroseconds(tone); 
 } 
} 
void playNote(char note, int duration) { 
 char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' }; 
 int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 }; 
 // play the tone corresponding to the note name 
 for (int i = 0; i < 8; i++) { 
   if (names[i] == note) { 
     playTone(tones[i], duration); 
   } 
 } 
} 
void breath(unsigned char color) 
{ 
   for(int i=0; i<255; i++) 
   { 
       lcd.setPWM(color, i); 
       delay(5); 
   } 
   delay(500); 
   for(int i=254; i>=0; i--) 
   { 
       lcd.setPWM(color, i); 
       delay(5); 
   } 
   delay(500); 
} 

確保config.h在同一目錄中

/* 
* config.h 
* @author : Justin Revelstoke 
* @date : 3/25/2017 
* @description : Configuration  
*/ 
// You're device will appear in bluetooth connection lists under this name 
#define bleServiceName "Tedduino" 
#define serviceUUID "180D" 
#define characteristicUUID "2A37" 

單擊 Arduino IDE 中的上傳按鈕,控制臺應(yīng)顯示:

開始下載腳本...
SUCCESS:草圖將在大約 5 秒內(nèi)執(zhí)行。

如果它工作正常,您現(xiàn)在應(yīng)該看到 LCD 呈紅色、綠色和藍(lán)色閃爍。

此時 Arduino 正在宣傳 BLE 連接,但具有許多“離線”功能。按下按鈕或觸摸傳感器將在 LCD 上的各種顯示中旋轉(zhuǎn),顯示連接傳感器的讀數(shù)。還有一個示例“游戲”,要求您將 Arduino 放置在明亮|黑暗、溫暖|寒冷或安靜|響亮的地方。成功后會播放一??首歌:)

進化論

現(xiàn)在設(shè)置 BLE 配套應(yīng)用程序。如果您有興趣了解有關(guān)低功耗藍(lán)牙的更多信息,我強烈推薦Adafruit的這本入門書。此外,如果您想使用 BLE 連接而不需要發(fā)出 Web 請求,Blynk是快速連接到 Arduino 的好方法。它只是不支持我在 BLE 上需要的功能。

因此,我們需要做的第一件事是下載并安裝Evothings Studio (撰寫本文時版本為 2.2.0)。請務(wù)必從下載頁面獲取云令牌。

?
poYBAGNoo9KAWgLhAADHo8kxf2Y101.png
復(fù)制并保存您的云令牌
?

接下來,從應(yīng)用商店下載 Evothings Viewer

將 Studio 中的連接密鑰輸入到查看器中以鏈接它們。

?
pYYBAGNoo9SAUhqvAAC4dkDGXgw757.png
在 Connect 選項卡下,在查看器中生成密鑰。
?

現(xiàn)在,從您之前克隆的同一個存儲庫中打開cordova文件夾并找到evothings.json文件。單擊該文件并將其拖入 Evothings Studio 以創(chuàng)建項目。你現(xiàn)在應(yīng)該看到...

?
poYBAGNoo9eAEyGJAACdZZt1ao8273.png
?

如果您單擊“運行”,該應(yīng)用程序應(yīng)在您的手機上啟動

?

IFTTT 集成

為了完成 Evothings 代碼,我們需要在 IFTTT 中設(shè)置一個 Maker 頻道。為此,請訪問IFTTT 。如果您還沒有帳戶,請登錄或創(chuàng)建一個帳戶。然后在“我的小程序”下單擊“新建小程序”。按照下面的一系列圖片設(shè)置您的 Maker 頻道。請務(wù)必在設(shè)置您的網(wǎng)址后復(fù)制 Maker 為您生成的密鑰。科爾多瓦需要它。創(chuàng)建兩個通道,一個使用“tedduino_on”作為觸發(fā)器,另一個使用“tedduino_off”。相應(yīng)地為 WeMo 操作選擇“打開”和“關(guān)閉”。

?
?
?
?
pYYBAGNoo9mAV850AACDoqBLZ3w364.png
?
1 / 9 ?點擊“這個”
?

如果一切順利,我們現(xiàn)在應(yīng)該有兩個通道和一個 Maker 密鑰。您可以在瀏覽器中測試 URL(它們應(yīng)該類似于)。

把它們放在一起

從GitHub打開app文件夾中index.html回到 cordova 代碼。找到這一行:

var makerKey = '/with/key/INSERT YOUR KEY HERE';

并用您的制造商頻道密鑰替換“在此處插入您的密鑰”。保存并將您的 Evothings 工作室重新連接到查看器。

恭喜!此時您應(yīng)該能夠運行 Evothings 應(yīng)用程序并單擊“連接”。如果它成功連接到 Arduino,您可以按“測試”,LCD 應(yīng)該停止改變顏色。您還應(yīng)該能夠按下 Grove 按鈕來打開和關(guān)閉燈。

?

如果您對縫紉機很方便,我建議您設(shè)計自己的娃娃。否則,您可以輕松地將這些部件改裝成現(xiàn)有的部件。只需用 Arduino 電池組替換 USB 電纜即可。熱膠是保持部件到位的好方法。玩得開心!

?
?
?
?
poYBAGNoo-GAKx1FABEmViWjzf0403.jpg
?
1 / 3
?

隨著時間的推移,我們家的更多方面變得自動化,我希望制造更多這樣的設(shè)備,讓我們的孩子更加獨立。

?

?


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

評論

查看更多

下載排行

本周

  1. 1PFC電路與BOOST電路設(shè)計實例分享
  2. 1.83 MB   |  12次下載  |  4 積分
  3. 2世平基于靈動微 SPIN560C 的低壓無刷電機應(yīng)用方案
  4. 10.93 MB  |  11次下載  |  免費
  5. 3電源測試報告-基于 國民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  6. 6.47 MB  |  11次下載  |  免費
  7. 4PWM控制器的控制方法
  8. 0.39 MB   |  3次下載  |  4 積分
  9. 5電流檢測芯片F(xiàn)P135應(yīng)用說明
  10. 1.24 MB   |  3次下載  |  免費
  11. 6全面解讀被動式與主動式PFC電路
  12. 1.27 MB   |  1次下載  |  4 積分
  13. 7HC88L051F4低功耗芯片規(guī)格書
  14. 4.76 MB  |  1次下載  |  免費
  15. 8CIU32D655x5數(shù)據(jù)手冊
  16. 2.14 MB   |  1次下載  |  免費

本月

  1. 1常用電子元器件使用手冊
  2. 2.40 MB   |  52次下載  |  免費
  3. 2高功率密度碳化硅MOSFET軟開關(guān)三相逆變器損耗分析
  4. 2.27 MB   |  33次下載  |  10 積分
  5. 3PFC電路與BOOST電路設(shè)計實例分享
  6. 1.83 MB   |  12次下載  |  4 積分
  7. 4世平基于靈動微 SPIN560C 的低壓無刷電機應(yīng)用方案
  8. 10.93 MB  |  11次下載  |  免費
  9. 5電源測試報告-基于 國民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  10. 6.47 MB  |  11次下載  |  免費
  11. 6USB拓展塢PCB圖資料
  12. 0.57 MB   |  11次下載  |  免費
  13. 7MS1826 HDMI 多功能視頻處理器數(shù)據(jù)手冊
  14. 4.51 MB   |  9次下載  |  免費
  15. 8HAL9303線性霍爾效應(yīng)傳感器技術(shù)手冊
  16. 0.70 MB   |  9次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935134次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191424次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183352次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81600次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73818次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分