精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何用PHP控制Arduino

454398 ? 來源:wv ? 2019-09-25 09:18 ? 次閱讀

步驟1:平臺兼容性

此方法在Windows下將無法使用。我不能告訴你我花了多長時間才弄清楚。在Windows和Linux下,我們使用的命令fopen()的實現方式不同,因此必須使用Linux。以前沒用過?別著急,還不錯。

步驟2:設置服務器

您需要獲取運行PHP的服務器才能正常工作。我將假設您擁有Ubuntu的新副本。字面上有成千上萬的有關如何安裝Ubuntu的教程,因此,如果您不這樣做,我將向您推薦

打開終端并輸入:

sudo apt-get install php5 mysql-server apache2

它將提示您輸入MySQL的root用戶密碼,因此請輸入一個密碼。

打開瀏覽器,然后轉到http://localhost。您應該看到一個頁面,上面寫著“有效!”。接下來在終端中運行此命令:

sudo gedit/var/www/info.php

并粘貼以下代碼:

《?php

phpinfo();

?》

保存并關閉文件,然后運行

sudo service apache2 restart

轉到http://localhost/info.php

,您應該看到一個紫色表,其中包含一堆PHP東西。如果這樣做,恭喜!您現在正在運行PHP服務器。接下來,讓我們建立一個頁面來控制Arduino

步驟3:觸摸PHP中的串行端口

該技術的核心是fopen()命令。這通常用于打開文檔以在代碼中進行編輯(例如,如果您編寫了一個腳本來制作一個包含一些信息的文本文件并保存它)。相反,我們將利用linux如何查看文件并在端口上使用它。從Ubuntu軟件管理器安裝Arduino。插入您的Arduino并打開arduino窗口。您應該在端口菜單下看到設備名稱。可能是/dev/ttyUSB0或類似的名稱。以下是一些示例代碼,這些代碼將打開該端口作為文件,并根據所按下的按鈕將數字1寫入6:

《?php

$ verz =“ 1.0”;

$ comPort =“/開發/ttyUSB0“ ;/*更改為正確的通訊端口*/

如果(isset($ _ POST [“ rcmd”])){

$ rcmd = $ _POST [“ rcmd”];

開關($ rcmd){

case Stop:

$ fp = fopen($ comPort,“ w”);

fwrite($ fp,1);/*這是它將寫入的數字*/

fclose($ fp);

break;

case慢:

$ fp = fopen($ comPort,“ w”);

fwrite($ fp,2);/*這是它將寫入的數字*/

fclose($ fp);

break;

case中:

$ fp = fopen($ comPort,“ w”);

fwrite($ fp,3);/*這是它將寫入的數字*/

fclose($ fp);

break;

區分大小寫:

$ fp = fopen($ comPort,“ w”);

fwrite($ fp,4);/*這是它將寫入的數字*/

fclose($ fp);

break;

case右:

$ fp = fopen($ comPort,“ w”);

fwrite($ fp,5);/*這是它將寫入的數字*/

fclose($ fp);

中斷;

左寫:

$ fp = fopen($ comPort,“ w”);

fwrite($ fp,6);/*這是它將寫入的數字*/

fclose($ fp);

中斷;

默認值:

die(‘廢話,出了點問題。頁面剛剛塞住。’) ;

}

}

?》

來自Arduino的PHP示例

版本《?php回聲$ verz; ?》

”》

&nbsp&nbsp&nbsp&nbsp

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp

&nbsp&nspspnbsp br》 《輸入類型=“提交” value =“停止” name =“ rcmd”》

《輸入》 =“提交” value =“慢” name =“ rcmd”》

《輸入類型=“提交” value =“ Medium” name =“ rcmd”》

《輸入類型=“提交” value =“快速” name =“ rcmd”》

第4步:工作原理和Arduino方面

每次單擊頁面上的按鈕按下case語句,然后打開“文件”(實際上是端口),進入寫入模式,寫入單個ASCII數字,然后將其關閉。您每次都必須關閉它,否則它將不起作用。在Arduino方面,只需在loop()中使用Serial.read()從串行端口讀取。我使用了一個大的if語句來檢查每個ASCII碼,因此如果發送了1,則執行一件事,如果發送2,則執行另一件事,依此類推。由于您正在運行PHP服務器,因此可以訪問以下頁面來自世界各地的服務器,它將控制Arduino。下面是一些我用來控制某些馬達的arduino代碼示例:

#include

//首先,設置伺服器

Servo伺服1;

Servo伺服2;

int debugPin = 13;//用于導致測試的東西

int motor1Pin = 9;//第一個電動機的端口號

int motor2Pin = 10;//第二個電動機的端口號

int usbnumber = 0;//此變量保存我們當前從串行讀取的內容

void setup(){//在開始時調用一次

pinMode(motor1Pin,OUTPUT);

pinMode(debugPin,OUTPUT);

pinMode(motor2Pin,OUTPUT);

伺服1.attach(motor1Pin,1000,2000);

伺服2.attach(motor2Pin,1000,2000);

Serial.begin(9600);//啟動串行端口

}

void loop(){//主循環

if(Serial.available()》 0){//如果串行端口上有任何東西,請讀取

usbnumber = Serial.read();//將其存儲在usbnumber變量中

}

if(usbnumber》 0){//如果我們讀取了某些內容

if(usbnumber == 49){

Serve1.write(93);

Serve2.write(93);//如果我們讀到1,則停止

analogWrite(debugPin,0);

}

if(usbnumber == 50){ 120);

Serve2.write(120);//如果讀取的是2,則

AnalogWrite(debugPin,85);

}

if(usbnumber == 51){

Serve1.write(150);

Serve2.write (150);//如果我們讀取了3個中號

AnalogWrite(debugPin,170);

}

if(usbnumber == 52){

Serve1.write(179);

Serve2.write (179);//如果我們讀取4,則快速

AnalogWrite(debugPin,255);

}

if(usbnumber == 53){

Serve1.write(130);

Serve2.write (50);//如果我們讀到5,則

AnalogWrite(debugPin,255);

}

if(usbnumber == 54){

Serve1.write(50);

Serve2.write (130);//如果我們讀到6,則

AnalogWrite(debugPin,255);

}

}

