Изпращане на данни с Ардуино на уеб-сървър оформление поискване
Здравейте скъпи потребители на сайта "запояване", днес бих искал да сподели своя опит в проектирането и разработването на устройства, работещи с Ардуино, чиято основна задача е да се съберат данни от датчиците и ги изпраща на пълноправен WEB-сървър с PHP / MySQL.
Изчислителна мозъка на устройството е на платформата Arduino UNO, общуването с мрежата чрез Ethernet Shield, в допълнение, аз инсталиран LCD клавиатура Shield за показване на информация за състоянието на различни устройства и команди, и инсталиране на всички налични датчици и релета.
Пълен списък на използваните компоненти:
- Arduino ООН - мозъка на системата;
- Ethernet Shield - свързване към мрежата;
- LCD клавиатура Shield - дисплей за показване на информация;
- DHT11 - температура и влажност сензор;
- Сензор за движение;
- Модулът реле;
- Дистанционно управление.
Не е задължително да има пълен списък с аксесоари, кодът е написана по такъв начин, че да може лесно да бъде пренаписана, за да отговаря на нуждите ви.
Разберете как неизменна истина, че чудеса не се случват в света на информационните технологии, и ако устройството не работи по начина, по който мислите за него, това означава, че е направил нещо нередно.
Така че, нека първо разгледаме как да се направи, за да изпратите заявка към уеб-сървър. Ако мислите, че това е твърде трудно, тогава вие грешите. Човекът е така учреденото, това просто не е в състояние да създаде нещо трудно, в това, което той самият не можеше да разбере.
В момента има едно устройство на базата на Ардуино, с което искате да изпратите заявка към уеб-сървър. Инициатор на обмена на данни обикновено е браузър, в този случай - Arduino. Уеб-сървър на никого, и никога не ще изпрати всичко, за да го, че нещо трябва да се изпраща на клиента, клиентът го попитах за това. Най-простият искането HTTP може да изглежда така:
В този случай, по искане на сървъра, е както следва:
Скица на програмата е, както следва:
Както споменах по-горе, в едно устройство Използвах също и други сензори, във връзка с които скица на моето устройство е както следва:
Нашата устройство на базата на Ардуино ще изпрати към сървъра на различни данни в различни интервали, това се прави с база данни MySQL не замърсява прекалено много информация на данните. Така например, се установи, че данните за състоянието на сензори (датчици за движение, релета и т.н.), ще бъдат изпратени на интервали от 2 минути. и данните за температурата и влажността на всеки 4 часа.
Наемете пълноправен уеб сървър, ние, разбира се, не ще, защото това е скъпо, а е просто неразумно, ще управлява хостинг услуги. Хостинг - това не е компютър, а не програма, както и услугата за предоставяне на уебмастера за това на своите сървъри в сайта. Хостинг Изисквания са минимални: PHP не е по-нисък от 5.3, MySQL СУБД.
Кодът на страната на сървъра, прикрепена към тази статия. За удобство, тя е разделена на няколко файла:
- /system/core.php - «ядро» на нашия сървър, където данните са написани да се свърже с базата данни.
- /system/functions.php - тук тя съдържа различни потребителски дефинирани функции, които ще бъдат необходими, когато се работи.
- / Стил / - CSS стилове.
- .Htaccess - Съдържа настройките за сървъра. настройка по подразбиране Часовата зона 3 (София).
- _sever.sql - сметището на базата данни. Този файл трябва да бъдат внесени в базата данни.
- Index.php - основната ни файл (страница), който ще се появи информация за състоянието на сензора.
- Add.php - този файл ще получава и обработва данни от Ардуино.
За нашата единствена устройство може да изпраща данни към сървъра, ние получаваме заявка ще предават на специален код (ключ), сякаш за да потвърди факта, че данните, всъщност трансфери Arduino.
В статията, аз не се допира на въпроса как да се справят с отговор от сървъра (ако искаме да контролирате устройството чрез интернет), аз го направих така, защото нашият сървър част не е защитено, т.е. Всеки може да посети сайта и да видите информация за сензорите за движение и т.н. В тази връзка, че е необходимо да се организира пълноправен auntifikatsiyu на PHP и MySQL, и това по никакъв начин не отговарят на темата на ресурса.