目前分類:NetYea (205)

瀏覽方式: 標題列表 簡短摘要

官方文件鏈結 https://docs.ultralytics.com/models/

程式碼

  1. from ultralytics import YOLO
  2. import os
  3. os.environ["KMP_DUPLICATE_LIB_OK"]  =  "TRUE"
  4.  
  5. if __name__ == '__main__':
  6.     # Load a COCO-pretrained YOLOv8n model
  7.     model = YOLO('yolov8n.pt')
  8.  
  9.     # Display model information (optional)
  10.     model.info()
  11.  
  12.     # Train the model on the COCO8 example dataset for 100 epochs
  13.     results = model.train(data='coco8.yaml', epochs=100, imgsz=640)
  14.  
  15.     # Run inference with the YOLOv8n model on the 'bus.jpg' image
  16.     results = model('bus.jpg')
文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

網頁設計CSS傳授教化:文繞圖 設置 網頁設計

網頁設計 

文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

在利用CSS的時刻,用某些殊效能讓網站更有活力,如果應用JQUERY又過分複雜

不外今天作者看到某網站的運用不錯,於是就操縱CSS也做了

可以看到下圖,滑鼠未移置圖片典範

行使CSS完成 游標移至圖片特效 網頁設計
行使CSS完成 游標移至圖片特效 網頁設計



用CSS寫以下代碼
 
  1. .chimga{
  2.     margin:10px;
  3.     width:100%;
  4.     height:100%;
  5.     box-sizing:border-box;
  6.     overflow:hidden;
  7.     display:block;
  8. }
  9. .chimga:hover img{
  10.     -moz-transform:scale(1.3) rotate(2deg);
  11.     -webkit-transform:scale(1.3) rotate(2deg);
  12.     -o-transform:scale(1.3) rotate(2deg);
  13.     -ms-transform:scale(1.3) rotate(2deg);
  14.     transform:scale(1.3) rotate(2deg);
  15. }
複製代碼
文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

用ESP32 PWM實現LED漸漸亮起。

程式的部分主要分成三個:1.設定頻道LEDchannel、2.附加到PIN腳、3.決議輸出巨細。

1.設定頻道LEDchannel屬性

ledcSetup(LEDChannel, freq, resolution);
//LEDChannel設定為0,分歧輸出要設定到分歧頻道,例如RGB LED就要開三個頻道劃分辦理R、G、B
//freq輸出頻率,建議值5000 Hz
//resolution代表輸出解析度,例如8代表0-255,10代表0-1023

2.附加到PIN腳

ledcAttachPin(ledPin, LEDChannel);
//ledPin代表腳位,看你把裝備接在哪個腳位上面
//LEDchannel代表步調1所宣佈的LEDchannel,也就是說把設定好的LEDchannel屬性附加到某個腳位上

3.決意輸出巨細。

ledcWrite(LEDChannel, dutyCycle);
//將LEDchannel輸出dutyCycle的值。

典範程式將使接在Pin16的LED逐步亮起並熄滅,範例複製於 https://randomnerdtutorials.com/esp32-pwm-arduino-ide/

Arduino ESP32 PWM輸出 讓LED漸亮漸暗
Arduino ESP32 PWM輸出 讓LED漸亮漸暗

  1. // the number of the LED pin
  2. const int ledPin = 16;  // 16 corresponds to GPIO16
  3.  
  4. // setting PWM properties
  5. const int freq = 5000;
  6. const int ledChannel = 0;
  7. const int resolution = 8;
  8.  
  9. void setup(){
  10.   // configure LED PWM functionalitites
  11.   ledcSetup(ledChannel, freq, resolution);
  12.   
  13.   // attach the channel to the GPIO to be controlled
  14.   ledcAttachPin(ledPin, ledChannel);
  15. }
  16.  
  17. void loop(){
  18.   // increase the LED brightness
  19.   for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){   
  20.     // changing the LED brightness with PWM
  21.     ledcWrite(ledChannel, dutyCycle);
  22.     delay(15);
  23.   }
  24.  
  25.   // decrease the LED brightness
  26.   for(int dutyCycle = 255; dutyCycle >= 0; dutyCycle--){
  27.     // changing the LED brightness with PWM
  28.     ledcWrite(ledChannel, dutyCycle);   
  29.     delay(15);
  30.   }
  31. }
