... een paar belangrijke aankondigingen en voorschriften om succesvol en zonder stress met de kalender te werken.
Het gebruik van deze handleiding is slechts een van twee mogelijke benaderingen m.b.t. de kalender. De tweede mogelijkheid bestaat erin om
de website
www.conrad.de/iot-adventskalender
als informatiebron te raadplegen. Met betrekking tot de tekst, zijn beide handleidingen bijna identiek. Het medium internet laat echter een nog
groter aanbod aan informatie toe die de weg naar succes kan vergemakkelijken.
Een voorbeeld voor het grotere informatieaanbod is het feit dat er op de website enkele bijkomende foto's kunnen worden toegevoegd. Een
website is niet gebonden aan beperkingen, zoals drukkosten of aantal pagina's en maakt een complexe en gekleurde vormgeving mogelijk. Het
een of andere bijkomend artikel kan eveneens behulpzaam zijn voor de ontwikkeling en vormgeving van enkele projecten.
Een bijkomende hulp is de commentaarfunctie. Internet van zaken is zowel een complex als spannend en veelzijdig thema. Er zijn veel
struikelstenen op de weg naar een succesvol project. Het kan dus maar behulpzaam zijn om zijn probleem aan een grotere community te
kunnen voorleggen. Daarom is onder elk artikel de commentaarfunctie geactiveerd, waarin men vragen kan stellen, verbeteringen kan
voorstellen of andere projectdeelnemers bij hun probleem kan bijstaan. Ik hoop zo om de individuele frustratie te minimaliseren en het plezier
aan het project over lange tijd hoog te houden, ook wanneer er eens iets fout gaat.
Een derde voordeel van de website kan de verrassingsfactor zijn. De opwinding van een adventskalender ligt erin dat u niet weet wat zich
achter het volgende deurtje bevindt. Bij een handboek ziet u meestal al de vraag op de volgende pagina en bent u »gespoilert«. Op de website
verschijnt echter elke dag alleen het hoofdstuk van de overeenkomstige dag. Daarom mijn advies: Leg het handboek na dit hoofdstuk gewoon in
een hoek en haal het niet meer uit. Ga in de plaats naar www.conrad.de/iot-adventskalender en plaats een bladwijzer op de pc, smartphone of
tablet. Dan kunt u elke dag, waar u ook bent, vb. in de trein op weg naar het werk, het hoofdstuk van de dag lezen en later, wanneer u thuis
komt, met het praktisch gedeelte van het dagproject experimenteren.
Ledereen die toch fan van een klassiek handboek is, houdt het boek natuurlijk in de hand. Het kan uiteraard ook makkelijk zijn om geen
digitaal apparaat in de hand te moeten nemen wanneer men zich een eerste overzicht over het huidige verzoek verschaft. In elk geval blijft een
bezoek van de website niet uit, want u moet het huidige programma downloaden. U vindt het in het overeenstemmend artikel on het punt »Het
programma«.
Ongeacht welke weg u beslist te nemen bij het doornemen van de kalender, wens ik u veel plezier en een vrolijke, spannende kersttijd.
Fabian Kainka
Dag 1: De eerste stappen
Het is de eerste dag in december en daarom tijd om het eerste deurtje te openen. Achter het deurtje bevindt zich het belangrijkste onderdeel
van deze kalender, namelijk het Arduino™-compatibele NanoESP-Board met geïntegreerde WLAN-module waarom het in deze kalender gaat,
Zoals men aan de platine zeer goed kan herkennen, bestaat het board uit twee onderdelen. Bij de linkerhelft gaat het om een Arduino™compatibel microcontrollersysteem dat met de Arduino™ Nano kan worden vergeleken. Het rechterdeel is de WLAN-module met de
omschrijving ESP8266. Deze beide componenten communiceren met elkaar via een door software gegenereerde seriële interface. Daarbij
fungeert de Arduino™-zijde eerder als chef die de commando's naar de WLAN-module doorgeeft. Enkele van deze commando's worden vandaag
al op de eerste dag uitgeprobeerd.
Het programma
Het programma van de respectievelijke dag kunt u downloaden door naar
www.conrad.de/iot-adventskalender
te gaan, uw taal te selecteren en het artikel voor het huidige project op te roepen. U vindt de download onder het overzicht »Het programma«.
Als ontwikkelingsomgeving wordt de Arduino™-software gebruikt. De huidige versie vindt u op de website:
arduino.cc
Ik heb met de Arduino™-versies 1.6.4. – 1.6.5. gewerkt. Oudere versies kunnen problemen veroorzaken. Voor veel Linux-versies bestaat er
alleszins slechts een zeer oude versie. Tips over hoe u deze en andere problemen kunt oplossen, vindt u op de website. In de Arduino™software moet u als Board Arduino™ Nano en de seriële poort selecteren. Dan kunt u het programma uploaden.
Bij de huidige download gaat het om een zeer eenvoudig programma dat niets meer doet dan alle gegevens die via de seriële hardware-interface
van de microcontroller worden ontvangen, via de zelf gedefinieerde software-interface naar de ESP-controller door te geven. Het geheel werkt
ook in omgekeerde richting. Zoals men in de brontekst kan zien, zijn beide aansluitingen van de software-interface pins 11 en 12. Deze moeten in
eigen projecten niet als GPIO-pins worden gebruikt. U hebt bovendien de software Serial-Library nodig. De Library is bij de meeste Arduino™versies reeds voorgeïnstalleerd. Indien niet, moet u dit via de Manager downloaden.
Nadat het programma werd geüpload, kunt u de seriële monitor van het Arduino™-oppervlak starten. Voor u kunt starten, moet u nog twee
belangrijke instellingen aan de Serial Monitor uitvoeren, namelijk rechtsonder in de hoek de Baudrate op "19200" instellen en in de box links
daarnaast de instelling "CR en NL" uitvoeren.
Na het instellen ziet u al een melding, namelijk een AT en een paar regels daaronder een OK. Het commando AT werd door microcontroller
naar de ESP-module verzonden en de module heeft met OK geantwoord. Daaraan kunt u herkennen dat de module werkt en gebruiksgereed is.
U kunt dit opnieuw testen door zelf het bevel
AT
via seriële monitor te verzenden. Het opgeladen programma geeft het bevel opnieuw naar ESP-module door, dat opnieuw met OK antwoordt.
Het volgende bevel dat u kunt testen, luidt:
AT+GMR
Met dit bevel worden de huidige firmware en versienummer weergegeven. Met het bevel
AT+RST
kunt u de module resetten. U ziet dan in de terminal eerst een paar onleesbare tekens en op het einde een ready, het teken dat de module nu
gereed is. Met
AT+CWMODE
kunt u de WLAN-module vastleggen. Er zijn drie mogelijkheden: Modus 1 is de stationsmodus Dit betekent dat u met de module in een bestaand
WLAN kunt inbellen. Modus 2 is de AccesPoint-modus. Dit betekent dat u zich met een WLAN-gereed apparaat in een door de module
gereedgesteld WLAN kunt aanmelden. Modus 3 is de duale modus. U kunt zowel met de module in een bestaande WLAN inbellen of met een
bijkomend apparaat een rechtstreekse verbinding opbouwen. Test de AccesPoint-modus door modus 2 via het commando
AT+CWMODE = 2
vastleggen en dan met het bevel
AT+CWSAP=”MyNanoESP”,”MyPassword”,5,3
de bij het Access Point passende parameters instellen. U kunt dan vb. met een WLAN-gerede pc het netwerk MyNanoESP zoeken en zich met het
wachtwoord MyPasswort verbinden. Als de verbinding succesvol is, kunt u met
AT+CWLIF
het verbonden apparaat met IP- en MAC-adres laten weergeven.
De AT-commando's in de seriële monitor
U kunt nu ook de stationsmodus testen door eerst met
AT+CWMODE=1
de modus om te zetten. U kunt alle beschikbare WLAN-netwerken binnen bereik door het bevel
AT+CWLAP
laten oplijsten. Tot slot stelt u met
AT+CWJAP=“MySSID“,“MyPassword“
een verbinding met uw netwerk in, waarbij u MySSID en MyPassword door uw netwerknaam en uw wachtwoord vervangt. Het kan een hele tijd
duren tot de verbinding is gemaakt, maar aan het einde staat er een OK als bevestiging. De opbouw van een eerste verbinding is daarmee zo
gelukt.
Dag 2: Google Ping
Met het huidige project wordt getest of u de Google-server kunt bereiken. Dit dient als test of er een principiële verbinding met het internet
beschikbaar is of bijvoorbeeld een Firewall het NanoESP-board blokkeert.
Achter het huidige deurtje vindt u een steekboard. Het steekboard dient later als experimenteerplatform om sensoren en andere elementen te
kunnen aansluiten. Het beste is wanneer u de controller zoals op de onderstaande afbeelding op het steekboard steekt. Daardoor blijft de
meeste plaats voor experimenten terwijl de WLAN-module achteraan boven het steekboard uitsteekt. De micro-USB-kabel hangt dan tussen de
contactzijden en stoort maar minimaal.
De NanoESP op het steekboard
Het programma
In het voorbeeldprogramma van de website werden de werkwijzen die u in het eerste voorbeeld manueel hebt ingetikt, grotendeels
geautomatiseerd. De controller stuurt na elkaar bevelen naar de ESP-module en maakt zo o.m. de verbinding naar de WLAN. De verschillend
lange time-outtijden geven de module voldoende tijd om te antwoorden.
Voor het programma echter correct kan functioneren, moet u achter beide #defines SSID en WACHTWOORD onmiddellijk bij het begin van de
programmabroncode, uw WLAN-gegevens invoeren. De module heeft namelijk toegang tot het internet nodig om zijn laatste bevel te kunnen
uitvoeren. Met het bevel
AT+PING
kunnen andere apparaten in het netwerk worden aangepingd. Pingen betekent dat men vraagt of een adres in principe bereikbaar is. Hier wordt
de Google-server met AT+PING=“www.google.de“ aangepingd en wanneer er een antwoord terugkomt, verschijnt er een melding dat de
verbinding in de Serial Monitor geslaagd is en de met D3 aangeduide LED die op pin D13 aan de boards is aangesloten, wordt geactiveerd. De
eerste communicatie met het internet is geslaagd.
Dag 3: UDP-zenden
In het huidige project worden voor het eerst gegevens tussen board en pc via het WLAN uitgewisseld. Voorwaarde is dat uw computer over een
WLAN-adapter beschikt. Het zogenaamde UDP (User Datagram Protocol) wordt gebruikt. Een ander programma aan pc-zijde zorgt voor het
succesvol ontvangen van de meldingen.
Achter het derde deurtje van de kalender vindt u een geïsoleerde kabel die voor de opbouw van schakelingen niet betrouwbaar is. Als
voorbereiding voor latere versies kunt u de verzorgingsleidingen massa en VCC op de buitenste banen leggen.
Het programma
Wanneer u het programma op de controller laadt, zal de Controller als AccessPoint worden geconfigureerd en u moet een open netwerk met de
naam NANoESP zien. Voor u zich in elk geval met het netwerk verbindt, moet u eerst nog een programma uit het internet downloaden. Bij mijn
verzoeken heb ik het programma Packet Sender van Dan Nagle gebruikt, aangezien men ze via deze link kan downloaden:
https://packetsender.com/
Na het laden en installeren van het programma kunt u uw pc met het open netwerk van de NanoESP kiezen. Let op dat de Firewall het netwerk
als thuisnetwerk herkent, zodat er geen gegevens geblokkeerd worden. Uw computer zou nu IP 192.168.4.2 moeten ontvangen hebben. U kunt
dit controleren door het AT-bevel
AT+CWLIF
via de seriële monitor naar de module te zenden. Dit bevel geeft alle met het AccessPoint verbonden computers met IP- en MAC-adres aan.
Start hier het programmapakket zender, stel onder Settings->Network de UDP-server-port op 90 en vink de checkbox "Enable UDP Server" aan.
In regel moet linksonder dan UDP 90 staan. Indien niet, moet u de software nog eens opnieuw opstarten.
Het programma op de computer dient nu als UDP-server, terwijl de controller als UDP-client is ingesteld. In het UDP-protocol is het onderscheid
tussen client en server niet eenduidig, maar in dit geval betekent het dat u met de controller gegevens naar uw computer verzendt.
Om gegevens te verzenden, gebruikt u het bevel:
AT+CIPSEND=7
De 7 staat voor het aantal te verzenden tekens. Het teken > verschijnt als teruggavewaarde. Dit betekent dat u nu uw bericht kunt overmaken.
Tik Hello in en bevestig opnieuw met enter. Als teruggavewaarde zendt de module SEND OK en dat hoewel u slechts vijf tekens hebt ingevoerd.
Dit komt door het feit dat er na uw invoer nog Carriage Return en New Line mee verstuurd worden, i.e. twee tekens meer die u in uw
berichtlengte moet incalculeren.
Wanneer u opnieuw naar Packet Sender gaat en daar onder Log Traffic kijkt, kunt u de ingang van het bericht zien. In het ASCII-aanzicht ziet u
zelfs beide meegezonden tekens, voorgesteld door \r en \n. De eerste communicatie tussen board en pc via WLAN was dus een succes.
Dag 4: UDP bidirectioneel
In het project van gisteren werd de UDP-communicatie in een richting, i.e. van het board naar de pc getest. In dit programma wordt de module
zo ingesteld dat een communicatie ook in de andere richting mogelijk is, bijna als in een chat.
Achter het vierde deurtje van de adventskalender bevindt zich een weerstand met 1 kΩ (bruin, zwart, rood). Het onderdeel wordt in het huidige
verzoek nog niet gebruikt, maar moet voor later worden bewaard.
Het programma
Het programma van vandaag bevat in principe slechts een minimale wijziging die echter een grote invloed op de communicatie met het UPDprotocol heeft. Wanneer u het programma uploadt, wordt opnieuw een AccesPoint aangemaakt waarmee u zich met de pc kunt verbinden. Ook
deze keer zult u Packet Sender of een vergelijkbaar programma nodig hebben. Start het programma en stel dezelfde instellingen als gisteren in
(File-> Settings->Network: Enable UDP Server, Port 90). Vervolgens moet u in het hoofdvenster in het veld IP-adres het adres van de module
(192.168.4.1) intikken, de port op 91 instellen en in het verder rechts staande dropdown menu het punt UDP selecteren. Als beide instellingen zijn
gemaakt en de Serial Monitor geopend, kunt u het eerste bericht naar de module zenden door vb. Hi in het met ASCII gemarkeerde veld te
tikken.
Wanneer u nu op Send klikt, verschijnt in de Serial Monitor
+IPD,2:Hi
OK
Het bericht werd dus ontvangen. U kunt nu ook antwoorden door opnieuw het CIPSEND-bevel te gebruiken, dus vb.
AT+CIPSEND=7
>Hello
Chatten via twee apparaten isn u ook mogelijk, zelfs indien het nog erg omstandig is.
Dag 5: LED schakelen
In het huidige programma gaat het uiteindelijk erom hardware via het UDP-protocol te besturen. In dit geval wordt een LED met eenvoudige
bevelen in- en uitgeschakeld.
Achter het vijfde deurtje bevindt zich een LED. De passende voorweerstand bevond zich al gisteren in het vak. Bouw de schakeling op, zoals
weergegeven in de afbeelding.
Het programma
Terwijl de voorgaande voorbeeldprogramma's veel invoer van de gebruiker nodig had, moet het huidige programma autonoom werken. Toch
worden via de seriële monitor omwille van Debug-redenen verder informatie uitgegeven.
De controller wacht nu op de door de module ontvangen gegevens die via de +IPD-melding worden aangekondigd. Legitieme bevelen die u via
Packet Sender kunt verzenden, luiden led1 en led0. De controller interpreteert ze en schakelt dienovereenkomstig de LED aan of uit. Een
terugmelding naar de zender wordt eveneens overgedragen. Als een ander bevel wordt verzonden, verschijnt in de Serial Monitor de melding
"Wrong UDP Command". Hetzelfde bericht wordt ook via het netwerk aan de zender overgedragen.
Dag 6: UDP-button
In het programma van gisteren werden eerste commando's door de controller geanalyseerd. Het huidige programma omvat deze functie, maar
kan bijkomend zelfstandig een commando naar het netwerk zenden.
Achter het huidige deurtje vindt u een drukknopschakelaar. Hij dient hier als gewone sensor. Verbind deze met de controller, zoals weergegeven
op de opbouwafbeelding.
Het programma
Het programma analyseert verder de aankomende signalen. Bovendien wordt de button voortdurend afgetast. Als hij door de gebruiker wordt
geactiveerd, zendt de controller de tekst
Button=1
naar het netwerk. Alle met de module verbonden apparaten met een UDP-server aan poort 90 kunnen het bevel ontvangen. Bij een
huisautomatiseringsproject zou een server bijvoorbeeld de statusmelding van een bewegingsmelder ontvangen en dan het bevel led=1
terugzenden om het licht te activeren.
Loading...
+ 10 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.