Мазмұны:

UCL - IIOT жылыжайы: 11 қадам
UCL - IIOT жылыжайы: 11 қадам

Бейне: UCL - IIOT жылыжайы: 11 қадам

Бейне: UCL - IIOT жылыжайы: 11 қадам
Бейне: UCL-IIoT-Datalogger 2024, Шілде
Anonim
UCL - IIOT жылыжайы
UCL - IIOT жылыжайы

Бұл жоба біздің жылыжаймен бұрынғы жобамыздың жалғасы (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

Бұл жобада біз дерекқорды қостық, онда біз барлық деректерді тіркейміз, содан кейін оны шолу үшін қызыл түйінмен бейнелейміз.

Біздің мәліметтер базасына кіретін мазмұн - ылғалдылық, топырақтың температурасы мен ылғалдылығы, ол әр түрлі диаграммаларда көрсетілген.

Даталогиннен басқа біз жылыжайда қандай профиль белсенді екенін басқара аламыз және оны қашықтықтан басқара аламыз.

Содан кейін біз сорғы мен желдеткішті қолмен басқара аламыз.

1 -қадам: Орнату нұсқаулығы

Орнату нұсқаулығы
Орнату нұсқаулығы

Бірінші қадам - барлық компоненттерді орнату.

Жақшаның ішінде () біз компонент қайда жалғанатынын тізбектедік. Мысалы, Arduino Raspberry Pi -ге USB кабелі арқылы қосылған.

Қолданылатын жабдық:

  • Arduino (таңқурай Pi)
  • Таңқурай Pi 3 B+
  • Топырақ гигрометрі (Arduino)
  • DHT11 сенсоры (Arduino)
  • HG-320 суасты сорғысы (реле)
  • 5В релесі (Arduino)
  • Компьютер желдеткіші (реле)
  • 230 В қуат көзі (сорғы)

Қолданылған бағдарламалық қамтамасыз ету:

  • Raspbian (Raspberry Pi үшін ОЖ)
  • Arduino IDE
  • Python (Raspberry Pi)- PySerial- MySQLclient
  • Қызыл түйін (Raspberry Pi)- Pythonshell- Summariser- MySQL- бақылау тақтасы
  • MySQL сервері (freemysqlhosting.net)

Алдымен сізге аппараттық компоненттерді қосу қажет болады, сондықтан жылыжай салу үшін мына нұсқаулықты орындаңыз: Орнату бойынша нұсқаулық.

Содан кейін сізге Raspberry Pi -ге Raspbian ОЖ орнату қажет болады. Осыдан кейін сізге Python, содан кейін python кітапханаларын орнату қажет болады.

Келесі қадам-Node-Red-ді Raspberry Pi-ге орнату, содан кейін паллет менеджеріне өтіп, бұрын айтылған модульдерді орнату.

Содан кейін осы сайтқа кіріңіз Free MySQL Server және тегін MySQL серверін жасаңыз.

Мұның бәрі аяқталғаннан кейін сіз Raspberry Pi-ге питон сценарийін беруге, Node-Red сценарийін импорттауға және Arduino кодын жүктеуге дайынсыз.

2 -қадам: бақылауды көрсету

Image
Image

3 -қадам: Жобада қолданылатын бөліктер/бағдарламалық қамтамасыз ету тізімі

Біз жылыжай жасау үшін келесі технологияны қолдандық

  • Ардуино
  • Raspberry Pi
  • Қызыл түйін
  • Python
  • PHPMyAdmin

4 -қадам: I/0 тізімі

Қосылу диаграммасы
Қосылу диаграммасы

5 -қадам: Сымдардың диаграммасы

6 -қадам: Arduino коды

Arduino коды сенсорлармен өлшенетін деректерді Raspberry Pi оқитын және дерекқорға берілетін сериялық қосылымға басып шығару арқылы жұмыс істейді.

Arduino -да Arduino оқитын Raspberry Pi -ге қосылған бірнеше цифрлық кіріс түйреуіштері бар және егер үшеуінің бірі ЖОҒАРЫ болса, профиль IF операторына байланысты өзгереді.

Сондай -ақ, біз кодты Millis -ті кешіктірудің орнына қолдану үшін жаңарттық, бұл кодты қалталар мен қалған бөліктерді ескі кідіріспен емес, үнемі оқуға мүмкіндік береді.

7 -қадам: Raspberry Pi 3 B+

Таңқурай Pi 3 B+
Таңқурай Pi 3 B+

Біз Arduino -ны интернетке және MySQL мәліметтер базасына қосу үшін Raspberry Pi 3 B+ қолдандық. Бұл бізге сенсорлардан деректерді сақтауға және соңғы пайдаланушыға визуалды интерфейс жасауға мүмкіндік берді. Пайдаланушы интерфейсі үшін біз бақылау тақтасы палитрасы бар Node-Red қолдандық.

Бірақ сенсорлық деректерді Node-Red-ге көрсетпес бұрын, бізге деректерді MySQL дерекқорына жүктеу әдісі қажет болды, ол үшін біз Raspberry Pi-де жұмыс істейтін Python сценарийін жасадық.

8 -қадам: Python

Python
Python

Python сценарийі Arduino-дан келетін сериялық байланыс туралы мәліметтерді алу үшін қолданылады. Содан кейін сценарий деректерді MySQL мәліметтер базасына жібереді.

Біз екі кітапхананы қолдандық: pyserial және mysqlclient.

Бірінші қадам - бұл екі кітапхананы жүктеу:

  1. PySerial
  2. MySQLclient

PySerial Arduino-дан деректерді сериялық байланыс арқылы жинау үшін қолданылады.

құрылғы = '/dev/ttyUSB0'

arduino = serial. Serial (құрылғы, 9600)

Бірінші жол біздің COM-портымызды анықтау үшін қолданылады. Raspberry Pi -де біз Arduino үшін қолданатын /dev /ttyUSB0. Екінші жол - Arduino сериялық портын ашуға арналған. Біз жай ғана COM-портын және қосылым қандай жылдамдықта жұмыс істейтінін анықтаймыз.

Кодтың қалған бөлігі уақытша циклде жұмыс істейді.

Содан кейін біз бірнеше Try and Except блоктарын қолданамыз. Алдымен код Try блогының ішінде жұмыс істеуге тырысады, егер ол сәтсіз болса, онда ол Except блогын іске қосады. Бірақ егер Try блогы жақсы жұмыс істесе, ол Exclusive блогын іске қоспайды, ол кодтың қалған бөлігін ғана іске қосады.

Try блоктарының ішінде бізде сериялық байланысты оқитын код бар, содан кейін оны MySQL дерекқорына жібереміз.

гигролист = arduino.readlines (1)

templist = arduino.readlines (2) humidlist = arduino.readlines (3)

Сонымен, жоғарыдағы код сериялық байланыстағы сызықтарды оқуға арналған. Кодтың соңындағы нөмір серияда оқылған жолды анықтайды. Сондықтан бұл сызықтар әр түрлі айнымалыларға жіктеледі.

Arduino -дан деректер алынған кезде, біз MySQL серверіне деректерді жіберу үшін mysqlclient модулін қолдандық.

db = _mysql.connect (хост = «sql7.freemysqlhosting.net», пайдаланушы = «sql7256552», passwd = «3ebtbP8FQ2», db = «sql7256552»)

Бұл жол MySQL мәліметтер базасына қосылуға арналған. Ол серверді, пайдаланушы атын, құпия сөзді және сервердің ішінде қандай дерекқорға қосылу керектігін көрсетеді. Мұнда сіз MySQL DB -ге қосылуды көрсетуіңіз керек.

db.query («INSERTINTO` TempHumid` (`temp`,` humid`, `hygro`) VALUES (%s, %s, %s)» %(temp, humid, hygro))

Сонымен, біз DB байланысын аламыз және SQL сұранысын жасаймыз. Сұрау мәндерді «TempHumid» кестесінің ішіне, содан кейін «темп», «ылғалды» және «гигро» бағандарына енгізу керектігін айтады. «(%S, %s, %s)» соңғы бөлігі жолды пішімдеу болып табылады және дерекқорға ол оқи алатын форматты беру үшін қолданылады.

Бұл әрекеттің барлығы уақытша циклге енгізіледі, осылайша біз деректерді MySQL серверіне жіберуді жалғастырамыз.

Егер сіз барлық кодты көргіңіз келсе, python сценарийін (TempHumid.py) жүктеңіз.

9 -қадам: MySQL

MySQL
MySQL
MySQL
MySQL

MySQL сервері үшін біз www.freemysqlhosting.net сайтында ақысыз қызметті қолдандық. Біз Raspberry Pi -де жергілікті сервер жасай алар едік, бірақ біз бұлтты/интернетке толық қосылу үшін ақысыз қызметпен жүрдік.

MySQL -ке кіру үшін сіз phpmyadmin.co сайтына кіріп, freemysqlhosting тіркелгісінен тіркелгі деректерімен кіруіңіз керек.

Ішке кіргенде, сіз «TempHumid» деп аталатын кесте жасауыңыз керек, осы кестенің ішінде «ID», «temp», «humid» және «hygro» деп аталатын 4 баған жасау керек. Бірінші бағанға (идентификатор) A_I (Авто ұлғайту) құсбелгісін қою керек. Бұл идентификатор бағанында әрбір деректер жиынтығына идентификатор беру үшін жасалады. Келесі барлық бағандар INT (бүтін сан) ретінде орнатылуы керек және стандартты мәнді NULL мәніне орнатыңыз.

10-қадам: Қызыл түйін

Қызыл түйін
Қызыл түйін
Қызыл түйін
Қызыл түйін
Қызыл түйін
Қызыл түйін

Біздің жобада графикалық интерфейс жасау үшін Node-Red қолданылды. Node-Red Raspberry Pi-де жұмыс істейді және MySQL дерекқорынан деректерді жинайды және бұл деректерді пончик тәрізді өлшегіштер мен графикалық диаграммалармен көрсетеді, осылайша соңғы пайдаланушы деректерді бақылай алады. Node-Red-дің ақылды жері-оны кез келген құрылғыда көруге болады, яғни мазмұнды қарап отырған құрылғы үшін сайттың өлшемі өзгертіледі.

Біздің Node-Red бағдарламасын орнату үшін 1-қадамды қараңыз және «Node-Red.docx» деп аталатын құжатты жүктеңіз. Содан кейін мәтінді жоғарғы оң жақ бұрыштағы импорттау функциясы арқылы Node-Red-ге көшіріңіз және қойыңыз.

Осыдан кейін MySQL ДБ үшін ДБ параметрлерін өзгертіңіз.

Ұсынылған: