Агуулгын хүснэгт:

MySQL, PHP5, Python ашиглан Arduino YÚN -ийн хандалтыг хянах: 11 алхам (зурагтай)
MySQL, PHP5, Python ашиглан Arduino YÚN -ийн хандалтыг хянах: 11 алхам (зурагтай)

Видео: MySQL, PHP5, Python ашиглан Arduino YÚN -ийн хандалтыг хянах: 11 алхам (зурагтай)

Видео: MySQL, PHP5, Python ашиглан Arduino YÚN -ийн хандалтыг хянах: 11 алхам (зурагтай)
Видео: Вэб хичээл 5 PHP 1-р хэсэг 2024, Арваннэгдүгээр
Anonim
MySQL, PHP5, Python ашиглан Arduino YÚN -ийн хандалтыг хянах
MySQL, PHP5, Python ашиглан Arduino YÚN -ийн хандалтыг хянах

Сайн уу Найзууд!

9 -р сард Arduino -ийн шинэ нээлтийн бамбай болох Arduino YUN -ийг та мэдэж байгаа. Энэ бяцхан найз Линукс суулгагдсан системтэй бөгөөд бид таны бодож байгаа бүх зүйлийг ажиллуулах боломжтой (наад зах нь өнөөг хүртэл). Энэхүү шинэ самбар дээр маш бага мэдээлэл байгаа боловч Arduino хуудсыг өгөх гарын авлагаас гарах болно (энэ нь дараа нь холбогдох болно), түүнчлэн олон Linux -ийн талаар бага зэрэг мэдлэгтэй байх нь Control Access -ийн томоохон төслийг хэрэгжүүлж чадна. Энэ удаад би энэ төслийг хэрхэн яаж хийхээ тайлбарлах болно, гэхдээ тодорхой хэмжээгээр манай Arduino -ээр дамжуулан. Энэ нь манай YUN -д байрлах MySQL мэдээллийн баазын серверийн ачаар ажилладаг бөгөөд энэ мэдээллийн сан нь хоёр хүснэгтийг хадгалах бөгөөд нэг нь тодорхой RFID -тэй холбоотой хэрэглэгчдэд зориулагдсан, нөгөө нь манай уншигчаар дамжуулсан бүх картуудын бүртгэлийг хөтлөх болно. Бид програмчлалын хэлийг ашиглан PHP болон Python скриптүүдийг ашиглан үндсэн мэдээллээ хийж, өгөгдөлтэйгээ ажилладаг. Тоног төхөөрөмжийн нэмэлт зардалд бид 16 тэмдэгт бүхий цуваа LCD-ийн хажууд уншигч ID-20, мөн RGB LED ашигладаг бөгөөд энэ нь бидний мэдээлэгч байх болно. Бид энэ хандалтын хяналтыг бодож, өөрчлөх, реле эсвэл өөр санааг нэмэх боломжтой бүх зүйлийг ашиглаж болно. Үүнийг карттай, бичлэг хийхийг хүссэн бүх зүйлд ашиглаж болно. Энэхүү баримт бичиг нь үнэ төлбөргүй хэвлэгддэг тул арилжааны зориулалтаар ашиглах, чөлөөлөхийг хориглодог гэдгийг санаарай. Энэ бол нээлттэй эхийн электроникийн илүү өргөн хүрээтэй арга зам гэж найдаж байна. Тиймээс бид дараагийн алхам руу орно, талуудад хэрэгтэй!

Алхам 1: эд ангиуд

Эд ангиуд
Эд ангиуд
Эд ангиуд
Эд ангиуд
Эд ангиуд
Эд ангиуд

Энэ төслийг хийхийн тулд бидэнд дараахь зүйлс хэрэгтэй болно: * Arduino YUN https://www.sparkfun.com/products/12053 $ 71.95 * RFID уншигчийн ID-20 (125 кГц) https://www.sparkfun.com/products/11828 $ 34.95 * RFID уншигчийн Breakout https://www.sparkfun.com/products/8423 $ 0.95 * Үндсэн 16x2 тэмдэгт LCD 5V https://www.sparkfun.com/products/790 $ 16.95 * Цуваа идэвхжүүлсэн LCD үүргэвч https:// www. sparkfun.com/products/258 $ 16.95 * LED RGB 5мм. Хэрэв та Sparkfun дэлгүүрээс худалдаж авбал бүх зүйл ойролцоогоор 150 доллар болно. Хэрэв та Латин Америкт амьдардаг бол эд ангиудыг www.olimex.cl дээрээс худалдаж авахыг зөвлөж байна, энэ бол Чилийн маш сайн цахилгаан барааны дэлгүүр юм.

