28/11/2018

Temperatuursensor DS18?20 aansluiten, uitlezen

Filed under: — cybrarian @ 7:02 pm

Een temperatuurvoeler als deze bestaat in een driebenige behuizing, of in een ingebedde voeler met metalen kop en een draad van een meter of meer, eindigend in een 3-kleurige aansluiting (1-wire systeem).
ps: Een andere sensor had maar 2 draden, die is eerder geschikt voor gebruik met Arduino, en heeft een veranderende weerstand waaruit de temperatuur kan afgeleid worden.

Sensor
De sensor die ik zelf in handen kreeg is de DS18S20, bedoeld voor de C-Control hardware. Ik vermoed dat het een variant is op de DS18x20 reeks zoals DS18B20, WT18B20, ..

Deze sensor bevat zelf wat logica en een register. Hij heeft een soort serienummer, zodat meer sensoren parrallel kunnen aangesloten worden en toch apart uitgelezen kunnen worden.

Sommige versies hebben een grotere nauwkeurigheid, en dan moet je eventueel in je software een omzetting doen voor de interpretatie van de uitlezing.

Aansluiting

Hij heeft drie draden:
Groen: + 3 V (plus)
Bruin: massa (ground)
Wit: data (de zogenaamde 1 wire)

Je hebt een pin met + 3 V nodig, een pin voor ground en een pin om de gegevens uit te lezen: data aan GPIO4 (of Raspberry Pi pin 7). Er komt een weerstand van 4.7 kilo-Ohm tussen de +3 V en de data kabel.
Er zijn beschrijvingen en schema’s te vinden voor de bedrading, bv op: http://domoticx.com/raspberry-pi-temperatuur-sensor-ds18b20-uitlezen/

Config
Raspberry Pi instellen om de 1 wire bus op GPIO te gebruiken:
sudo nano /boot/config.txt
Voeg aan het einde toe:
dtoverlay=w1-gpio

Dan commando om 1-wire protocol uit te lezen:
sudo modprobe w1-gpio
sudo modprobe w1-therm

Vanaf dan kan je de waarde van het register vinden in je systeem:

cat /sys/bus/w1/devices/10-0008032a0831/w1_slave

Je krijgt iets als:

38 00 4b 46 ff ff 10 10 66 : crc=66 YES
38 00 4b 46 ff ff 10 10 66 t=27750

De uitlezing hier is in milligraden (27750 = 27,75°).

Multi

Zoals gezegd kan je meer sensoren samen aansluiten, op dezelfde pins op de Raspberry Pi; het verschil in identiteitsnummer laat toe die ook uit te lezen met een aangepast commando:

cat /sys/bus/w1/devices/10-0008032a0831/w1_slave
cat /sys/bus/w1/devices/10-0008032a0f9d/w1_slave

Het verschil is klein bij twee samen aangekochte sensoren.
Bij andere gelijkaardige sensoren of andere systemen/versies kan je misschien even moeten zoeken in de directorie(s)

/sys/bus/w1/devices/

De verwerking kan verder in software gebeuren, mbv scripts, cronjobs, … of ook met Gambas3

13/11/2018

Git: hoe haal ik of zie ik remote branch?

Filed under: — cybrarian @ 1:16 pm

(in de reeks Git…)

Zien
Online (in de web interface) zie ik de branches:

  • master
  • test
  • issue1

Maar lokaal zie ik alleen mijn eigen master (sic!):

git branch -l
* master

Ook na een git fetch blijft dat zo.

Git fetch heeft een standaardgedrag of volgt instellingen, maar je kan meer specifiek git fetch origin doen:

~/Git/TrypoPrj/TrypoPrj> git fetch origin
~/Git/TrypoPrj/TrypoPrj> git branch -l
* master

Bovendien moet je eigenlijk –list gebruiken (-l dient om een reflog aan te maken), en toont git branch –list enkel de lokale branches. Maar

git branch -r

origin/HEAD -> origin/master
origin/feat-01
origin/master
origin/test

toont de remote, of wil je alles:

git branch -a

* master
remotes/origin/HEAD -> origin/master
remotes/origin/feat-01
remotes/origin/master
remotes/origin/test

met extra info als laatste commit message:

git branch -v -a

* master 8ab6216 [ahead 1] remove .directory from tracked files
remotes/origin/HEAD -> origin/master
remotes/origin/feat01 2bbd368 Complete changes.txt with done work
remotes/origin/master de381ad Resolve merge conflict by combine and reorder lines in changes.txt

Afhalen
Als je een branch van remote wil halen kan je die opgeven

git fetch origin branch-naam
Daarna logischerwijze merge in je eigen (bv master) en commit:

git merge origin/branch-naam
git commit ...

Git ingore negeert opgegeven bestand niet

Filed under: — cybrarian @ 10:47 am

(in de reeks Git…)

Hoewel ik .settings heb toegevoegd tot gitignore, blijft het af en toe opduiken als gewijzigd bestand, klaar om mee te committen. Ik begrijp niet of het komt door merge met andere medewerkers die misschien een andere instelling hebben (hoewel ik dacht dat die lokaal was).

Oorzaak is bv dat het bestand oorspronkelijk niet in gitignore zat, en er pas later is aan toegevoeg, toen het al getracked werd. En .gitignore werkt alleen voor “untracked” files (voor nieuwe bestanden dus).

Er is een extraatje nodig (how to make git forget..):

git update-index --assume-unchanged

git update-index --assume-unchanged .settings

Je krijgt geen feedback na dit commando.

Powered by WordPress