文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

CSS+JQUERY 背景圖滿版的做法 網頁設計

今天我們要跟大家分享幾個製作滿版後臺圖的方式。

現在先來確定一下我們的需求:

圖片必需恰好填滿瀏覽器不克不及留有縫細,也不能因為圖片太大而呈現捲軸。
圖片可以隨著瀏覽器尺寸自動縮放。
圖片必需連結長寬比,不能變形。
要殺青上面的需求,我們有以下的方式可使用


利用CSS3 background-size 屬性

background-size 是css3 的屬性,用來界說靠山圖片的尺寸。利用上可以直接指定長寬的數值或是縮放的比例;指定"contain"可讓後臺圖片自動縮放到填滿內容區域內的最大尺寸;指定"cover"可以讓配景圖片主動縮放到籠蓋內容區域的最小尺寸。可以參考w3c background-size的資訊

因為我們目下當今要做的是完全覆蓋瀏覽器的靠山圖片,所以要使用”background-size:cover;”這個設定。利用方式如下:

 

文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

這篇文章將註釋如何在 RHEL 8 或 CentOS 8 上安裝和設定 Samba。您還將認識若何利用 samba 將 RHEL 8 或 CentOS 8 系統中的資料夾共用到 Windows 電腦。
Windows 和 Linux 系統的結構不同,兩者之間的和平共處常常是個挑戰。感激 Samba,兩個系統目下當今可以透過網路共享檔案和資料夾。那什麼是森巴舞呢? Samba 是一種免費的開源和談,許可以簡單、無縫的方式在兩個系統之間共用檔案。您可以在 Linux 伺服器上具有一個 Samba 伺服器,託管 Windows 用戶端可以存取的各種檔案和資料夾。
文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

在測試 mnist 數字辨識時

代碼來曆
https://hackmd.io/@Maxlight/SkuYB0w6_#3-hyperparameter
 

  1. import torch
  2. from torch.utils import data as data_
  3. import torch.nn as nn
  4. from torch.autograd import Variable
  5. import matplotlib.pyplot as plt
  6. import torchvision
  7. import os
  8.  
  9. EPOCH = 1
  10. BATCH_SIZE = 50
  11. LR = 0.001
  12. DOWNLOAD_MNIST = False
  13.  
  14. train_data = torchvision.datasets.MNIST(root = './mnist',train = True,transform = torchvision.transforms.ToTensor(),download = DOWNLOAD_MNIST)
  15.  
  16. print(train_data.train_data.size())
  17. print(train_data.train_labels.size())
  18. plt.ion()
  19. for i in range(11):
  20.   plt.imshow(train_data.train_data[i].numpy(), cmap = 'gray')
  21.   plt.title('%i' % train_data.train_labels[i])
  22.   plt.pause(0.5)
  23. plt.show()
  24.  
  25. train_loader = data_.DataLoader(dataset = train_data, batch_size = BATCH_SIZE, shuffle = True,num_workers = 2)
  26.  
  27. test_data = torchvision.datasets.MNIST(root = './mnist/', train = False)
  28. test_x = torch.unsqueeze(test_data.test_data, dim = 1).type(torch.FloatTensor)[:2000]/255.
  29. test_y = test_data.test_labels[:2000]
  30.  
  31. class CNN(nn.Module):
  32.   def __init__(self):
  33.     super(CNN, self).__init__()
  34.     self.conv1 = nn.Sequential(
  35.         nn.Conv2d(in_channels = 1, out_channels = 16, kernel_size = 5, stride = 1, padding = 2,),# stride = 1, padding = (kernel_size-1)/2 = (5-1)/2
  36.         nn.ReLU(),
  37.         nn.MaxPool2d(kernel_size = 2),
  38.     )
  39.     self.conv2 = nn.Sequential(
  40.         nn.Conv2d(16, 32, 5, 1, 2),
  41.         nn.ReLU(),
  42.         nn.MaxPool2d(2)
  43.     )
  44.     self.out = nn.Linear(32*7*7, 10)
  45.  
  46.   def forward(self, x):
  47.     x = self.conv1(x)
  48.     x = self.conv2(x)
  49.     x = x.view(x.size(0), -1)
  50.     output = self.out(x)
  51.     return output, x
  52.  
  53. cnn = CNN()
  54. print(cnn)
  55.  
  56. optimization = torch.optim.Adam(cnn.parameters(), lr = LR)
  57. loss_func = nn.CrossEntropyLoss()
  58.  
  59. for epoch in range(EPOCH):
  60.   for step, (batch_x, batch_y) in enumerate(train_loader):
  61.     bx = Variable(batch_x)
  62.     by = Variable(batch_y)
  63.     output = cnn(bx)[0]
  64.     loss = loss_func(output, by)
  65.     optimization.zero_grad()
  66.     loss.backward()
  67.     optimization.step()
  68.  
  69.     if step % 50 == 0:
  70.         test_output, last_layer = cnn(test_x)
  71.         pred_y = torch.max(test_output, 1)[1].data.numpy()
  72.         accuracy = float((pred_y == test_y.data.numpy()).astype(int).sum()) / float(test_y.size(0))
  73.         print('Epoch: ', epoch, '| train loss: %.4f' % loss.data.numpy(), '| test accuracy: %.2f' % accuracy)
  74.  
  75. test_output, _ = cnn(test_x[:10])
  76. pred_y = torch.max(test_output, 1)[1].data.numpy()
  77. print(pred_y, 'prediction number')
  78. print(test_y[:10].numpy(), 'real number')