Алхам 2: Чуулган

Чуулган
Чуулган
Чуулган
Чуулган
Чуулган
Чуулган

Хийх цөөн хэдэн холболт, товчхон тайлбарлавал. RGB LED -ийн хувьд улаан LED зүү нь Arduino -ийн 9 -р зүү, ногоон LED нь Arduino -ийн 8 -р зүү, цэнхэр LED нь Arduino -ийн 7 -р зүү дээр байх ёстой. ID-20-ийн хувьд та дараах зүүг хүснэгтэд заасан дарааллаар холбох ёстой бөгөөд уншигчийг Arduino зүү рүү зүүгээр холбоно уу: Pin ID-20 нь Arduino ID-20 / Arduino PIN 1-GND PIN 2-5V PIN 7 - GND PIN 9- PIN 10 PIN 10- BUZZER PIN 11- 5V Эцэст нь хэлэхэд, цуваа LCD холбогч нь зөвхөн Arduino-ийн 5v ба GND зүүтэй байхад л шаардлагатай болно. Arduino -ийн.

Алхам 3: Arduino Yun програмчлал

Arduino Yun -ийн програмчлал
Arduino Yun -ийн програмчлал

Төслөө бүтээхийн тулд бид програм хангамжийн хэсгээс эхлээд Arduino opkg Yun дээр хэдэн файл суулгах хэрэгтэй.

  • MySQL сервер
  • PHP5
  • Python 2.7 -д зориулсан MySQLdb
  • PHP5 -ийн MySQL -ийн горим

Анхдагч байдлаар Bridge дээр Python 2.7 суулгагдсан байдаг тул та үүнийг шинэчлэх шаардлагагүй болно. SSH бүртгэлийг эхлүүлж, манай Arduino Yun руу орж зүрхлээрэй, та тэдгээрийг эхлүүлсний дараа opkg програмуудын жагсаалтыг шинэчлэхийн тулд дараах тушаалыг бичнэ үү.

opkg шинэчлэлт

Алхам 4: MySQL -ийг суулгах

MySQL -ийг суулгах
MySQL -ийг суулгах

Одоо бид MySQL серверийн суулгалт, тохиргоог хийж, консол дээр дараах тушаалуудыг бичнэ.

  1. opkg libpthread libncurses libreadline mysql-server суулгах
  2. sed -i 's, ^datadir.*, datadir =/srv/mysql/, g' /etc/my.cnf
  3. sed -i -ийн, ^tmpdir.*, tmpdir = /tmp /, g '/etc/my.cnf
  4. mkdir -p /srv /mysql
  5. mysql_install_db –- хүч
  6. /etc/init.d/mysqld эхлэх
  7. /etc/init.d/mysqld идэвхжүүлэх
  8. mysqladmin -u root нууц үг 'tu-nueva-clave'

Манай кодыг оруулж дуусаад MySQL серверийг ажиллуулсны дараа та ажиллах өгөгдлийн санг тохируулах хэрэгтэй. Гэхдээ кодыг бичиж эхлэхээсээ өмнө бид хүснэгтийг авч явдаг талбаруудыг ойлгох хэрэгтэй. Удирдах зөвлөл нь 'id', 'name', 'name', 'email', 'rfid' гэсэн 5 курсээс бүрдэх бөгөөд заримыг нь зах зээлд гаргахын тулд би тэдний хэрэглээний талаар товч тайлбар өгөх болно.

  • 'id': Хэрэглэгчийн ID -д оноосон дугаарыг бидэнд хэлэх талбар эсвэл шинж чанар int баганад энэ дугаарыг ижил өгөгдлийн сангаар хуваарилах бөгөөд бидний бүртгэлийг индексжүүлэх арга зам байх болно.
  • 'nombre': шинж чанарын багана нь 'varchar' байх бөгөөд манай картны хэрэглэгчийн нэрээр тодорхойлогдоно.
  • 'apellido': шинж чанар багана нь 'varchar' байх бөгөөд манай хэрэглэгчийн холбоотой овог нэрээр зааж өгч болно.
  • 'correo': энэ бол холбогдох хэрэглэгчийн имэйлийг агуулсан 'varchar' атрибут багана юм.
  • 'rfid': Энэ бол таны ашигладаг RFID картын кодыг агуулсан 'varchar' атрибут багана юм.

