Мазмуну:
- 1 -кадам: Компоненттер
- 2 -кадам: БАЙЛАНЫШТАР
- 3 -кадам: КОДГОРЛОО
- 4 -кадам: ЧЫГУУ
- 5 -кадам: График
- 6 -кадам: Бул жерде Breif түшүндүрмөсүнүн видеосу
Video: Thingsai.io Iot Cloud Platform колдонуп кыймыл детектору: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Бул окуу куралында мен PIR сенсорун жана Esp32 менен IOT булут платформасы Thingai.io аркылуу кыймыл аныктоо жөнүндө түшүндүрүп берейин деп жатам.
1 -кадам: Компоненттер
ЖАБДУУЛУКТУН КОМПОНЕНТТЕРИ;
1.esp32 өнүктүрүү кеңеши
2. PIR сенсор
3. Jumper Wires
ПРОГРАММА:
1. Arduino IDE
2. Thingsai.io эсеби
2 -кадам: БАЙЛАНЫШТАР
Байланыштар тынч.
PIR PINS ------------ ESP32 PINS
Vp3 ------------------- 3V3 on esp32
GND ------------------ GND esp32 боюнча
OUT ------------------- D22 esp32 боюнча
3 -кадам: КОДГОРЛОО
Бул кодду Arduino IDEге бир аз жаңыртуу менен чаптаңыз, Motion сенсоруңуз кемчиликсиз чыгарууну берет.
#кошуу
#кошуу
#кошуу
int count = 0, i, m, j, k;
int t, t1, t2, t3;
int pin = 22;
///////////////////////////////////////// БҮТКҮЛ БАРДЫК ДЕКЛАРАЦИЯЛАР ////// //////////////////////////
const char* host = "api.thingsai.io"; // ЖЕ хост = devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // ЖЕ/api/v2/thingscloud2/_table/data_ac
const char* time_server = "baas.thethingscloud.com"; // бул убакыт белгисин которуу
const int httpPort = 80;
const int httpsPort = 443;
const char* server = "api.thingsai.io"; // Server URL
char убакыт белгиси [10];
WiFiMulti WiFiMulti;
// TCP байланыштарын түзүү үчүн WiFiClient классын колдонуңуз
WiFiClient кардары;
/////////////////////////////////////////////////////// TIMESTAMP CALCULATION функциясы //////// /////////////////////////////////
int GiveMeTimestamp ()
{
кол коюлбаган узак күтүү = millis ();
// WiFiClient кардары;
while (client.available () == 0)
{
эгер (миллис () - тайм -аут> 50000)
{
client.stop ();
return 0;
}
}
while (client.available ())
{
Сап сабы = client.readStringUntil ('\ r'); // indexOf () -бул smthng издөө функциясы, ал табылбаса -1 кайтарат
int pos = line.indexOf ("\" убакыт белгиси / ""); // "\" убакыт белгисин / "" издеп, жооптун башынан бери бардык маалыматтарды көчүрүп алыңыз, бул сиздин убакыт белгиси болот
эгер (pos> = 0)
{
int j = 0;
үчүн (j = 0; j <10; j ++)
{
убакыт белгиси [j] = сызык [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
жараксыз орнотуу ()
{
Serial.begin (115200);
кечигүү (10);
pinMode (пин, INPUT);
// Биз WiFi тармагына туташуудан баштайбыз
WiFiMulti.addAP ("wifi_name", "Wifi_password");
Serial.println ();
Serial.println ();
Serial.print ("WiFi күтө туруңуз …");
while (WiFiMulti.run ()! = WL_CONNECTED) {
Serial.print (".");
кечигүү (500);
}
Serial.println ("");
Serial.println ("WiFi туташты");
Serial.println ("IP дареги:");
Serial.println (WiFi.localIP ());
кечигүү (500);
}
боштук цикл ()
{
int analogValue = analogRead (outputpin);
{
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////
{
bool isDetected = digitalRead (pin);
if (isDetected) {
Serial.println ("Бар экендиги аныкталды");
}
кечигүү (500);
}
Serial.print ("туташуу");
Serial.println (кабыл алуучу); // тескери аныкталган:- хост = devapi2.thethingscloud.com же 139.59.26.117
///////////////////////////////////////////////////// TIMESTAMP CODE SNIPPET /////////// /////////////////
Serial.println ("ичинде убакыт белгисин алуу / n");
if (! client.connect (time_server, {
кайтуу; //*-*-*-*-*-*-*-*-*-*-*
}
client.println ("Get/api/timestamp HTTP/1.1"); // Бул бөлүк эмне кылып жатат, мен түшүнгөн жокмун
client.println ("Хост: baas.thethingscloud.com");
client.println ("Cache-Control: no-cache");
client.println ("Почтачы-Токен: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // ал серверден убакыт белгисине жооп ала турган функцияны чакырат
Serial.println ("убакыт белгиси алынды");
Serial.println (убакыт белгиси);
Serial.println ("ThingsCloudPost ичинде");
String PostValue = "{" device_id / ": 61121695839, \" slave_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + убакыт белгиси;
PostValue = PostValue +", \" data / ": {" PIR / ":" +pin +"}" +"}";
Serial.println (PostValue);
/ * WiFiClientSecure экземплярын түзүү */
WiFiClientSecure кардары;
Serial.println ("443 порт аркылуу серверге туташуу");
if (! client.connect (server, 443)) {
Serial.println ("Туташуу ишке ашкан жок!");
} башка {
Serial.println ("Серверге туташты!");
/ * HTTP өтүнүчүн түзүү */
client.println ( POST/devices/deviceData
client.println ("Хост: api.thingsai.io");
//client.println("Байланыш: жабуу ");
client.println ("Content-Type: application/json");
client.println ("cache-control: no-cache");
client.println ("Уруксат: алып жүрүүчү eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNT")
client.print ("Content-Length:");
client.println (PostValue.length ());
client.println ();
client.println (PostValue);
/////////////////////////////////////////////// Булуттагы маалыматты жайгаштыруу бүтүп, эми жооп формасын булутка алуу сервер ////////////////////
Serial.print ("Жооп күтүлүүдө");
while (! client.available ()) {
кечиктирүү (50); //
Serial.print (".");
}
/ * эгерде маалыматтар бар болсо, аны кабыл алып, Терминалга басып чыгарыңыз */
while (client.available ()) {
char c = client.read ();
Serial.write (c);
}
/ * эгерде сервер ажыратылса, кардарды токтотуу */
if (! client.connected ()) {
Serial.println ();
Serial.println ("Сервер ажыратылды"); javascript:;
client.stop ();
}
}
Serial.println ("/////////////////////// АКЫРЫ ///////////////////// ");
кечигүү (3000);
}
}
4 -кадам: ЧЫГУУ
Бул сенсордон нерселерде, io булут платформасында окулган маанилердин тилкеси графиги,
5 -кадам: График
Бул сенсордон алынган баалуулуктардын графикалык көрүнүшү. Жогорудагы графиктен сенсордун колдонулушун талдай алабыз. Рахмат
Сунушталууда:
Ардуино жана электромагниттик клапанды колдонуп, кыймыл датчиги суу краны - DIY: 6 кадам
Ардуино жана электромагниттик клапанды колдонуу менен кыймылдын сенсоруна суу таптоочу - DIY: Бул долбоордо мен электромагниттик клапандын жардамы менен кыймыл сенсорунун суу кранын кантип курууну көрсөтөм. Бул долбоор колдогу суу краныңызды кыймыл аныктоонун негизинде башкарыла турган кранга айландырууга жардам берет. IR сенсорунун интерфейси колдонулууда
NodeMCU колдонуу менен кыймыл детектору: 5 кадам
NodeMCU колдонуу менен кыймыл детектору: Бул долбоордо жөн гана кыймыл сенсорун колдонуу менен сиз кандайдыр бир адамдын же жаныбардын бар экендигин аныктай аласыз. Жана нерселер деп аталган платформа аркылуу сиз анын бар экендиги аныкталган күндү жана убакытты көзөмөлдөй аласыз
Кыймыл детектору Активацияланган Vanity Light: 6 кадам
Кыймыл детектору жандандырылган шам: Мен eBayден инфракызыл кыймыл детекторунун бирдигин 1,50 долларга сатып алдым жана аны жакшы колдонууну чечтим. Мен өзүм кыймыл детекторунун тактасын жасамакмын, бирок 1.50 долларга (анын ичинде сезгичтигин жөнгө салуу жана таймерди өчүрүү үчүн 2 казан бар), бул болбойт
Чакан диапазондогу кыймыл детектору: 5 кадам
Чакан диапазондогу кыймыл детектору: Бул көрсөтмө сизге Radioshackтен ала турган арзан бөлүктөрдөн кичинекей диапазондогу кыймыл детекторун жасоону үйрөтөт. Бул тыкан долбоор менен сиз детектордун жарыктыгын өзгөртө аласыз. Бул менин биринчи көрсөтмөм, андыктан жөнөкөйлүгүн эске алыңыз
Blynk эскертмелери менен кыймыл детектору (WeMos D1 Mini + HC-SR04): 4 кадам (сүрөттөр менен)
Blynk эскертмелери менен кыймыл детектору (WeMos D1 Mini + HC-SR04): Сураныч, бул долбоор үчүн Зымсыз Конкурста ДОБУШ бергиле. Рахмат! Жаңыртуу №2 - Бир нече өзгөртүүлөр (2.2 версиясы), сенсорду (диапазону жана атын) туура аныктамада орното аласың. Ошондой эле, кээде сенсор туура эмес маанилерди окуп, эскертме жөнөткөн учурлар болгон