v0.1.1 Start document voor Raspberry Pi en installatie instructies door HU IICT. Switched to 64 bit OS.
Dit is een algmene instructie voor het installeren van Raspberry Pi OS op een Raspberry Pi 4. De installatie van de 32-bit versie is ook nog beschikbaar bijvoorbeeld als je een oudere versie van de Raspberry Pi hebt.
Voor deze installatie is gebruik gemaakt van de volgende hardware en software versies:
Voor een nieuwe installatie van Raspberry Pi OS op je Raspberry Pi kan je gebruik maken van de Windows Raspberry Pi Imager: https://www.raspberrypi.com/software/

Download en installeer de image op een microSD kaart. Voor het schrijven vraag de software nog of je een custom configuratie wil toepassen. Je kunt dan vooraf wifi gegeven, gebruiksnaam/wachtwoord (tabblad Algemeen) en ssh activeren (tabblad Services). Wifi credentials voor Iotroam voor je specifieke device ontvang je van je docent (toegang gaat op basis van MAC filtering). Kies na het instellen op opslaan. Antwoord JA op de vraag “Wilt u uw eigen instellingen op het OS toepassen?”.
Maak met ssh verbinding met je Raspberry Pi.
ssh < user >@< hostname or ip >

Ik ontvang een waarschuwing over een invalid locale. Daarom voer ik uit: sudo dpkg-reconfigure locales. En selecteer en_GB.UTF-8, en_US.UTF-8, nl_NL.UTF-8 en zet de default locale op nl_NL.UTF-8. Ik herlaad de locales met sudo update-locale LANG=nl_NL.UTF-8 en reboot.
Ik krijg nog de volgende waarschuwing bij het inloggen. “-bash: waarschuwing: setlocale(): LC_CTYPE: kan niet van taalregio veranderen (UTF-8): Bestand of map bestaat niet”.
Ik zet de systeem defaults (alle gebruikers):
sudo update-locale LANG=nl_NL.UTF-8 LC_CTYPE=nl_NL.UTF-8
cat /etc/default/locale
Ik stop de ssh verbinding.
exit
Maak een nieuwe verbinding.
locale
Nu lijkt het goed te staan en krijg ook geen waarschuwing bij het opstarten van de shell.
Voordat je verder gaat. Zorg dat je systeem up-to-date is:
sudo apt-get update && sudo apt-get upgrade
Om je systeem daarna weer wat op te schonen:
sudo apt autoremove
Contreel datum, tijd en tijdzone.
timedatectl status

De Raspberry Pi 4 heeft geen hardware clock. Is er geen internet verbinding? Dan kan er geen tijdsynchronisatie plaatsvinden. Overweeg de installatie van een Real Time Clock (RTC).
Je hebt voor de meeste configuratie en executie momenten sudo toegang nodig.
sudo su
Om te controleren hoe je Raspberry Pi is verbonden gebruik het volgende commando.
ip a
De Raspberry Pi 4 is de centrale hub voor het verwerken van sensor gegevens. Om efficient verschillende applicaties te installeren en te beheren gaan we gebruik maken van Docker containers. Installeer eerst Docker en Docker Compose om vervolgens de volgende applicaties te installeren.
Sensor data wil je opslaan om historische gegevens te kunnen opvragen en trends te kunnen ontdekken. Voor data opslag maken we gebruik van PostgreSQL. Maak eerst een folder voor dataopslag.
cd Documents
mkdir data
Start een docker container. Uiteraard niet met de volgende parameters. Pas de parameters aan voor je eigen project.
sudo su
docker run --name postgres -d --restart unless-stopped -p 5432:5432 -e POSTGRES_PASSWORD=123456 -v ${PWD}/data:/var/lib/postgresql/data postgres:16
Controleer of het proces is gestart.
docker ps
De container is gestrart.

Controlleer de database verbinding bijvoorbeeld met SQL shell (psql) of pgAdmin.

Om berichten uit te wisselen maken we gebruik van MQTT. Mosquitto is daar een veel gebruikte broker voor.
Maak eerst de volgende folders aan (in je Documents root).
mkdir mosquitto
cd mosquitto
mkdir config data log
Maak een bestand mosquitto.conf aan in de config directory.
cd config
nano mosquitto.conf
Voeg de volgende inhoud toe.
allow_anonymous true
listener 1883
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
Type cntrl-Q en dan J (Ja) en dan enter.
cd ../
docker run --name mqtt -d --restart unless-stopped -it -p 1883:1883 -p 9001:9001 -v ${PWD}/config/mosquitto.conf:/mosquitto/config/mosquitto.conf eclipse-mosquitto
Controleer de MQTT broker bijvoorbeeld met MQTT Explorer.
Voor het visueel programmeren en het maken van Inernet of Things (IoT) toepassingen kan je gebruik maken van NodeRed.
cd ../
mkdir node_red_data
docker run --name nodered -d --restart unless-stopped -it -p 1880:1880 -v node_red_data:/data nodered/node-red
De grafische gebruikersinterface kan je nu met een browser bereiken op http://< your host ip adress >:1880
Maak een webinterface voor je IoT oplossing met Flask.