(Би хувьсагчдыг испани хэл дээр ашиглах болно, учир нь миний төрөлх хэл, би c -т дуртай:) Одоо бид мэдээллийн баазаа ямар ч асуудалгүйгээр тохируулах боломжтой болсон тул MySQL "arduino" дуудлага үүсгэдэг. Та дараах кодыг оруулах ёстой.

mysqladmin -u root -p arduino үүсгэх

Бид суулгалтын явцад өмнө оруулсан нууц үгээ асууж, суурийг бий болгох ажлыг дуусгахын тулд үүнийг оруулах болно. Энэ бүгдийг дуусгасны дараа бид MySQL -д асуулга оруулна уу, та консол дээр дараах кодыг бичих ёстой.

mysql -root -p

Бид нууц үгээ дахин асууж байна, та үүнийг дахин оруулах ёстой. MySQL консолын командыг оруулсны дараа бид заагч ('mysql>') бичихэд бэлэн харагдаж байна. Бидний хийх хамгийн эхний зүйл бол 'arduino' өгөгдлийн үндсэн дээр ажиллах болно. Үүнийг MySQL консол дээр дараах тушаалыг бичих замаар гүйцэтгэнэ.

Arduino ашиглах

Өгөгдлийн сан дахь 'usuariosrfid' нэрийн хүснэгтийг энэ төсөлд ашиглах болно гэдэгт бид итгэж байна, энэ кодыг MySQL консол дээр бичнэ үү:

  1. Хүснэгт үүсгэх 'usuariosrfid` (
  2. `id` int (255) NULL AUTO_INCREMENT биш,
  3. `nombre` varchar (300) NULL биш,
  4. `apellido` varchar (300) NULL биш,
  5. `correo` varchar (300) NULL биш,
  6. `rfid` varchar (300) NULL биш,
  7. АНХАН ТҮЛХҮҮР (`id`)
  8. ) Мотор = MyISAM DEFAULT CHARSET = латин1 AUTO_INCREMENT = 0;

* MySQL консол дахь командын шугамын төгсгөлд ENTER товчийг дарахад ';' -ийг олох хүртэл ажиллахгүй гэдгийг санаарай. Тиймээс кодын төгсгөлд ';' байна. MySQL -ийн суулгалт, тохиргоог дуусгахын тулд бид өөрийн бааз доторх зарим туршилтын талбарыг бөглөнө. Дараах мөрүүдийг бичнэ үү.

  1. INSERT INTO `usuariosrfid` (` id`, `nombre`,` apellido`, `correo`,` rfid`) VALUES
  2. (1, 'Педро', 'Суарез', '[email protected]', '1234a-12345-b-123c'),
  3. (4, 'Matias', 'Lopez', '[email protected]', '987a-9876b-987c');

Одоо уншигчийн дамжуулж буй бүх RFID кодыг хадгалах "ControlUsuarios" хүснэгтийг үүсгэхийг үргэлжлүүлээрэй, энэ хүснэгт нь 'id', 'rfid', 'date' гэсэн 3 талбараас бүрдэнэ.

  • 'id' нь индексжүүлэх бичлэг бүрийн id -ийг агуулсан талбар эсвэл шинж чанарын int багана юм.
  • 'rfid' шинж чанар нь уншигчийн уншсан RFID таг код агуулсан 'varchar' багана юм.
  • 'огноо' нь картыг уншсан огноог агуулсан 'varchar' атрибут багана юм.

'ControlUsuarios' хүснэгтийг үүсгэхийн тулд бид дараах кодыг MySQL консол руу оруулна уу.

  1. Хүснэгт үүсгэх 'ControlUsuarios` (
  2. `id` int (255) NULL AUTO_INCREMENT биш,
  3. `rfid` varchar (300) NULL биш,
  4. `fecha` varchar (300) NULL биш,
  5. АНХАН ТҮЛХҮҮР (`id`)
  6. ) Мотор = MyISAM DEFAULT CHARSET = латин1 AUTO_INCREMENT = 0;