文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

Line 熱點若何申請 網頁設計
① 點選右上角設定
文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

網頁設計 IPFS操縱有哪些

IPFS和Filecoin都是由和談實行室打造的明星項目,IPFS是一種點對點、版本化、內容尋址的超媒體傳輸和談, 其所要構建的是一個散佈式的web 3.0;

Filecoin是一個基於IPFS的去中間化存儲收集,是IPFS上獨一的鼓勵層,是一個基於區塊鏈手藝刊行的通證。IPFS和Filecoin是相輔相成的,IPFS的壯大和普及有益於為Filecoin帶來更多的客戶資源,Filecoin也能鞭策網絡朝著更有規律性、更具激勵性、更有協作性的偏向成長。


IPFS和談從2015年1月發布至今五年有餘,手藝也愈來愈成熟,作為下一代互聯網底層通信協議,IPFS已經成功利用在數據存儲、文件傳輸、收集視頻、社交媒體、去中心化交易等各個範疇,這些APP、利用、平台,正在重構全部互聯網,今天,我們就來介紹有哪些應用利用了IPFS和談。
網頁設計 IPFS操縱有哪些

1、搜刮引擎
1、谷歌瀏覽器
谷歌瀏覽器(Google Chrome)是今朝世界上利用率和市場佔有率最高的瀏覽器。2019歲首年月,IPFS 伴侶上架谷歌網上應用店,這個插件可以用來簡化IPFS 資本會見的瀏覽器擴大。
IPFS伴侶(IPFS Companion)是由IPFS官方運用社區孵化出來的一個瀏覽器插件,可以輔助用戶在當地更好的運行、治理本身的節點,並隨時查看IPFS節點的資本信息。無需下載,一鍵調用。
網頁設計 IPFS操縱有哪些

2、BRAVE
這是一款具有壯大告白阻擋功能的瀏覽器,不光能攔截廣告,還具有追踪珍愛的功能。
這個功能首要是隨時可以或許屏障垂綸網站,供給的私有云可以用匿名廣告庖代網站本來的告白,可以說一切告白在這個瀏覽器上都不存在,所有告白都被攔截了,大大加速了網頁的加載和瀏覽速度,給用戶帶來更好的網絡體驗。現已嵌入IPFS插件。

網頁設計 IPFS操縱有哪些
網頁設計 IPFS操縱有哪些

BRAVE官網地址:https://brave.com/

