php聲波模擬開門,關于 php使用擴展控制樹莓派io 驅動超聲波測距

經過昨天一下午,終于寫好了基于

只需要安裝完畢,就可以調用函數了:<?php

/**

*?Created?by?PhpStorm.

*?User:?tioncico

*?Date:?19-7-6

*?Time:?下午4:45

*/

define('PI_TRIG',0);

define('PI_ECHO',1);

if?(wiringPiSetup()===false){

echo?"初始化錯誤!";

die;

}

//初始化引腳

ultraInit();

while?(1)?{

//測距

$dis?=?disMeasure();

printf("distance?=?%0.2f?cm\n",?$dis);

piDelay(1000);

}

function?ultraInit(){

pinMode(PI_ECHO,?PI_INPUT);

pinMode(PI_TRIG,?PI_OUTPUT);

}

function?disMeasure(){

//先關閉脈沖,初始化

digitalWrite(PI_TRIG,PI_LOW);

//等待2微秒

piDelayMicroseconds(2);

//發出超聲波脈沖

digitalWrite(PI_TRIG,?PI_HIGH);

piDelayMicroseconds(10);

//等待10秒,關閉脈沖

digitalWrite(PI_TRIG,?PI_LOW);

//關閉之后,馬上開始判斷獲取聲波

while?(!(digitalRead(PI_ECHO)?==?1));

$startTime?=?piMicros();

//如果獲取不到了,說明已經接收完畢

while?(!(digitalRead(PI_ECHO)?==?0));

$endTime?=?piMicros();

//聲音在空氣中傳播是34000cm/s,?1000000微秒是1秒,去掉來回的聲波時間,求出距離

$dis?=?($endTime?-?$startTime)?/?1000000?*?34000?/?2;??//求出距離

return?$dis;

}

使用root權限運行:

ff2556d51597bd4c2cd2da8651e9911f.png

a7e677e6bb65537273cbd439b012f2c2.png

本文為仙士可原創文章,轉載無需和我聯系,但請注明來自仙士可博客www.php20.cn

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443547.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443547.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443547.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java和poi導出excel報表

一&#xff1a;poi jar下載地址&#xff1a;點擊打開鏈接&#xff1a; 二&#xff1a;工程截圖&#xff1a; 三&#xff1a;運行效果截圖&#xff1a; 四&#xff1a;源代碼&#xff1a; Student.java: package com.poi.bean;import java.util.Date;public class Student {pri…

matlab漢明碼psk,設計一個漢明碼編碼的2PSK調制的數字通信系統

漢明碼信道編碼的2psk調制數字通信系統設計一個采用2PSK調制的數字通信系統設計系統整體框圖及數學模型&#xff1b;產生離散二進制信源&#xff0c;進行信道編碼(漢明碼)&#xff0c;產生BPSK信號&#xff1b; 加入信道噪聲(高斯白噪聲)&#xff1b;BPSK信號相干解調&#xff…

sh.k7p.work/index.php,Laowang's Blogs

OpenDayLight(硼Boron版本)實戰開發入門OpenDayLight[1](簡寫為ODL)的硼Boron(0.5.0)版本于2016-09-16 這幾天剛剛發布。作為一款開源SDN網絡控制器&#xff0c;依托于強大的社區支持以及豐富的功能特性&#xff0c;ODL成為了目前主流的SDN網絡控制器開發平臺。不僅為開發者提供…

php接收不到ios值,php設置標簽后,ios收不到,安卓可以收到

通過下面代碼設置的標簽&#xff1a;$client->device()->addTags($registration_id, test);通過下面代碼推送的消息$result self::getClient()->push()->setPlatform([ios, android])->addTag([test])->setNotificationAlert($content)->options([time_t…

0+到10+隨機數+java,java代碼--實現隨機輸出10個隨機數,并顯示最大值,最小值

總結;對于length()屬性&#xff0c;還不是很熟悉。不會用它。package com.s.x;//隨機產生10個隨機數&#xff0c;并且顯示出最大值&#xff0c;最小值public class Love {public static void main(String[] args) {int a[] new int[10];int max, min;for (int i 0; i < 10…

oracle推送短信,ORACLE 10G如何實現發短信的服務?

CREATE OR REPLACE PROCEDURE SEND_MAIL(SUBJECT IN VARCHAR2,CONTENTSED IN VARCHAR2) ISEMAIL_SERVER VARCHAR2(30) : 10.1.200.6;SENDER_ADDRESS VARCHAR2(50) : testcz.com.cn;--發件地址RECEIVER_ADDRESS VARCHAR2(30); …

Java和iText導出pdf文檔

一&#xff1a;工程截圖&#xff1a; 二&#xff1a;項目運行截圖&#xff1a; 三&#xff1a;源代碼&#xff1a; Book.java package com.iText.bean;public class Book {private int bookId;// 圖書編號private String name;// 圖書名稱private String author;// 圖書作者pr…

oracle 12 ORA-01262,oracle物理dg安裝:方法二

本文記錄了物理dg的第二種安裝方法&#xff0c;使用rman duplicate from active database&#xff0c;不需要做備份文件。準備工作&#xff1a;1.兩臺虛擬機&#xff0c;主機名&#xff1a;n1, n2&#xff0c;操作系統&#xff1a;centos6.7&#xff0c;建好信任關系2.oracle d…