Эцэст нь 'exit;' гэж бичнэ үү. консол дээр MySQL Query -ээс гараад SHH руу буцна уу, ингэснээр бид PHP5 -ээс эхэлж болно.

Алхам 5: PHP5 -ийг суулгах

PHP5 -ийг суулгах
PHP5 -ийг суулгах

PHP5 -ийн суулгалт, тохиргоог үргэлжлүүлээрэй. Энэ суулгалт нь MySQL -ээс хамаагүй хялбар тул тэдэнд ямар ч зардал гарах ёсгүй. Нэгдүгээрт, Arduino Yun татаж авах, суулгахаас opkg багцыг суулгаарай, ингэснээр Arduino -ийн SSH консол дээр үүнийг бичнэ үү.

opkg php5 php5-cgi суулгана уу

Татаж аваад PHP5 -ийг манай Arduino Yun дээр суулгасны дараа бид uHTTPd root файлыг тохируулсан бөгөөд энэ нь Arduino -г анхдагчаар авчирдаг http сервер юм. Энэ http серверийг ашиглахыг зөвлөж байна. Та энэ чиглэлээр шинээр ажиллаж байхдаа тохируулах. Үүнийг тохируулахын тулд 'vi' SSH файлын засварлагчийг ашиглана уу, үүний тулд та энэ засварлагчийг ашиглах талаар хамгийн бага мэдлэгтэй байх ёстой. UHTTPd тохиргооны файлд хандахын тулд консол дээр энэ кодыг бичиж эхлээрэй.

vi/etc/config/uhttpd

Файлыг засахын тулд 'i' товчлуурыг дараад өөрийн бичсэн кодын мөр рүү очно уу. "php = / usr / bin / php-cgi" '. Та мөрийн эхэнд '#' тэмдэгтийг устгах ёстой, дараа нь зугтах ('ESC' товчлуур) товчлуурыг дарахад бэлэн болсны дараа та файлыг хадгалахын тулд ': wq' командыг бичих ёстой. Та uHTTPd серверийг дахин эхлүүлэх ёстой, үүний тулд та SSH -ийн командын консол дээр дараах кодыг бичих ёстой.

/etc/init.d/uhttpd дахин эхлүүлэх

Алхам 6: PHP5 болон Python -д зориулсан Conector MySQL -ийг суулгах

PHP5 болон Python -д зориулсан Conector MySQL -ийг суулгах
PHP5 болон Python -д зориулсан Conector MySQL -ийг суулгах

MySQL мэдээллийн баазыг PHP болон Python -тэй холбохын тулд модулийг суулгах, тохируулах ажлыг үргэлжлүүлээрэй. PHP холбогчоос эхэлье. Дараах кодыг бичнэ үү.

  1. opkg php5-mod-mysql суулгана уу
  2. sed -i -ийн,; өргөтгөл = mysql.so, өргөтгөл = mysql.so, g '/etc/php.ini

Бэлэн болмогц uHTTPd серверийг дахин эхлүүлэх шаардлагагүй бөгөөд шууд ашиглахад бэлэн болно. Одоо Python -ийн холбогчийг үргэлжлүүлээрэй, үүний тулд та дараах кодыг оруулах ёстой.

opkg python-mysql суулгаарай

Энэ сүүлчийн алхамаар бид Arduino Yun-ийг ID-20 RFID 125khz карт уншигчтай төсөлдөө бэлэн болгох болно. Энэ хэсгийг бидний хийсэн зүйлийн талаархи санал хүсэлтээр дуусга.

  • Бид MySQL серверийг Arduino Yun дээрээ суулгаж, дараа нь туршилтын өгөгдлийг оруулах замаар тохируулна.
  • PHP нэмэлтийг манай серверт суулгаарай.
  • Бид PHP болон Python аль алинд нь MySQL холбогчийг суулгаж, тохируулж дуусгасан.

Алхам 7: Кодууд

