Talaan ng mga Nilalaman:
- Hakbang 1: Paglikha at Pag-log in sa THINGSIO Platform
- Hakbang 2: Lumilikha ng Bagong Project
- Hakbang 3: Lumilikha ng isang Bagong Device
- Hakbang 4: Pagtukoy sa Parameter ng Device
- Hakbang 5: Ina-update ang Device
- Hakbang 6: Pag-coding
- Hakbang 7: Pagpili ng Lupon at Com Port
- Hakbang 8: Mga Koneksyon sa Circuit
- Hakbang 9: Mag-ipon at Mag-upload
- Hakbang 10: Serial Monitor
- Hakbang 11: Mga Pagbasa
- Hakbang 12: Kinatawan ng Grapiko
- Hakbang 13:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
HOY…. Ngayon ay matututuhan natin ang tungkol sa pagsukat ng tindi ng ilaw at pag-post ng mga halaga sa cloud platform ng THINGAI IOT sa pamamagitan ng paggamit ng ESP32.
Ang mga kinakailangan upang gawin ang proyektong ito ay
1. ESP32 Development Board (Gumamit ako ng ESP32 DEVKIT V1)
2. sensor ng LDR
3. Jumper Wires
4. Mag-account sa THINGSAI IOT PLATFORM
Hakbang 1: Paglikha at Pag-log in sa THINGSIO Platform
Mag-login sa account ng THINGS AI. Kung bago ka pagkatapos magparehistro sa account sa pamamagitan ng pagpindot sa pindutan ng rehistro at punan ang lahat ng mga kredensyal. Malilikha ang iyong account at mula noon magagawa mong gumana sa cloud platform at likhain ang iyong pasadyang proyekto
Hakbang 2: Lumilikha ng Bagong Project
Matapos mag-log in sa account, upang lumikha ng isang proyekto mag-click lamang sa bagong proyekto at pagkatapos ay ibigay ang pangalan ng proyekto.
Hakbang 3: Lumilikha ng isang Bagong Device
pagkatapos likhain ang proyekto ang susunod na kailangan mong gawin ay lumikha ng isang bagong aparato. Ibigay ang pangalan ng aparato at ipasok ang aparato ID alinman sa mano-mano o nabuong system.
Hakbang 4: Pagtukoy sa Parameter ng Device
Ibigay ang parameter ng aparato at pagkatapos ay piliin ang uri ng parameter
Hakbang 5: Ina-update ang Device
Piliin ang parameter at pagkatapos ay i-update ang aparato
Hakbang 6: Pag-coding
Mula sa mga sample code piliin ang code ng esp32 kopyahin ito at pagkatapos ay i-paste ito sa arduino IDE at gawin ang mga kinakailangang pagbabago ayon sa kinakailangan. Naibigay ko ang code sa ibaba
# isama ang # isama
# isama
int count = 0, i, m, j, k;
int t; int outputpin = A0; // ds18b20
int sensorvalue;
// ///. // ///.
const char * host = "api.thingsai.io"; // O
host = devapi2.thethingscloud.com
const char * post_url = "/ aparato / aparatoData"; // OR / api / v2 / thingscloud2 / _table / data_ac
const char * time_server = "baas.thethingscloud.com"; // ito ay upang i-convert ang timestamp
const int httpPort = 80;
const int httpsPort = 443;
const char * server = "api.thingsai.io"; // Server URL
timestamp ng char [10];
WiFiMulti WiFiMulti;
// Gumamit ng klase ng WiFiClient upang lumikha ng mga koneksyon sa TCP
Client ng WiFiClient;
// ///. // ///. // client ng WiFiClient;
habang (client.available () == 0)
{
kung (millis () - timeout> 50000)
{
client.stop (); ibalik ang 0;
}
}
habang (client.available ())
{
String line = client.readStringUntil ('\ r'); // indexOf () ay isang funtion upang maghanap para sa smthng, nagbabalik ito ng -1 kung hindi nahanap
int pos = line.indexOf ("\" timestamp / ""); // search for "\" timestamp / "" mula sa simula ng pagtanggap nakuha at kopyahin ang lahat ng data pagkatapos nito, ito ang magiging timestamp mo
kung (pos> = 0)
{
int j = 0;
para sa (j = 0; j <10; j ++)
{
timestamp [j] = linya [pos + 12 + j];
}
}
}
} ////////////////////////////////////////////////////////////////////////////////////////////////////////
walang bisa ang pag-setup ()
{
Serial.begin (115200);
antala (10);
// Nagsisimula kami sa pamamagitan ng pagkonekta sa isang WiFi network
WiFiMulti.addAP ("wifi", "pswrd");
Serial.println ();
Serial.println ();
Serial.print ("Maghintay para sa WiFi …");
habang (WiFiMulti.run ()! = WL_CONNected)
{
Serial.print (".");
pagkaantala (500);
}
Serial.println ("");
Serial.println ("Konektado sa WiFi");
Serial.println ("IP address:"); Serial.println (WiFi.localIP ());
pagkaantala (500);
}
walang bisa loop ()
{
int analogValue = analogRead (outputpin);
{// ///. // // // ///.
sensorvalue = analogRead (A0); // basahin ang analog input pin 0
sensorvalue = sensorvalue / 100;
Serial.print (sensorvalue, DEC); // naglimbag ng nabasang halagang
Serial.print ("\ n"); // naglilimbag ng puwang sa pagitan ng mga numero
pagkaantala (1000); // wait 100ms para sa susunod na pagbabasa
Serial.print ("pagkonekta sa"); Serial.println (host); // tinukoy nang paitaas: - host = devapi2.thethingscloud.com o 139.59.26.117
// ///. // ///.
Serial.println ("sa loob makakuha ng timestamp / n");
kung (! client.connect (time_server, {bumalik; // * - * - * - * - * - * - * - * - * - *}
client.println ("GET / api / timestamp HTTP / 1.1"); // Ano ang ginagawa ng bahaging ito, hindi ako nakakuha ng client.println ("Host: baas.thethingscloud.com");
client.println ("Cache-Control: no-cache");
client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // tatawagan nito ang pagpapaandar na makakakuha ng tugon ng timestamp mula sa server Serial.println ("natanggap ang timestamp");
Serial.println (timestamp);
Serial.println ("sa loob ng ThingsCloudPost");
String PostValue = "{" device_id / ": 61121695844, \" slave_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + timestamp;
PostValue = PostValue + ", \" data / ": {" INTENSITY / ":" + / sensorvalue + "}" + "}";
Serial.println (PostValue);
/ * Lumikha ng isang halimbawa ng WiFiClientSecure * / WiFiClientSecure client;
Serial.println ("Kumonekta sa server sa pamamagitan ng port 443");
kung (! client.connect (server, 443))
{
Serial.println ("Nabigo ang koneksyon!");
}
iba pa
{Serial.println ("Nakakonekta sa server!"); / * lumikha ng kahilingan sa HTTP * /
client.println ("POST / aparato / aparatoData HTTP / 1.1");
client.println ("Host: api.thingsai.io"); //client.println("Connection: close "); cl
ient.println ("Uri ng Nilalaman: application / json");
client.println ("cache-control: no-cache");
client.println ("Awtorisasyon: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNT6X79f9) client.print ("Haba ng Nilalaman:");
client.println (PostValue.length ());
client.println ();
client.println (PostValue); // ///. server // ///.
Serial.print ("Naghihintay para sa tugon");
habang (! client.available ()) {
antala (50); //
Serial.print (".");
} / * kung ang data ay magagamit pagkatapos ay tumanggap at mag-print sa Terminal * /
habang (client.available ())
{
char c = client.read ();
Serial.write (c);
}
/ * kung naka-disconnect ang server, itigil ang client * /
kung (! client.connected ())
{
Serial.println ();
Serial.println ("Nakakonekta ang server");
client.stop ();
}
} Serial.println ("// ///. ///. / ");
pagkaantala (3000); }}
Hakbang 7: Pagpili ng Lupon at Com Port
Mula sa mga tool piliin ang board at pagkatapos ay piliin ang com port
Hakbang 8: Mga Koneksyon sa Circuit
Tapos na ang pag-coding pagkatapos ay gawin ang mga sumusunod na koneksyon tulad ng nabanggit sa ibaba
Mga koneksyon
GND ng esp32 sa GND ng LDR sensor
3V3 0f esp32 sa Vcc ng LDR
VP ng esp32 sa A0 ng LDR
Hakbang 9: Mag-ipon at Mag-upload
ipunin at i-upload ang code sa esp32 at pagkatapos ay basahin ang mga pagbabasa mula sa serial monitor. Iyon ay magpapakita ng isang resulta ng isang bagay tulad nito
Hakbang 10: Serial Monitor
Ang mga halaga ay nakuha sa serial monitor at pagkatapos ay ipinadala ang mga ito sa THINGSAI IOT Cloud platform.
Hakbang 11: Mga Pagbasa
Ipinapakita nito ang mga halagang nakuha mula sa board ng esp32.
Hakbang 12: Kinatawan ng Grapiko
Ito ang grapikong representasyon ng mga nakuha na halaga. Katapusan na ng tutorial. Sana naintindihan mo. Salamat