[英]Raspberry Pi and external MySQL
我遵循以下指示: Web控制Raspberry Pi GPIO 。
它顯示了如何通過簡單的Web界面打開或關閉GPIO引腳。 基本上,PHP文件使用有關引腳的信息(打開或關閉)更新本地MySQL數據庫,.sh文件連續讀取數據庫以查看是否應打開或關閉引腳。 這是.sh文件:
# Script created by Daniel Curzon (http://www.instructables.com/member/drcurzon)
# Initial version created 10th June 2012
# Version: 1.0
###################################
##### EDIT THESE BEFORE USE #####
###################################
mysqlusername="USERNAME"
mysqlpassword="PASSWORD"
#############################################################################################################################
################################################### DO NOT EDIT BELOW THIS LINE ##############################################
##############################################################################################################################
#Set Refresh
echo "How long do you want the wait time to be? "
read waitTime
#Invoke GPIO
echo "4" > /sys/class/gpio/export
echo "17" > /sys/class/gpio/export
echo "18" > /sys/class/gpio/export
echo "21" > /sys/class/gpio/export
echo "22" > /sys/class/gpio/export
echo "23" > /sys/class/gpio/export
echo "24" > /sys/class/gpio/export
echo "25" > /sys/class/gpio/export
#Start Loop
while :
do
#Read MySQL Data
#Direction
direction4=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinDirection FROM pinDirection WHERE pinNumber='4'";)
direction17=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinDirection FROM pinDirection WHERE pinNumber='17'";)
direction18=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinDirection FROM pinDirection WHERE pinNumber='18'";)
direction21=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinDirection FROM pinDirection WHERE pinNumber='21'";)
direction22=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinDirection FROM pinDirection WHERE pinNumber='22'";)
direction23=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinDirection FROM pinDirection WHERE pinNumber='23'";)
direction24=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinDirection FROM pinDirection WHERE pinNumber='24'";)
direction25=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinDirection FROM pinDirection WHERE pinNumber='25'";)
#Status
status4=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinStatus FROM pinStatus WHERE pinNumber='4'";)
status17=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinStatus FROM pinStatus WHERE pinNumber='17'";)
status18=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinStatus FROM pinStatus WHERE pinNumber='18'";)
status21=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinStatus FROM pinStatus WHERE pinNumber='21'";)
status22=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinStatus FROM pinStatus WHERE pinNumber='22'";)
status23=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinStatus FROM pinStatus WHERE pinNumber='23'";)
status24=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinStatus FROM pinStatus WHERE pinNumber='24'";)
status25=$(mysql -B --disable-column-names --user=$mysqlusername --password=$mysqlpassword gpio -e "SELECT pinStatus FROM pinStatus WHERE pinNumber='25'";)
#Run Commands
if [ "$direction4" == "out" ]; then
echo "out" > /sys/class/gpio/gpio4/direction
if [ "$status4" == "1" ]; then
echo "1" > /sys/class/gpio/gpio4/value
echo "GPIO 4 Turned On"
else
echo "0" > /sys/class/gpio/gpio4/value
echo "GPIO 4 Turned Off"
fi
else
echo "in" > /sys/class/gpio/gpio4/direction
fi
if [ "$direction17" == "out" ]; then
echo "out" > /sys/class/gpio/gpio17/direction
if [ "$status17" == "1" ]; then
echo "1" > /sys/class/gpio/gpio17/value
echo "GPIO 17 Turned On"
else
echo "0" > /sys/class/gpio/gpio17/value
echo "GPIO 17 Turned Off"
fi
else
echo "in" > /sys/class/gpio/gpio17/direction
fi
if [ "$direction18" == "out" ]; then
echo "out" > /sys/class/gpio/gpio18/direction
if [ "$status18" == "1" ]; then
echo "1" > /sys/class/gpio/gpio18/value
echo "GPIO 18 Turned On"
else
echo "0" > /sys/class/gpio/gpio18/value
echo "GPIO 18 Turned Off"
fi
else
echo "in" > /sys/class/gpio/gpio18/direction
fi
if [ "$direction21" == "out" ]; then
echo "out" > /sys/class/gpio/gpio21/direction
if [ "$status21" == "1" ]; then
echo "1" > /sys/class/gpio/gpio21/value
echo "GPIO 21 Turned On"
else
echo "0" > /sys/class/gpio/gpio21/value
echo "GPIO 21 Turned Off"
fi
else
echo "in" > /sys/class/gpio/gpio21/direction
fi
if [ "$direction22" == "out" ]; then
echo "out" > /sys/class/gpio/gpio22/direction
if [ "$status22" == "1" ]; then
echo "1" > /sys/class/gpio/gpio22/value
echo "GPIO 22 Turned On"
else
echo "0" > /sys/class/gpio/gpio22/value
echo "GPIO 22 Turned Off"
fi
else
echo "in" > /sys/class/gpio/gpio22/direction
fi
if [ "$direction23" == "out" ]; then
echo "out" > /sys/class/gpio/gpio23/direction
if [ "$status23" == "1" ]; then
echo "1" > /sys/class/gpio/gpio23/value
echo "GPIO 23 Turned On"
else
echo "0" > /sys/class/gpio/gpio23/value
echo "GPIO 23 Turned Off"
fi
else
echo "in" > /sys/class/gpio/gpio23/direction
fi
if [ "$direction24" == "out" ]; then
echo "out" > /sys/class/gpio/gpio24/direction
if [ "$status24" == "1" ]; then
echo "1" > /sys/class/gpio/gpio24/value
echo "GPIO 24 Turned On"
else
echo "0" > /sys/class/gpio/gpio24/value
echo "GPIO 24 Turned Off"
fi
else
echo "in" > /sys/class/gpio/gpio24/direction
fi
if [ "$direction25" == "out" ]; then
echo "out" > /sys/class/gpio/gpio25/direction
if [ "$status25" == "1" ]; then
echo "1" > /sys/class/gpio/gpio25/value
echo "GPIO 25 Turned On"
else
echo "0" > /sys/class/gpio/gpio25/value
echo "GPIO 25 Turned Off"
fi
else
echo "in" > /sys/class/gpio/gpio25/direction
fi
#Complete Loop
sleep $waitTime
done
我想控制網絡外部的GPIO,因此想將數據庫上傳到服務器並創建一個網站進行更新。 但是,我不知道如何在.sh文件中訪問外部 MySQL數據庫! 我該怎么做?
您可以使用--host=<hostname>
選項告訴MySQL連接到哪個主機。 但是,您可能需要允許服務器上的外部連接。
有關更多詳細信息,請參見http://linux.die.net/man/1/mysql 。 向下滾動到“ --host”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.