Энэ чиглэлээр бид энэ төсөлд ашиглах програмчлалын кодыг хэлэлцдэг. Бид Python кодыг үлдээдэг бөгөөд үүнийг "comprobar.py" гэсэн хоёр файлд хуваадаг бөгөөд энэ нь өгөгдлийн сантай холбогдож, хэрэв үр дүн нь байвал Юн Ардуиног хайж, файлыг хянах болно. py ', бүртгэгдсэн хэрэглэгчдийн мэдээллийн санд байгаа эсэхээс үл хамааран уншигчийн ID-20 уншдаг аливаа картыг бүртгэх үүрэгтэй. Дараа нь PHP файлуудын тайлбарыг үргэлжлүүлнэ үү: 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'delete2. php ',' guardar.php '' consulta.php ',' configuracion.php '. Эдгээр файлуудын хувьд хоёуланг нь хоёуланг нь хоёуланг нь ойлгоход хялбар байдаг. Эцэст нь манай Arduino ноорог болох кодоор дуусга.

Алхам 8: Python файлууд

Python файлууд
Python файлууд

Өмнө дурьдсанчлан, бидний Python скриптүүд өмнө нь суулгасан байсан номын сан эсвэл 'MySQLdb' класстай ажилладаг байсан. Манай редактор дээр 'comprobar.py' нэртэй. Номын сангаа импортлохоос эхэлж манай Arduino Yun -тэй харилцах боломжийг олгодог MySQL мэдээллийн сантай болох номын сангийн 'sys' руу холбогдоно уу.

  1. MySQLdb импортлох
  2. sys импортлох

Эдгээр номын сан эсвэл ангиудыг импортлосны дараа бид таны кодонд хувьсагчдыг нэмдэг бөгөөд энэ нь манай MySQL мэдээллийн сангийн холболтын өгөгдөл болох яс болно:

  1. host = "127.0.0.1" # нь манай MySQL серверийн хаягтай тохирч байна.
  2. user = "your-seat" # бол манай мэдээллийн сангийн хэрэглэгч юм.
  3. passw = "таны нууц үг" нь хэрэглэгчийн нууц үг юм. base = "arduino" # Энэ бол таны ашигладаг мэдээллийн сангийн нэр юм.

Одоо үндсэн скрипт кодуудаас эхэлье.

  1. үнэн байхад:
  2. db = MySQLdb.connect (хост, хэрэглэгч, нэвтрэх, суурь)
  3. cur = db.cursor ()
  4. resultado = cur.execute ("" "SELECT * FROM usuariosrfid WHERE rfid LIKE %s ORDER BY by id" "", (sys.argv [1],))
  5. хэрэв (үр дүн == 1):
  6. хэвлэх 1
  7. sys.exit (1)
  8. өөр:
  9. хэвлэх 2
  10. sys.exit (1)

Хэрэв бид ойлгож байгаа бол бидний асуулгыг гүйцэтгэхийн тулд 'cur.execute result = ("" "SELECT * FROM WHERE rfid usuariosrfid LIKE% s ORDER BY id" "(sys.argv [1])) командын тусламжтайгаар хувьсагчийг харьцуулж үзээрэй. '(sys.argv [1])' нь бүх талын өгөгдөл бүхий 'rfid' хүснэгт 'usuariosrfid' бүхий Arduino RFID картын код бөгөөд arduino -аас тэгш байдлын код болон мэдээллийн санд хадгалагдсан кодыг олох болно. буцаах 1, хэрэв энэ нь үнэн биш бөгөөд arduino болон зарим суурийн кодын хооронд тэгш эрх байхгүй бол бид 2 -ийг буцаана. Эдгээр тоонуудыг Arduino хүлээн авах болно. Бид дараагийн 'control.py файлыг үргэлжлүүлнэ. Энэ файл нь дээр дурдсантай адил ажилладаг бөгөөд зөвхөн амтыг хүснэгтэд хадгалдаг бөгөөд хадгалсан эдгээр бичлэгийг манай Arduino Yun-тэй холбогдсон уншигчийн ID-20 цуглуулдаг тул бид RFID уншигч ашигладаг бүх бүртгэлтэй хэрэглэгчдийг хадгалах боломжтой болно.

Алхам 9: PHP файлууд