usbnumber = 0;//重置搜索}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PHP
    PHP
    +關注

    關注

    0

    文章

    452

    瀏覽量

    26650
  • Arduino
    +關注

    關注

    187

    文章

    6464

    瀏覽量

    186650
收藏 人收藏

    評論

    相關推薦

    怎樣用Arduino測試鋰電池容量

    本文詳細介紹了如何用Arduino測量鋰電池的容量。并附有電路圖和Arduino的程序代碼。
    的頭像 發表于 07-30 09:14 ?712次閱讀
    怎樣用<b class='flag-5'>Arduino</b>測試鋰電池容量

    何用Arduino開發STM32G070?

    何用Arduino開發STM32G070,各位大神有相關教程嗎。我如何在Arduino的開發板管理器中添加STM32G070開發板,如何把程序下載到CPU中?
    發表于 04-07 08:22

    何用我的cy8cmbr3110或3102 capsense控制stm32?

    我在想怎么用 stm32l431 控制這個 cy8cmbre3110 或 3102,我找到了帶有 arduino wire.h 的代碼 庫可以用 i2c 協議控制它但我不知道如何用我的
    發表于 01-25 08:17

    php編程用什么軟件

    ),專為PHP開發而設計。它具有智能代碼編輯器、錯誤突出顯示、代碼自動完成、代碼重構等功能,可以大大提高開發效率。此外,它還支持版本控制系統(如Git)和調試PHP代碼。 Visual Studio
    的頭像 發表于 12-04 16:20 ?2701次閱讀

    php的源碼是什么開源語言

    PHP的源碼是用C語言編寫的,是一種開源的服務器端腳本語言。下面是關于PHP源碼的詳細介紹。 一、PHP簡介 PHP(全稱:PHP: Hyp
    的頭像 發表于 12-04 16:11 ?1648次閱讀

    php的mysql無法啟動

    MySQL是一種常用的關系型數據庫管理系統,而PHP是一種廣泛應用于服務器端的腳本語言。在使用PHP開發網站或應用時,經常會碰到MySQL無法啟動的問題。本文將詳細介紹解決MySQL無法啟動的方法
    的頭像 發表于 12-04 15:59 ?1458次閱讀

    php的源碼是開放的嗎

    PHP是一種開源的腳本語言,其源代碼完全開放并可免費獲取、使用和修改。這篇文章將詳細介紹PHP的源碼開放性。 一、PHP的源碼開放性 PHP的源碼是以
    的頭像 發表于 12-04 15:57 ?1197次閱讀

    php的配置文件是什么

    ,配置文件的名稱默認為php.ini。該文件通常位于PHP安裝目錄下的conf文件夾中。當PHP解釋器啟動時,會自動加載php.ini文件,并根據其中的配置指令來設置運行環境。一些常見
    的頭像 發表于 12-04 15:55 ?1470次閱讀

    php的適用范圍

    PHP是一種通用的腳本語言,特別適用于Web開發。它可以用來開發動態網頁、網站和Web應用程序。本文將詳細介紹PHP的適用范圍及其優勢。 首先,PHP在Web開發中的應用非常廣泛。無論是簡單的靜態
    的頭像 發表于 12-04 15:54 ?498次閱讀

    php的特點有哪些

    PHP是一種通用的腳本語言,特點豐富多樣。 PHP是一種開源的服務器端腳本語言,主要用于開發Web應用程序。它可以嵌入HTML代碼中,也可以作為命令行腳本執行。PHP語言的發展始于上世紀90年代
    的頭像 發表于 12-04 15:50 ?1489次閱讀

    php是前端還是后端

    PHP(Hypertext Preprocessor)是一種流行的服務器端編程語言,用于開發動態網站和Web應用程序。盡管在某些情況下也可以在前端使用,但PHP主要被廣泛應用于后端開發。在這篇文章中
    的頭像 發表于 12-04 15:46 ?2213次閱讀

    php運行機制和原理

    PHP是一種在服務器端執行的腳本語言,它被廣泛用于開發動態網站。它的運行機制和原理非常重要,因為它決定了PHP腳本如何被解釋執行和與服務器進行交互。 PHP的運行機制 PHP腳本的運行
    的頭像 發表于 12-04 15:28 ?883次閱讀

    php運行環境的配置步驟

    PHP是一種廣泛使用的服務器端腳本語言,被用來開發Web應用程序。為了在計算機上運行PHP代碼,我們需要配置PHP運行環境。本文將詳細介紹PHP運行環境的配置步驟。 下載
    的頭像 發表于 12-04 15:27 ?1121次閱讀

    php運行環境本地測試地址是

    PHP運行環境本地測試地址是指在本地計算機上搭建的用于測試和運行PHP代碼的的環境地址。搭建該運行環境可以方便開發人員在本地進行開發、調試和測試工作,以提高開發效率和優化代碼質量。本文將詳細介紹
    的頭像 發表于 12-04 15:25 ?700次閱讀

    php設計模式和應用場景

    ,從小型的網站到大型的企業級應用程序。 下面將介紹一些常見的PHP設計模式及其應用場景。 單例模式(Singleton Pattern): 單例模式用于限制類的實例化,確保一個類只有一個實例,并提供一個全局訪問點。這在需要共享資源或控制訪問點
    的頭像 發表于 12-04 14:54 ?810次閱讀