網頁設計 IPFS操縱有哪些
3、Firfox火狐瀏覽器
2018年1月26日,火狐WebExtensions 產品經理Mike Conca 在Mozilla 官網發布了文章(Extensions in Firefox 59),列舉了火狐59的最新擴大(目前發佈於測試版)。此中一項特征是支撐包羅IPFS在內的散佈式和談。
2018年初,Firefox新增了“ipfs://”和談的撐持。

網頁設計 IPFS操縱有哪些
4、Opera瀏覽器
Opera在本年5月的時候就宣布支撐IPFS了。兩邊合作延續,估計本年歲尾之前在其Android版Opera瀏覽器中推出IPFS支持。值得注意的是,Opera在瀏覽器中開辟了加密錢包,有Android、iOS和桌面版。可見Opera很早就結構了區塊鏈生態支持。

網頁設計 IPFS操縱有哪些
5. IPSE
IPSE是一款基於IPFS收集的搜索引擎,致力於打造下一代互聯網的流量入口。在IPSE上可以搜刮IPFS收集的文件,由於採用哈希標註手藝,可讓內容的哈希地址轉化為文字標題,快速拜候。另外IPSE還是使用區塊鏈技術的搜刮引擎,搜索將謝絕廣告跟踪,同時用戶還能獲得通證鼓勵。

網頁設計 IPFS操縱有哪些
網頁設計 IPFS操縱有哪些
IPSE 官網地址:網頁設計 IPFS操縱有哪些https://www.ipse.io/


網頁設計 IPFS操縱有哪些
6、Poseidon
一個基於IPFS收集的中間化的散佈式搜索引擎,可以讓用戶快速檢索IPFS收集上的文件,尋覓到所需要的數據,同時用戶參與挖礦還能取得通證鼓勵。被譽為區塊鏈版Google。

網頁設計 IPFS操縱有哪些


二、內容平台
網頁設計 IPFS操縱有哪些
1、Netflix
Netflix成立於1997年,主要供應超大數量的DVD並免費遞送,除此之外它的用戶也可以經由過程小我電腦、電視、iPad、iPhone等聯網收看其電影、電視節目。近些年來風行全球的政治題材電視劇《紙牌屋》就是由奈飛出品。2019年10月,Netflix位列2019福布斯全球數字經濟100強榜第46名。
近日,IPFS宣布與全球最大的流媒體平台Netflix殺青合作。作為一家地位和實力非統一般的企業為什麼選擇和IPFS進行合作呢?
在IPFS Camp 2019以後,Netflix便和IPFS入手下手了手藝上的合作,將IPFS系統中的對等辦事等手藝整合到奈飛的東西中,行使IPFS的手藝加快雲的構建、設計和測試。
Netflix想要解決的容器分發挑戰:若何在大範圍,多區域情況中有效地提取容器圖象。圖象層平常位於分歧的區域,利用IPFS作為點對點CDN,可使Netflix根本架構內的節點進行協作並將共同的種子播種到相鄰節點,從而有助於更快地分發容器。
Netflix官網地址:https://www.netflix.com/
網頁設計 IPFS操縱有哪些
網頁設計 IPFS操縱有哪些
2、D.Tube
IPFS最拉風的應用之一“D.Tube” ,對標YouTube,內容太殘暴了。
D.Tube 是第一個加密散佈式視頻平台,成立在STEEM 區塊鍊和IPFS 點對點網絡之上,將來會支持FIlecoin網絡,它旨在成為YouTube 的替換品,答應用戶在IPFS/FIlecoin 基礎上旁觀或上傳視頻,並在不成變的STEEM 區塊鏈長進行分享或評論,同時賺取加密通證!Look,即削減了存儲本錢又能賺token ,多麼興奮!
D.Tube官網地址:https://d.tube/

網頁設計 IPFS操縱有哪些