Дараа нь файлуудыг үргэлжлүүлнэ үү. 'Php' нь фолдерыг манай серверээс хадгалах болно, ингэснээр эдгээр файлууд бэлэн болмогц IDE Arduino -ийг автоматаар үүсгэдэг манай төсөл дээр хадгалагдах ёстой гэдгийг санаарай, гэхдээ та санаж байх хэрэгтэй. Энэ бол бид Arduino -ийн ноорог зураг руу очихдоо Wi -Fi -ээр дамжуулан байршуулдаг тул би үүнийг Arduino, www.arduino гарын авлагад үлдээдэг. cc / en / Guide / Arduino Yun # toc14, энэ талаар болон файлуудыг сервер дээр хадгалах ёстой энэ төрлийн төсөлд зориулж MicroSD картыг хэрхэн яаж бэлтгэх талаар тайлбарласан болно. PHP файлууд нь 10 'consultaRelacion.php', 'consultaControl.php', 'index.php' 'modificar2.php', 'modificar.php', 'borrar.php', 'borrar2.php', 'guardar байх болно. php '' consulta.php ',' configuracion.php 'гэсэн үндсэн цэсийг байнга ажиллуулж, хүртээмжтэй байлгахын тулд нөгөөгөөсөө гипер холбоос авах болно. Манай мэдээллийн сантай холбогчоор ажилладаг 'configuracion.php' файлыг тайлбарлахад л болно. Манай редактор дээр бид дараах кодыг файлд хуваарилдаг.

  1. <? php
  2. / / Өгөгдлийн сервер ба мэдээллийн сан
  3. $ server = "localhost";
  4. $ хэрэглэгчийн нэр = "таны суудал";
  5. $ password = "нууц үг";
  6. $ database_name = "arduino";

Эдгээр нь arduino дахь манай мэдээллийн санд холбогдох шаардлагатай өгөгдөл бөгөөд бидний Python скриптэд ашигладагтай ижил байх болно. Манай скриптийг ашигласан connect мэдэгдлийг програмчилж дуусгана уу.

  1. $ conexion = mysql_connect ($ сервер, $ хэрэглэгчийн нэр, $ нууц үг) эсвэл үхэх ("Problems al tratar de таъсисlecer la conexion");
  2. $ bd_sel = mysql_select_db ($ database_name) эсвэл үхэх ("Асуудал аль нэг сонголт байна");
  3. ?>

Бусад файлуудыг хавсаргасан болно.

Алхам 10: Эцэст нь Arduino YN -ийн хөтөлбөр

Бид энэ гарын авлагын үндсэн хэсэгт орж, Arduino Yun програмчлахдаа бүх кодыг нарийвчлан тодруулахгүй, учир нь энэ нь маш өргөн цар хүрээтэй бөгөөд зөвхөн дараах чухал зүйлийг дурдах хэрэгтэй.

  • Код нь 6 үндсэн функц, 13 хоёрдогч функцээс бүрддэг бөгөөд энэ нь зөвхөн Цуваа LCD -ийг ашиглахад дэмжлэг болдог.
  • Линукс ба ATMEGA32U4 хооронд холболт хийх үндсэн 'Bridge.h' ID-20 ба Serial LCD-тэй холбогдохын тулд бид "SoftwareSerial.h" гэсэн гурван ангиллыг оруулж болно. болон 'Process.h' анги нь Линукс дээр зөвлөгөө өгөх үйл явцад үйлчлэх болно.
  • Бусдыг үнэгүй ашиглах гурван зүүг тодорхойл.

Кодыг хавсаргасан болно

Алхам 11: Шинэ жилийн мэнд хүргэе

Би танд үйлчилж, Arduino Yun -ийн талаар илүү их мэдээлэл авахад туслахын тулд үүнийг нямбай үргэлжлүүлж байна. Бүх файлыг эцэс хүртэл хавсаргана уу. Испани хэлээр ярьдаг хүмүүсийн хувьд би энэ хичээлийг орхих боловч шаардлагатай файлуудыг испани хэл дээр үлдээсэн болно. Та бүхэнд 2014 оны шинэ жилийн мэнд хүргэж, сайхан өнгөрүүлээрэй, энэ 2014 ондоо амжилт хүсье!

Зөвлөмж болгож буй: