![IOT met mobiel netwerk met ESP32 - Ajarnpa IOT met mobiel netwerk met ESP32 - Ajarnpa](https://i.howwhatproduce.com/images/006/image-16810-12-j.webp)
Inhoudsopgave:
- Stap 1: Demonstratie
- Stap 2: Montage
- Stap 3: Montage - Tafel
- Stap 4: Ubidots
- Stap 5: SimpleDHT-bibliotheek
- Stap 6: PubSubClient-bibliotheek
- Stap 7: TinyGSM-bibliotheek
- Stap 8: TFT_eSPI-bibliotheek
- Stap 9: TFT_eSPI-bibliotheek
- Stap 10: Ubidots
- Stap 11: De gegevens wijzigen in.ino
- Stap 12: GPRS_ESP32_DHT.ino - Declaraties en variabelen
- Stap 13: Vastzetten
- Stap 14: Instellen
- Stap 15: Display instellen
- Stap 16: GSM instellen
- Stap 17: ConnectMQTTServer
- Stap 18: Loop
- Stap 19: LeesDHT
- Stap 20: PublishMQTT
- Stap 21: CreateJsonString
- Stap 22: ShowDataOnDisplay
- Stap 23: Bestanden
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
![Image Image](https://i.howwhatproduce.com/images/006/image-16810-14-j.webp)
![](https://i.ytimg.com/vi/U_KYGe7ZyKM/hqdefault.jpg)
![Demonstratie Demonstratie](https://i.howwhatproduce.com/images/006/image-16810-15-j.webp)
Vandaag zullen we het hebben over de GPRS-modem, of beter gezegd, de ESP32 en het gebruik ervan met het mobiele telefoonnetwerk. Dit is iets dat heel goed werkt. Met behulp van het MQTT-protocol sturen we vervolgens gegevens naar het Ubidots-dashboard. Gebruik in deze assembly een display voor feedback van het circuit, naast de SIM800L en een mobiele telefoonchip. Met dit project zullen we daarom temperatuur- en vochtigheidsgegevens via GPRS en MQTT verzenden en de gegevens visualiseren in een lijndiagram.
Stap 1: Demonstratie
Stap 2: Montage
![samenkomst samenkomst](https://i.howwhatproduce.com/images/006/image-16810-16-j.webp)
Stap 3: Montage - Tafel
![Montage - Tafel Montage - Tafel](https://i.howwhatproduce.com/images/006/image-16810-17-j.webp)
Stap 4: Ubidots
![Ubidots Ubidots](https://i.howwhatproduce.com/images/006/image-16810-18-j.webp)
Stap 5: SimpleDHT-bibliotheek
![SimpleDHT-bibliotheek SimpleDHT-bibliotheek](https://i.howwhatproduce.com/images/006/image-16810-19-j.webp)
Ga in de Arduino IDE naar Sketch-> Include Library-> Manage Libraries …
Installeer SimpleDHT
Stap 6: PubSubClient-bibliotheek
![PubSubClient-bibliotheek PubSubClient-bibliotheek](https://i.howwhatproduce.com/images/006/image-16810-20-j.webp)
Ga in de Arduino IDE naar Sketch-> Include Library-> Manage Libraries …
Installeer PubSubClient
Stap 7: TinyGSM-bibliotheek
![TinyGSM-bibliotheek TinyGSM-bibliotheek](https://i.howwhatproduce.com/images/006/image-16810-21-j.webp)
Ga in de Arduino IDE naar Sketch-> Include Library-> Manage Libraries …
Installeer TinyGSM
Stap 8: TFT_eSPI-bibliotheek
![TFT_eSPI-bibliotheek TFT_eSPI-bibliotheek](https://i.howwhatproduce.com/images/006/image-16810-22-j.webp)
Ga in de Arduino IDE naar Sketch-> Include Library-> Manage Libraries …
Installeer TFT_eSPI
Stap 9: TFT_eSPI-bibliotheek
![TFT_eSPI-bibliotheek TFT_eSPI-bibliotheek](https://i.howwhatproduce.com/images/006/image-16810-23-j.webp)
Wijzig de weergavepinnen in de lib-map.
Het vastzetten bevindt zich in het User_Setup.h-bestand in
C: / Users / \ Documents / Arduino / libraries / TFT_eSPI
Wijzig deze standaardwaarden in de volgende waarden in de afbeelding.
Stap 10: Ubidots
![Ubidots Ubidots](https://i.howwhatproduce.com/images/006/image-16810-24-j.webp)
![Ubidots Ubidots](https://i.howwhatproduce.com/images/006/image-16810-25-j.webp)
![Ubidots Ubidots](https://i.howwhatproduce.com/images/006/image-16810-26-j.webp)
Log in op Ubidots met uw account en klik op Apparaten
Klik op de "+" knop in de rechterbovenhoek
Klik op Leeg
Voer de apparaatnaam in. Let op het "apparaatlabel", aangezien dit zal worden gebruikt in het "onderwerp" dat we zullen gebruiken in.ino
In de lijst met apparaten verschijnt het apparaat dat u zojuist hebt gemaakt. Klik erop.
Klik op het scherm dat verschijnt op 'Variabele toevoegen'. Er verschijnt een pop-up. Klik op "Rauw".
Klik op het tekstvak en voer de naam van de eigenschap in.
Het moet precies zijn wat we in de json van de.ino zullen sturen. Herhaal dit voor de andere eigenschap.
Ga terug naar het dashboard door op het Ubidots-logo te klikken.
Klik in het dashboard op "Nieuwe widget toevoegen"
Kies in de lijst met widgets "Dubbele as"
Stap 11: De gegevens wijzigen in.ino
![De gegevens in.ino. wijzigen De gegevens in.ino. wijzigen](https://i.howwhatproduce.com/images/006/image-16810-27-j.webp)
![De gegevens in.ino. wijzigen De gegevens in.ino. wijzigen](https://i.howwhatproduce.com/images/006/image-16810-28-j.webp)
Stap 12: GPRS_ESP32_DHT.ino - Declaraties en variabelen
![GPRS_ESP32_DHT.ino - Declaraties en variabelen GPRS_ESP32_DHT.ino - Declaraties en variabelen](https://i.howwhatproduce.com/images/006/image-16810-29-j.webp)
#define TINY_GSM_MODEM_SIM800 //Gebruiksmodem #include #include #include #include #include //Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrstuvwxyz0123" //define TINY_GSM_MODEM_SIM800 (esp32_gprs é o nome do dispositivo no Ubidots) #define TOPIC "/v1.6/devices/esp32_gprs" //id do dispositivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" //URLdefine MTTVER_SERL define MTTQ_SERL define MTTQ_SERL mqtt://things.ubidots.com" //Porta padrão do MQTT #define MQTT_PORT 1883 //Pino onde está o DHT22 #define DHT_PIN 27
Stap 13: Vastzetten
![Vastzetten Vastzetten](https://i.howwhatproduce.com/images/006/image-16810-30-j.webp)
//Pinagem em User_Setup.h na pasta da bibliotecaTFT_eSPI display = TFT_eSPI(); //Interval entre os envios e refresh da tela #define INTERVAL 10000 //Canal serial que vamos usar para comunicarmos com o modem. Gebruik semper 1 HardwareSerial SerialGSM(1); TinyGsm-modemGSM (SerialGSM); TinyGsmClient gsmClient(modemGSM); // Client MQTT, passamos een url do-server, een porta //e o cliente GSM PubSubClient-client (MQTT_SERVER, MQTT_PORT, gsmClient); //Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; vlotter vochtigheid; //Variável onde iremos armazenar o valor da umidade float-temperatuur; //Variável onde iremos armazenar of valor da temperatura SimpleDHT22 dht; //Objeto que realizará a leitura da umidade e temperatura
Stap 14: Instellen
void setup() { Serial.begin(115200); setupDisplay(); //Inicializa e configura o display setupGSM(); //Initialiseren en configureren van modem GSM connectMQTTServer(); //Conectamos oa mqtt-server // Espera 2 segundos en limpamos o weergavevertraging (2000); display.fillScreen(TFT_BLUE); display.setCursor(0, 0); }
Stap 15: Display instellen
void setupDisplay(){ display.init(); display.setRotatie(1); display.fillScreen(TFT_BLUE); //Limpa of display com a cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); //Coloca of texto como branco com fundo azul display.setTextWrap (true, true);//Ativa quebra de linha display.setTextSize(1); display.setCursor(0, 0, 2); //Posicção x, y e fonte do texto display.println ("Setup Display Complete"); }
Stap 16: GSM instellen
void setupGSM(){ display.println("Setup GSM…"); //Inicializamos a serial onde está o modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); vertraging (3000); //Mostra informação sobre o modem Serial.println(modemGSM.getModemInfo()); //Inicializa o modem if (!modemGSM.restart()) { display.println ("Herstarten van GSM-modem mislukt"); vertraging (10000); ESP.herstart(); opbrengst; } //Espera pela rede if (!modemGSM.waitForNetwork()) { display.println("Kan geen verbinding maken met netwerk"); vertraging (10000); ESP.herstart(); opbrengst; } //Conecta à rede gprs (APN, usuário, senha) if (!modemGSM.gprsConnect("", "", "")) { display.println("GPRS-verbinding mislukt"); vertraging (10000); ESP.herstart(); opbrengst; } display.println("Setup GSM succesvol"); }
Stap 17: ConnectMQTTServer
void connectMQTTServer() { display.println("Verbinding maken met MQTT Server…"); //Se conecta oa device que definimos if (client.connect(DEVICE_ID, TOKEN, "")) { //Se a conexão foi bem sucedida display.println("Connected"); } else { //Se ocorreu algum erro display.print("error = "); display.println(klant.staat()); vertraging (10000); ESP.herstart(); } }
Stap 18: Loop
void loop() {//Faz a leitura da umidade e temperatura readDHT(); //Se desconectou doen server MQTT if (!client.connected()) { //Mandamos sluit aan op connectMQTTServer(); } //Tempo decorrido desde o boot em milissegundos unsigned long now = millis(); //Se passou o intervalo de envio if (nu - lastTime > INTERVAL) {//Publicamos para o server mqtt publishMQTT(); //Mostramos zonder weergave showDataOnDisplay(); //Atualizamos o tempo em que foi feito o último envio lastTime = nu; } }
Stap 19: LeesDHT
void readDHT(){ float t, h; //Faz a leitura da umidade e temperatura e apenas atualiza as variáveis se foi bem sucedido if (dht.read2(DHT_PIN, &t, &h, NULL) == SimpleDHTERrSuccess) { temperatuur = t; vochtigheid = uur; } }
Stap 20: PublishMQTT
void publishMQTT() {//Cria o json que iremos enviar para o server MQTT String msg = createJsonString(); Serial.print("Publiceer bericht: "); Serial.println(msg); //Publicamos no tópico int status = client.publish (TOPIC, msg.c_str()); Serial.println ("Status: " + String (status));//Status 1 volgt op 0 volgende fout }
Stap 21: CreateJsonString
![CreateJsonString CreateJsonString](https://i.howwhatproduce.com/images/006/image-16810-31-j.webp)
String createJsonString() { String data = "{"; if(!isnan(vochtigheid) && !isnan(temperatuur)) { data+="\"vochtigheid\":"; data+=String(vochtigheid, 2); gegevens+=", "; data+="\"temperatuur\":"; data+=String(temperatuur, 2); } gegevens+="}"; gegevens retourneren; }
Stap 22: ShowDataOnDisplay
void showDataOnDisplay () {// Reset een positie van de cursor en de meeste temperatuur en lidas display.setCursor (0, 0, 2); display.println ("Vochtigheid: " + String (vochtigheid, 2)); display.println ("Temperatuur: " + String (temperatuur, 2)); }
Stap 23: Bestanden
Download de bestanden
INO
Aanbevolen:
Bescherm uw netwerk met een gratis UTM-firewall: 4 stappen
![Bescherm uw netwerk met een gratis UTM-firewall: 4 stappen Bescherm uw netwerk met een gratis UTM-firewall: 4 stappen](https://i.howwhatproduce.com/images/001/image-1896-22-j.webp)
Bescherm uw netwerk met een gratis UTM-firewall: deze gids behandelt de basisprincipes om een Sophos UTM op uw thuisnetwerk te installeren en te laten werken. Dit is een gratis en zeer krachtige softwaresuite. Ik probeer de kleinste gemene deler te vinden, dus ik ga niet in op Active Directory-integratie, externe
Mobiel bestuurbare Bluetooth-auto -- Makkelijk -- Eenvoudig -- Hc-05 -- Motorschild: 10 stappen (met afbeeldingen)
![Mobiel bestuurbare Bluetooth-auto -- Makkelijk -- Eenvoudig -- Hc-05 -- Motorschild: 10 stappen (met afbeeldingen) Mobiel bestuurbare Bluetooth-auto -- Makkelijk -- Eenvoudig -- Hc-05 -- Motorschild: 10 stappen (met afbeeldingen)](https://i.howwhatproduce.com/images/001/image-1932-23-j.webp)
Mobiel bestuurbare Bluetooth-auto || Makkelijk || Eenvoudig || Hc-05 || Motor Shield:… ABONNEER aub op mijn YouTube-kanaal………. Dit is de Bluetooth-gestuurde auto die de HC-05 Bluetooth-module gebruikte om met mobiele telefoons te communiceren. We kunnen de auto mobiel bedienen via Bluetooth. Er is een app om de beweging van de auto te besturen
Mobiel platform met IoT-technologieën: 14 stappen
![Mobiel platform met IoT-technologieën: 14 stappen Mobiel platform met IoT-technologieën: 14 stappen](https://i.howwhatproduce.com/images/001/image-2532-54-j.webp)
Mobiel platform met IoT-technologieën: in de volgende stappen wordt beschreven hoe u een eenvoudig mobiel platform kunt samenstellen en enkele IoT-technologieën kunt gebruiken om dit platform op afstand te besturen. Dit project maakt deel uit van het Assist - IoT (Domestic Assistant with IoT Technologies) project ontwikkeld voor
Amazon Alexa - Raspberry Pi (mobiel): 5 stappen (met afbeeldingen)
![Amazon Alexa - Raspberry Pi (mobiel): 5 stappen (met afbeeldingen) Amazon Alexa - Raspberry Pi (mobiel): 5 stappen (met afbeeldingen)](https://i.howwhatproduce.com/images/003/image-7247-36-j.webp)
Amazon Alexa - Raspberry Pi (Mobile): Welkom bij onze tutorial over het bouwen van een Amazon Alexa met Rasberry Pi. Sinds je op deze tutorial hebt geklikt, weet je natuurlijk dat de Amazon Alexa een prachtig stukje technologie is in deze moderne tijd. Hoewel, het kopen en het maken ervan twee verschillende
ESP32-klok met WiFi, ESP-NOW en mobiel: 4 stappen
![ESP32-klok met WiFi, ESP-NOW en mobiel: 4 stappen ESP32-klok met WiFi, ESP-NOW en mobiel: 4 stappen](https://i.howwhatproduce.com/images/001/image-1200-74-j.webp)
ESP32-klok met wifi, ESP-NOW en mobiel: dit is een op ESP32 gebaseerde wifi-klok die ik heb gemaakt voor de draadloze wedstrijd. Ik besloot om deze klok overdreven draadloos te maken, zodat hij drie verschillende vormen van draadloze communicatie gebruikt (WiFi, ESP-NOW, & Cellular). De telefoon is verbonden met een zendmast en