linux多進程原理,Linux進程調度

極簡模式假設我的系統只有一種調度算法cfs那么有個調度的隊列 cfs_rq所有running的進程都會 進入這個隊列&#xff0c;不在running 或者其他情況會出隊列&#xff0c;ok。則假設隊列控制的算法有以下。cfs_rq_enqueuecfs_rq_dequeuecfs_rq_pick所操作的是進程描述符 task_struc…

openwrt使用linux內核版本,降低OpenWRT的Linux內核版本

不久前&#xff0c;為了移植某驅動程序&#xff0c;筆者可謂絞盡腦汁&#xff0c;在4.1內核版本上&#xff0c;嘗試了很多次都沒能成功&#xff0c;后來仔細分析&#xff0c;才知道是內核版本過高導致的&#xff0c;本文給出降低內核版本的方法&#xff0c;具體編譯環境的搭建&…

Hibernate3.x,hibernate3.x,Hibernate3.x整合Spring3.x不能實現自動創建表結構的解決辦法:...

一&#xff1a;今天遇到一個詭異的問題&#xff0c;就是關于hibernate3.x實現表結構自動創建&#xff0c;一般我們在用Struts2&#xff0c;Hibernate3.x&#xff0c;Spring3.x搭建框架&#xff0c;尤其在開發階段都希望在啟動Web容器時就可以根據Bean實體自動創建數據表結構&am…

linux s t i a權限,關于Linux下s、t、i、a權限

關于Linux下s、t、i、a權限文件權限除了r、w、x外還有s、t、i、a權限&#xff1a;s&#xff1a;文件屬主和組設置SUID和GUID&#xff0c;文件在被設置了s權限后將以root身份執行。在設置s權限時文件屬主、屬組必須先設置相應的x權限&#xff0c;否則s權限并不能正真生效(c h m …

linux ssh禁止用戶訪問任何目錄,怎么限制遠程ssh用戶訪問特定的文件

比如我要實現以下目標&#xff0c;通過配置linux限制SSH用戶指定目錄user 1 只可以訪問 /Media, /Documents以及它的家目錄User 2 只可以訪問/Folder21, 以及它的家目錄,User 3 只可以訪問 /Documents, /Folder21 以及他的家目錄,ssh如何限制指定目錄2. 通過配置Linux權限限制S…

linux配置定時刪除日志文件,Linux使用shell腳本定時刪除歷史日志文件

Linux使用shell腳本定時刪除歷史日志文件,文件,小時,時間,目錄,腳本Linux使用shell腳本定時刪除歷史日志文件易采站長站&#xff0c;站長之家為您整理了Linux使用shell腳本定時刪除歷史日志文件的相關內容。1、tools目錄文件結構[rootwww tools]# tree tools/tools/├── bin│…

linux awk執行shell命令,awk調用shell命令

在awk內部可利用管道和getline函數來調用shell命令&#xff0c;并可得到返回的具體結果&#xff0c;進行相應處理。例子如下&#xff1a;1) {while ( ("ls" | getline) >0 )print}輸出當前目錄下的所有文件&#xff0c;并打印到標準輸出上。| 是管道&#xff0c;g…

linux添加啟動腳本文件夾,linux – 將腳本中的符號鏈接添加到rc.d文件夾中以在系統啟動期間啟動進程...

我正在使用fedora 15.我試圖添加MYSql守護進程在系統strtup期間啟動.我已經明白我必須將它添加到rc5.d,因為它是默認目標&是graphical.target.來自inittab&#xff1a;systemd uses ‘targets’ instead of runlevels. By default, there are two main targets:multi-user.…

org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException:

一&#xff1a;今天在使用struts2做文件上傳時出現了該異常&#xff1a; 警告: Unable to parse request org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (5897994) exceeds the configured maximum (2…

linux天氣軟件,類似智能手機!Linux中安裝Conky天氣插件

如今&#xff0c;智能手機中很多都安裝相匹配外觀的天氣小插件&#xff0c;而對于喜歡操作系統平臺的用戶而言&#xff0c;可以在你的Linux桌面中擁有像智能手機一樣的天氣外觀。通過Flair Weather Conky可以將使用一個GUI工具Conky Manager在Linux中輕松地管理Conky。這里介紹…

linux go 安裝路徑,在Alpine Linux D的路徑中找不到已安裝的Go二進制文件

我有一個Go二進制文件&#xff0c;試圖在Alpine Docker映像上運行。這對于Docker Go二進制文件很好用。docker run -it alpine:3.3 shapk add --no-cache curlDOCKER_BUCKETget.docker.comDOCKER_VERSION1.9.1curl -fSL "https://${DOCKER_BUCKET}/builds/Linux/x86_64/do…

linux安裝下載中文包,linux下安裝中文包和字體

在虛擬機中使用中文輸入法和中文顯示使用的是rhel5的鏡像我把其鏡像掛載在/mnt/cdrom中&#xff0c;然后切換到/Server目錄下&#xff0c;安裝支持中文字體Mount /dev/cdrom /mnt/cdromCd /mnt/cdrom/serverrpm -ivh fonts-chinese-3.02-9.6.el5.noarch.rpmrpm -ivh fonts-ISO8…