網頁設計 IPFS操縱有哪些
3、Ujomusic
對標蝦米音樂和咪咕音樂的Ujomusic,是一個IPFS上的音樂家的區塊鏈市場。
2015年,Ujo幫助音樂家Imogen Heap用區塊鏈發行了作品“Tiny Human”。粉絲可以采辦許可權,下載、試聽,也能夠用於混音等用處;並且粉絲付出的錢會主動分配給Heap和該作品的合作方。該初創企業還和良多品牌合作,為了“在開源區塊鏈系統中將這些目錄從頭數字化”,同時激勵開辟者在平台上開發應用。
Ujomusic官網地址:https://ujomusic.com/


網頁設計 IPFS操縱有哪些
網頁設計 IPFS操縱有哪些
網頁設計 IPFS操縱有哪些
4、Viewly
一個沒有煩人廣告、尊重用戶隱私的平台。在那裡,社區蓬勃成長,粉絲和創作者之間的互動受到高度鼓動勉勵。擁有小型、中型或大型觀眾的創作者可以經由過程現代錢銀化來保持自身的糊口生涯:將無磨擦的微付出、粉絲援助、援助支撐和貿易相連系。經由過程跳過中間商、贊助創作者和直接撐持他們的社區,企業可以提高告白效力和降低本錢。Viewly是一個渙散的視頻平台,由區塊鍊和對等視頻同享手藝撐持。
Viewly 官網地址:www.viewly.com/

網頁設計 IPFS操縱有哪些


5、Dlive
DLive 豎立了一個更平正的視頻平台社區。DLive 平台不收取任何佣金,用戶可以經由過程平台錢幣直接打賞內容創作者。另外,視頻社區的其他貢獻者也會遭到相應的嘉獎——好比給視頻點贊,介入接洽等,也城市博得Token。這類去中心化的評價體係不僅最大化保障了創作者的利益,也能使觀眾直接參與視頻內容的打分,讓好內容更輕易被人人看到。
在這類自治自主烏托邦式的社區構想下,像LegendofTotalWar 和PewDiePie 這樣的硬核頭部主播紛纭插手。今朝,DLive 上的主播數目已到達了3.5 萬。

網頁設計 IPFS操縱有哪些

6、Primas
Primas是一個去中間化項目,致力於用區塊鏈手藝解決互聯網經濟帶來的一系列問題,諸如假新聞、剽竊、洗稿、題目黨、低質量內容等。Primas獨創的分佈式可信內容協議(DTCP),將把可托、高質量的信息帶回互聯網,重塑互聯網內容價值生態。我們相信,流傳由人類聰明、感情創造的高質量信息,將促進人類社會的成長。15.jpg

網頁設計 IPFS操縱有哪些

文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

有在利用Google Maps的人,多若幹少一定都有利用到Google地圖找附近景點餐廳。

 

文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

網頁設計

比來發現Cpanel伺服器發給gmail信箱經常收不到
一下又收的到,但大部份都被擋下來
找了google後發現要到google workspace申請帳號驗證網域
先到google workspace 申請帳號
Cpanel gmail 檔信問題.. google wor
Cpanel gmail 檔信問題.. google wor

輸入公司名稱
Cpanel gmail 檔信問題.. google wor
Cpanel gmail 檔信問題.. google wor

姓名及EMAIL
Cpanel gmail 檔信問題.. google wor
Cpanel gmail 檔信問題.. google wor
選已經有網域了
Cpanel gmail 檔信問題.. google wor
Cpanel gmail 檔信問題.. google wor
輸入網域
Cpanel gmail 檔信問題.. google wor
Cpanel gmail 檔信問題.. google wor

設定EMAIL(你具有的網域)帳號密碼
Cpanel gmail 檔信問題.. google wor
Cpanel gmail 檔信問題.. google wor

輸入手機號碼
Cpanel gmail 檔信問題.. google wor
Cpanel gmail 檔信問題.. google wor

收到簡訊驗證碼並輸入
Cpanel gmail 檔信問題.. google wor
Cpanel gmail 檔信問題.. google wor

點接受
Cpanel gmail 檔信問題.. google wor
Cpanel gmail 檔信問題.. google wor

點 護衛
Cpanel gmail 檔信問題.. google wor
Cpanel gmail 檔信問題.. google wor

點 我已經準備好珍愛我的網域
Cpanel gmail 檔信問題.. google wor
Cpanel gmail 檔信問題.. google wor

繼續 前去步調2
Cpanel gmail 檔信問題.. google wor
Cpanel gmail 檔信問題.. google wor

複製TXT value(TXT值) 到 Cpanel dns manager新增一TXT記載
點選 保護網域 (五分鐘內完成)
Cpanel gmail 檔信問題.. google wor
Cpanel gmail 檔信問題.. google wor

繼續
Cpanel gmail 檔信問題.. google wor
Cpanel gmail 檔信問題.. google wor

Cpanel gmail 檔信問題.. google wor 

 

文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

網頁設計資料庫往往是有看沒有懂

圖解秒懂SQL說話

網頁設計

SQL短長的圖解 網頁設計

文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

網頁設計

記得筆者曾經寫過一篇「用 JavaScript 來做偽浮水印」,那時是用 JavaScript 來寫的,得顛末計較才能把版權宣佈的圖片放在右下角。目前筆者把整個結果用 jQuery 來改寫,並把原本要計算的版權宣佈圖片位置換成 background-position 的體例來節制,如許想放那就只要設定一下就好了。

我們的 HTML 就是很純真的圖片罷了:

檢視原始碼 HTML

用 jQuery 來做圖片偽浮水印 網頁設計

文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

網頁設計

Devrama Slider 是個圖象滑塊,帶有許多異常有趣的特征。

它不但撐持圖象還支撐HTML 內容。響應式方便CSS3 轉換轉換效果進度條高級的預加載和延遲加載CSS 自界說用戶可以界說導航或者節制器

文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

完成圖

JQuery dialog 分級視窗
JQuery dialog 分級視窗

起首先下載幾個JS及CSS
jquery-1.9.1.js         jquery 主檔
jquery-ui.js              UI JS檔
js.cookie.js              Cookies JS檔
jquery-ui.dialog.css   CSS設定檔

文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

EyeSee 官網:https://eyesee.cht.com.tw/


申請帳號(用HINET線路HN申請)
申請好了以後

1.監測報表->寬頻上網->加值辦事辦理

網頁設計Hinet eyeSee申請DNS IP反解

文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

終了及封閉firewalld
1. To begin with, you should disable Firewalld and make sure it does not start at boot again.

 

  1. systemctl stop firewalld
  2. systemctl disable firewalld
文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

網頁設計 網頁優化SEO技術網頁設計 網頁優化SEO技術
文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

學會Arduino根基操控後
一定會想學會無線遙控,如藍芽Bluetooth, Wifi
這篇申明藍芽Bluetooth操控

成績圖
網頁設計 若何用藍芽Bluetooth連線控制 Arduin


影片


代碼:網頁設計

