Съдържание:
- Стъпка 1: Ръководство за инсталиране
- Стъпка 2: Витрина на контрола
- Стъпка 3: Списък на части/софтуер, използвани в проекта
- Стъпка 4: I/0 списък
- Стъпка 5: Схема на свързване
- Стъпка 6: Кодът на Arduino
- Стъпка 7: Raspberry Pi 3 B+
- Стъпка 8: Python
- Стъпка 9: MySQL
- Стъпка 10: Node-Red
Видео: UCL - IIOT Оранжерия: 11 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Този проект е продължение на нашия по-ранен проект с оранжерията (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).
В този проект добавихме база данни, където регистрираме всички наши данни и след това ги визуализираме с node-red за по-голям преглед.
Съдържанието, което регистрираме в нашата база данни, е Влажност, Температура и влага на почвата, което е показано в различни диаграми.
Освен dataloggin, ние също можем да контролираме кой профил е активен в оранжерията и да го контролираме дистанционно.
Тогава ние също можем да управляваме помпата и вентилатора ръчно.
Стъпка 1: Ръководство за инсталиране
Първата стъпка е да инсталирате всички различни компоненти.
Вътре в скобите () изброихме къде е свързан компонентът. Така например, Arduino е свързан към Raspberry Pi чрез USB кабел.
Използван хардуер:
- Arduino (Raspberry Pi)
- Малина Pi 3 B+
- Почвен хигрометър (Arduino)
- DHT11 сензор (Arduino)
- Потопяема водна помпа HG-320 (реле)
- 5V реле (Arduino)
- Компютърен вентилатор (реле)
- 230V захранване (помпа)
Използваният софтуер:
- Raspbian (ОС за Raspberry Pi)
- Arduino IDE
- Python (Raspberry Pi)- PySerial- MySQLclient
- Node-Red (Raspberry Pi)- Pythonshell- Summariser- MySQL- Табло за управление
- MySQL сървър (freemysqlhosting.net)
Първо ще трябва да свържете хардуерните компоненти, така че следвайте това ръководство, за да изградите оранжерията: Ръководство за инсталиране.
След това ще трябва да инсталирате Raspbian OS на вашия Raspberry Pi. След това ще трябва да инсталирате Python и след това да инсталирате библиотеките на python.
Следващата стъпка е да инсталирате Node-Red на Raspberry Pi, след което отидете до мениджъра на палитри и инсталирайте модулите, посочени по-рано.
След това отидете на този сайт Free MySQL Server и създайте безплатен MySQL сървър.
Когато всичко това е направено, вие сте готови да прехвърлите скрипта на python към вашия Raspberry Pi, да импортирате скрипта Node-Red и да качите кода за Arduino.
Стъпка 2: Витрина на контрола
Стъпка 3: Списък на части/софтуер, използвани в проекта
Използвахме следната технология за направата на оранжерията
- Arduino
- Малина Пи
- Node-Red
- Python
- PHPMyAdmin
Стъпка 4: I/0 списък
Стъпка 5: Схема на свързване
Стъпка 6: Кодът на Arduino
Кодът на Arduino работи, като отпечатва данните, измерени от сензорите, към серийната връзка, където се чете от Raspberry Pi и се прехвърля в базата данни.
Arduino също има някои цифрови входни щифтове, свързани с Raspberry Pi, които Arduino чете и ако един от трите стане HIGH, профилът ще се промени поради IF изявление.
Също така сме надстроили кода, за да използваме Millis вместо забавяне, което позволява бутоните и останалата част от кода да се четат през цялото време вместо интервал от старото забавяне.
Стъпка 7: Raspberry Pi 3 B+
Използвахме Raspberry Pi 3 B+ за свързване на нашия Arduino с интернет и MySQL база данни. Това ни даде възможност да съхраняваме данни от нашите сензори и да направим визуален интерфейс за крайния потребител. За потребителския интерфейс използвахме Node-Red с палитрата Dashboard.
Но преди да можем да покажем нашите сензорни данни на Node-Red, имахме нужда от начин да качим данните в база данни MySQL и за това направихме скрипт на Python, който да работи на нашия Raspberry Pi.
Стъпка 8: Python
Скриптът Python се използва за получаване на данни от серийната комуникация, идваща от Arduino. След това скриптът изпраща данните в база данни MySQL.
Използвахме две библиотеки, pyserial и mysqlclient.
Така че първата стъпка би била да изтеглите тези две библиотеки:
- PySerial
- MySQLclient
PySerial се използва за събиране на данни от Arduino чрез серийна комуникация.
устройство = '/dev/ttyUSB0'
arduino = сериен. Сериен (устройство, 9600)
Първият ред се използва за определяне на нашия COM-порт. На Raspberry Pi използваме /dev /ttyUSB0 за Arduino. Вторият ред е за отваряне на серийния порт към Arduino. Ние просто дефинираме кой COM-порт и с каква скорост работи връзката.
Останалата част от кода работи в цикъл while.
След това използваме множество блокове Try и Except. Първо кодът се опитва да се изпълни в блока Try, ако това не успее, той изпълнява блока Except. Но ако блокът Try работи добре, той не изпълнява блока Except, той просто изпълнява останалата част от кода.
Така че в блоковете Try имаме код, който ще прочете серийната комуникация и след това ще го изпрати до нашата база данни MySQL.
hygrolist = arduino.readlines (1)
templist = arduino.readlines (2) humidlist = arduino.readlines (3)
Така че горният код е за четене на редове в серийната комуникация. Номерът в края на кода определя реда, който е прочетен в поредицата. Така че тези редове са категоризирани в различни променливи.
Когато се получат данни от Arduino, използвахме модула mysqlclient за изпращане на данните към нашия MySQL сървър.
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“и след това в колоните „temp“, „humid“и „hygro“. Последната част „(%s, %s, %s)“е форматиране на низ и се използва, за да даде на базата данни формат, който може да чете.
И цялото това действие се поставя в цикъл while, така че да продължаваме да получаваме данни, изпратени до MySQL сървъра.
Ако искате да видите целия код, изтеглете скрипта на python (TempHumid.py).
Стъпка 9: MySQL
За MySQL сървъра използвахме безплатна услуга на www.freemysqlhosting.net. Можехме да направим сървър локално на Raspberry Pi, но отидохме с безплатната услуга, за да го направим напълно свързан с облака/интернет.
За да получите достъп до MySQL, трябва да отидете на phpmyadmin.co и да влезете с идентификационните данни от вашия акаунт на freemysqlhosting.
Когато сте вътре, трябва да създадете таблица, наречена "TempHumid", вътре в тази таблица трябва да създадете 4 колони, наречени "ID", "temp", "humid" и "hygro". Първата колона (ID) трябва да поставите отметка в квадратчето A_I (Автоматично увеличаване). Това е така, че колоната ID дава на всеки набор от данни идентификатор. Всички следващи колони трябва да бъдат зададени като INT (цяло число) и да зададат стандартната стойност на NULL.
Стъпка 10: Node-Red
В нашия проект използвахме Node-Red за създаване на графичен интерфейс. Node-Red работи на Raspberry Pi и събира данни от нашата база данни MySQL и показва тези данни с габарити във формата на поничка и графични диаграми, така че крайният потребител да може да следи данните. Най-интелигентното за Node-Red е, че той може да се види на всяко устройство, което означава, че сайтът ще бъде преоразмерен за даденото устройство, което преглежда съдържанието.
За да инсталирате нашето програмиране на Node-Red, погледнете стъпка 1 и изтеглете документа, наречен "Node-Red.docx". След това копирайте и поставете текста в Node-Red чрез функцията за импортиране в горния десен ъгъл.
След това променете настройките на DB за вашата MySQL DB.
Препоръчано:
Автоматична вътрешна оранжерия на базата на Ikea Socker: 5 стъпки
Автоматична закрита оранжерия на базата на Ikea Socker: Здравейте, това е първият ми инструктаж. Научих много с тази общност и мисля, че е време да върна скромните си идеи. Съжалявам за моя английски, лош е, но ще направя всичко възможно. Идеята беше да направя оранжерия deskop, която да ми позволи да отглеждам семена и
Автоматизиране на оранжерия с LoRa! (Част 2) -- Моторизирано отваряне на прозорци: 6 стъпки (със снимки)
Автоматизиране на оранжерия с LoRa! (Част 2) || Моторизирано отваряне на прозорци: В този проект ще ви покажа как създадох моторизирано отваряне на прозорци за моята оранжерия. Това означава, че ще ви покажа какъв двигател използвах, как проектирах действителната механична система, как управлявам двигателя и накрая как използвах Arduino LoRa
Greentent - първата в света мини преносима оранжерия с измерване на температурата и влажността на Arduino: 3 стъпки
Greentent - Първата в света мини преносима оранжерия с измерване на температурата и влажността на Arduino: За първи път ми хрумна идеята за преносима оранжерия, която можете да се движите през нощта, когато исках да направя начин да имам малка градина в кутия с контролирана температура и Влажност.Така че е късно през нощта и искам да отида в магазин, за да си взема тези су
Страхотна оранжерия с автоматично поливане, интернет връзка и много повече: 7 стъпки (със снимки)
Страхотна оранжерия с автоматично поливане, интернет връзка и много повече: Добре дошли в тази инструкция. В началото на похода бях в градински магазин и видях някои оранжерии. И тъй като отдавна исках да направя проект с растения и електроника, продължих и купих такъв: https://www.instagram.com/p
MAG (Миниатюрна автоматична оранжерия): 9 стъпки
MAG (Миниатюрна автоматична оранжерия): Майка ми през повечето време е доста заета. Затова исках да й помогна, като автоматизирам оранжериите й. По този начин тя може да спести малко време, тъй като няма да се налага да полива растенията. Ще успея да постигна това с MAG (Миниатюрна автоматична градина). Както в