- Vereiste componenten:
- Werkuitleg en het maken van de webpagina:
- Circuit uitleg:
- Uitleg programmeren en kolf:
We zijn allemaal bekend met het draadloze mededelingenbord, omdat we al een draadloos mededelingenbord hebben gebouwd met behulp van GSM en Arduino. Maar vandaag gaan we een stap vooruit en in plaats van GSM als draadloos medium te gebruiken, gebruiken we dit keer internet om het bericht draadloos van de webbrowser naar het LCD-scherm te sturen dat is verbonden met Raspberry Pi. Omdat het bericht via de webbrowser wordt verzonden, kan het worden verzonden met een computer, smartphone of tablet, dus het voegt nog een project toe aan onze IoT-projectencollectie.
In dit webgestuurde mededelingenbord hebben we een lokale webserver gemaakt voor demonstratie, dit kan een wereldwijde server via internet zijn. Bij de Raspberry Pi hebben we een 16x2 LCD-scherm gebruikt om het bericht weer te geven en Flask om het bericht via het netwerk te ontvangen. Elke keer dat Raspberry een draadloos bericht van een webbrowser ontvangt, wordt dit weergegeven op het LCD-scherm. In dit artikel zullen we deze zaken in detail bespreken.
Vereiste componenten:
- Raspberry Pi 3 (elk model)
- Wi-Fi USB-adapter (als u Raspberry Pi 3 niet gebruikt)
- 16x2 LCD
- Broodplank
- Stroomkabel voor Raspberry Pi
- Draden aansluiten
- 10K Pot
Werkuitleg en het maken van de webpagina:
In dit project is de hoofdcomponent Raspberry Pi, het hart van dit project en wordt gebruikt om de processen met betrekking tot dit project te besturen. Zoals: Rijden op LCD, ontvangen van "Meldingsberichten" van de server enz.
Hier hebben we een webserver gemaakt, die een manier biedt om een "Notice Message" naar Raspberry Pi te sturen met Flask in een webbrowser. The Flask is een microframework voor Python. Deze tool is gebaseerd op Unicode en heeft een ingebouwde ontwikkelserver en debugger, geïntegreerde ondersteuning voor het testen van eenheden, ondersteuning voor veilige cookies en het is gemakkelijk te gebruiken, deze dingen maken het nuttig voor de hobbyist .
We hebben een webpagina gemaakt met een TextBox en een Submit-knop, waar we ons "Notice Message" in TextBox kunnen invoeren en het vervolgens naar de server kunnen verzenden door op de knop Verzenden te klikken. Deze webapplicatie is ontwikkeld met behulp van HTML-taal. De code van deze webpagina wordt hieronder gegeven en is zeer gemakkelijk te begrijpen.
Mededelingenbord voor webcontrole (Circuit Digest)
Kennisgeving met succes ingediend: {{waarde}}
{% stop als %}De gebruiker moet de hierboven gegeven HTML-code kopiëren en plakken in een teksteditor (kladblok) en het bestand opslaan met de extensie.HTML. Plaats dit HTML-bestand vervolgens in dezelfde map waar u uw Python-codebestand (aan het einde) voor dit webgestuurde mededelingenbord hebt geplaatst. Nu kun je gewoon de Python-code in Raspberry Pi uitvoeren, het IP_address_of_your_Pi: 8080 openen in de webbrowser (zoals 192.168.1.14:8080) en het bericht invoeren en op verzenden klikken, zodra je het bericht verzendt, krijg je het bericht op LCD aangesloten op Raspberry Pi. Bekijk het hele proces aan het einde in Demonstratievideo.
De webpagina is gemaakt met behulp van HTML-taal, die een formulier bevat met een tekstvak en een verzendknop , met kop (h1-tag) Web Control Notice Board . Het formulier heeft "wijzigen" is de actie die zal worden uitgevoerd in code met behulp van de post- methode, wanneer we op de knop Verzenden klikken. De schuifregelaar is een blok met het label "Mededelingsbericht".
Hierna kunnen we een optionele regel toevoegen om de tekst te tonen die we via de server naar de Raspberry Pi hebben gestuurd.
{% if waarde%}
Kennisgeving met succes ingediend: {{waarde}}
{% stop als %}Het controleert de waarde in het tekstvak en als er een waarde in het tekstvak staat, wordt de tekst op de webpagina zelf afgedrukt, zodat de gebruiker ook het verzonden bericht kan zien. Hier is 'waarde' "invoertekst of bericht" die we in een schuifbalk of tekstvak typen.
Circuit uitleg:
Aansluitingen voor dit draadloze prikbord zijn heel eenvoudig; we hoeven alleen het LCD-scherm met het Raspberry Pi-bord te verbinden door enkele connectoren over het breadboard te gebruiken. De gebruiker mag een nul-printplaat gebruiken voor verbindingen. RS-, RW- en EN-pinnen van LCD zijn direct verbonden met pin 18, GND en 23. En datapinnen van LCD D4, D5, D6, D7 zijn direct verbonden met Raspberry Pi GPIO 24, 16, 20, 21. Een 10K pot is gebruikt om de helderheid van LCD te regelen.
Onthoud ook dat als u geen Raspberry Pi 3 hebt, u de USB Wi-Fi-adapter moet gebruiken voor een lagere versie van Raspberry Pi, omdat deze geen ingebouwde Wi-Fi heeft, zoals Raspberry Pi 3.
Uitleg programmeren en kolf:
We gebruiken hier Python-taal voor het programma. Voordat de gebruiker kan coderen, moet hij de Raspberry Pi configureren. Je kunt onze eerdere tutorials bekijken voor Aan de slag met Raspberry Pi en Raspbian Jessie OS installeren en configureren in Pi.
Voordat de Raspberry Pi wordt geprogrammeerd, moet de gebruiker een kolfondersteuningspakket in de Raspberry Pi installeren met behulp van de gegeven opdrachten:
$ pip installeer Flask
Hierna kun je het Python-programma uitvoeren in de python-editor van Raspberry Pi, maar daarvoor moet je het IP-adres in Program vervangen door het IP-adres van je Raspberry Pi. U kunt het IP-adres van uw RPi-bord controleren met de opdracht ifconfig:
Ifconfig
Het programmeergedeelte van dit project speelt een zeer belangrijke rol bij het uitvoeren van alle bewerkingen. Allereerst nemen we vereiste bibliotheken op voor Flask, initialiseren we variabelen en definiëren we pinnen voor LCD.
van flask import Flask from flask import render_template, verzoek import RPi.GPIO als gpio import os, tijd app = Flask (__ name__) RS = 18 EN = 23 D4 = 24 D5 = 16 D6 = 20 D7 = 21………………..
Voor LCD wordt def lcd_init () functie gebruikt om LCD te initialiseren in vier bit modus, def lcdcmd (ch) functie wordt gebruikt voor het verzenden van commando's naar LCD, def lcddata (ch) functie wordt gebruikt voor het verzenden van data naar LCD en def lcdstring (Str) functie wordt gebruikt om datastring naar LCD te sturen. U kunt al deze functies controleren in Code achteraf.
Onderstaand deel van het programma wordt gebruikt om het bericht van de webbrowser naar Raspberry Pi te sturen met Flask. Je kunt hier meer leren over het programmeren met Flask.
@ app.route ("/") def index (): return render_template ('web.html') @ app.route ("/ change", methodes =) def change (): if request.method == 'POST': # De waarde ophalen van de webpagina data1 = request.form lcdcmd (0x01) lcdprint (data1) return render_template ('web.html', value = data1) if __name__ == "__main__": app.debug = True app.run ('192.168.1.14', port = 8080, debug = True)
Dit is dus hoe we het bericht van onze computer of smartphone naar de Raspberry Pi LCD kunnen sturen en een IoT-gebaseerd draadloos mededelingenbord kunnen maken dat via internet wordt bestuurd. Bekijk de volledige Python-code en demonstratievideo hieronder.