網頁設計
  1. // Include necessary libraries
  2. #include <BLEDevice.h>
  3. #include <BLEServer.h>
  4. #include <BLEUtils.h>
  5. //#include <BLE2902.h>
  6. //#include <Wire.h>
  7.  
  8. // 界說 UUIDs (注意要與App Inventor內容對應)
  9. #define SERVICE_UUID            "C6FBDD3C-7123-4C9E-86AB-005F1A7EDA01"
  10. #define CHARACTERISTIC_UUID_RX  "B88E098B-E464-4B54-B827-79EB2B150A9F"
  11. #define CHARACTERISTIC_UUID_TX  "D769FACF-A4DA-47BA-9253-65359EE480FB"
  12.  
  13. // 定義LM35 ESP32 GPIO接腳
  14. const int analogIn = A0;
  15.   
  16. int RawValue= 0;
  17. double Voltage = 0;
  18. double tempC = 0;
  19. double tempF = 0;
  20. String BLE_Code;
  21. BLECharacteristic *pCharacteristic;
  22. bool deviceConnected = false;
  23. // Handle received and sent messages
  24. boolean ledState=false;
  25. String message = "";
  26. char incomingChar;
  27.  
  28. // Temperature Sensor 與led接腳變數
  29. float temperature = 0;
  30. const int ledPin = 2;
  31.  
  32. // 設定 callbacks onConnect & onDisconnect函數
  33. class MyServerCallbacks: public BLEServerCallbacks {
  34.   void onConnect(BLEServer* pServer) {
  35.     deviceConnected = true;
  36.   };
  37.   void onDisconnect(BLEServer* pServer) {
  38.     deviceConnected = false;
  39.   }
  40. };
  41.  
  42. // 設定 callback function 當收到新的資訊 (from the Android application)
  43. class MyCallbacks: public BLECharacteristicCallbacks {
  44.   void onWrite(BLECharacteristic *pCharacteristic) {
  45.     std::string rxValue = pCharacteristic->getValue();
  46.     BLE_Code="";
  47.     if(rxValue.length() > 0) {
  48.       Serial.print("接收資料為 : ");
  49.       for(int i = 0; i < rxValue.length(); i++) {
  50.         BLE_Code+=rxValue[i];
  51.         Serial.print(rxValue[i]);
  52.       }
  53.       Serial.println();
  54.       BLE_Code.toUpperCase();
  55.       Serial.println(BLE_Code);
  56.       if(BLE_Code.indexOf("LED")==0)
  57.       {
  58.         ledState=!ledState;
  59.       Serial.println(ledState);
  60.       }
  61.       if(BLE_Code.indexOf("ON")==0)
  62.       {
  63.         Serial.println("LED 點亮!");
  64.         ledState=true;
  65.       }
  66.       else if(BLE_Code.indexOf("OFF")==0) {
  67.         Serial.println("LED 熄滅!");
  68.         ledState=false;
  69.       }
  70.     }
  71.   }
  72. };
  73.  
  74. void setup() {
  75.   Serial.begin(115200);
  76.   pinMode(ledPin, OUTPUT);
  77.    
  78.   // 創立BLE Device
  79.   BLEDevice::init("ESP32_WeMos1");
  80.  
  81.   // 建立BLE Server
  82.   BLEServer *pServer = BLEDevice::createServer();
  83.   pServer->setCallbacks(new MyServerCallbacks());
  84.  
  85.   // 確立BLE Service
  86.   BLEService *pService = pServer->createService(SERVICE_UUID);
  87.  
  88.   // 豎立BLE Characteristic
  89.   pCharacteristic = pService->createCharacteristic(
  90.                       CHARACTERISTIC_UUID_TX,
  91.                       BLECharacteristic::PROPERTY_NOTIFY);                     
  92. //  pCharacteristic->addDescriptor(new BLE2902());
  93.   BLECharacteristic *pCharacteristic = pService->createCharacteristic(
  94.                                          CHARACTERISTIC_UUID_RX,
  95.                                          BLECharacteristic::PROPERTY_WRITE);
  96. pCharacteristic->setCallbacks(new MyCallbacks());
  97.  
  98.   // 開始(起)service
  99.   pService->start();
  100.  
  101.   // 開始(起)advertising
  102.   pServer->getAdvertising()->start();
  103.   Serial.println("守候BLE手機連線....");
  104.   
  105.   digitalWrite(ledPin,LOW);
  106.   delay(500);
  107.   digitalWrite(ledPin,HIGH);
  108.   delay(500);
  109.   digitalWrite(ledPin,LOW);
  110. }
  111.  
  112. void loop() {
  113.   // Check received message and control output accordingly
  114.     if (ledState)
  115.         digitalWrite(ledPin, HIGH);
  116.       else
  117.         digitalWrite(ledPin, LOW);
  118.   delay(20);
  119. }
文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()

之前經常碰到有網站鎖右鍵的,右鍵被鎖以後常見的症狀有:沒法反白、無法複製、沒法剪劣等…固然現在對照少見了,但偶然照舊會遇到,本篇要教人人用最快速的方式「解鎖右鍵」,讓你輕鬆破解鎖定右鍵的網站,透過簡單的「書籤」就可以實現,話不多說馬上進入教學。

解鎖右鍵 Chrome 免任何外掛,用書籤一秒消除,破解右鍵解鎖右鍵 Chrome 免任何外掛,用書籤一秒消除,破解右鍵

文章標籤

valeritmfov8 發表在 痞客邦 留言(0) 人氣()